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.
Solved! Go to Solution.
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
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
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
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