does i.MX 6Dual/6Quad VPU do the scaling and put the raw yuv data to a specific buffer

cancel
Showing results for 
Search instead for 
Did you mean: 

does i.MX 6Dual/6Quad VPU do the scaling and put the raw yuv data to a specific buffer

Jump to solution
407 Views
wei-tanghsu
Contributor I

I am us i.MX 6Dual/6Quad VPU,base on the mxc_vpu test, do I use the vpu interface to achieve scaling in the vpu core and put the scaled yuv data to a buffer and put it on the screen?

I am trying build a application that can do multiple 720p h264 decoding and playback simultaneously, i want to decode the bitstream and scale them to a specific resolution and put them in a buffer, and then display them at a time.

thanks.

Labels (1)
1 Solution
118 Views
Tarek
Senior Contributor I

Hi WEI

I went down the VPU API's in the past but I it wasn't so successful. It 's very complicated and difficult to get it working.

The mfw_isink is a very powerful element you should try to use it. Her is a gstreamer pipeline for multi-display:

gst-launch filesrc location=bunny.mp4 typefind=true ! aiurdemux ! vpudec ! mfw_isink axis-top=0 axis-left=0 disp-width=280 disp-height=190 & gst-launch filesrc location=bunny.mp4 typefind=true ! aiurdemux ! vpudec ! mfw_isink axis-top=0 axis-left=280 disp-width=280 disp-height=190 & gst-launch filesrc location=bunny.mp4 typefind=true ! aiurdemux ! vpudec ! mfw_isink axis-top=0 axis-left=560 disp-width=280 disp-height=190 & gst-launch filesrc location=bunny.mp4 typefind=true ! aiurdemux ! vpudec ! mfw_isink axis-top=0 axis-left=840 disp-width=280 disp-height=190 

If you have a problem with the input or output stage  you can use GStreamer Appsrc element to inject media buffers to the pipeline and Appsink to pull raw video buffers out of the pipeline. This is the easiest way to utilize the VPU and IPU.

T

View solution in original post

3 Replies
118 Views
LeonardoSandova
Specialist I

For your task, try using GStreamer, it much flexible than tests under /unit_test folder. Here are some pipeline examples:

https://community.freescale.com/docs/DOC-93448

Focus on the vpudec ! mfw_ipucs ! 'casps' gst elements.

Leo

118 Views
wei-tanghsu
Contributor I

thanks for your reply.

GStreamer is not the most convenient approach to my solution,cause I want to port my original application running on a different platform to freescale platform, video playback is the only difference between freescale and previous platform.

if vpu interface provide the scaling functionality, I could slightly modify my application and run in i.mx.

thanks

0 Kudos
119 Views
Tarek
Senior Contributor I

Hi WEI

I went down the VPU API's in the past but I it wasn't so successful. It 's very complicated and difficult to get it working.

The mfw_isink is a very powerful element you should try to use it. Her is a gstreamer pipeline for multi-display:

gst-launch filesrc location=bunny.mp4 typefind=true ! aiurdemux ! vpudec ! mfw_isink axis-top=0 axis-left=0 disp-width=280 disp-height=190 & gst-launch filesrc location=bunny.mp4 typefind=true ! aiurdemux ! vpudec ! mfw_isink axis-top=0 axis-left=280 disp-width=280 disp-height=190 & gst-launch filesrc location=bunny.mp4 typefind=true ! aiurdemux ! vpudec ! mfw_isink axis-top=0 axis-left=560 disp-width=280 disp-height=190 & gst-launch filesrc location=bunny.mp4 typefind=true ! aiurdemux ! vpudec ! mfw_isink axis-top=0 axis-left=840 disp-width=280 disp-height=190 

If you have a problem with the input or output stage  you can use GStreamer Appsrc element to inject media buffers to the pipeline and Appsink to pull raw video buffers out of the pipeline. This is the easiest way to utilize the VPU and IPU.

T

View solution in original post