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

cancel
Showing results for 
Show  only  | 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
1,036 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
747 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
747 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

747 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
748 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