About IMX8QM Decode With Gstreamer

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

About IMX8QM Decode With Gstreamer

1,754 Views
xu_liu
Contributor II

Hi

I want to test the VPU decode on  the IMX8QM board with Gstreamer plugin.

I use these two gst command the video can display right 

gst-launch-1.0 v4l2src device=/dev/video3  io-mode=dmabuf num-buffers=1000 ! video/x-raw,format=NV12,width=1280,height=720 ! autovideosink

gst-launch-1.0 v4l2src device=/dev/video3  io-mode=dmabuf num-buffers=100 ! video/x-raw,format=NV12,width=1280,height=720 ! v4l2h264enc output-io-mode=dmabuf-import ! h264parse ! flvmux streamable=true ! filesink location=/tmp/test_8.flv

 

But when I add the decode part with Gstreamer command  

gst-launch-1.0 v4l2src device=/dev/video3 io-mode=dmabuf num-buffers=300 ! video/x-raw,format=NV12,width=1280,height=720 ! v4l2h264enc output-io-mode=dmabuf-import ! h264parse ! v4l2h264dec capture-io-mode=dmabuf ! autovideosink

the board can't decode the video right and show follow errors

WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstWaylandSink:autovideosink0-actual-sink-wayland: A lot of buffers are being dropped.
Additional debug info:
../../../../git/libs/gst/base/gstbasesink.c(2902): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstWaylandSink:autovideosink0-actual-sink-wayland:
There may be a timestamping problem, or this computer is too slow.
WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstWaylandSink:autovideosink0-actual-sink-wayland: A lot of buffers are being dropped.
Additional debug info:
../../../../git/libs/gst/base/gstbasesink.c(2902): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstWaylandSink:autovideosink0-actual-sink-wayland:
There may be a timestamping problem, or this computer is too slow.
Got EOS from element "pipeline0".
Execution ended after 0:00:07.801222625
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
[19864.238975] ds960_mipi 8-0030: ds960_s_stream: set stream 3 off, now running 1
[19864.246286] ds960_mipi 8-0030: ds960_s_stream: stream off
Setting pipeline to NULL ...[19864.257093] [VPU Decoder] error: v4l2_ioctl_reqbufs() can't request (0) buffer : -16

Total showed frames (5), playing for (0:00:07.801577750), fps (0.641).
Freeing pipeline ...

If you have some advice about this question, please share it with me.

Thank you

4 Replies

1,481 Views
igorpadykov
NXP Employee
NXP Employee

Hi Xu

as transcoding example one can try:

gst-launch-1.0 v4l2src ! video/x-raw,format=NV12,width=640,height=480 ! v4l2h264enc ! h264parse ! v4l2h264dec ! queue ! waylandsink enable-tile=true sync=false

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

1,481 Views
xu_liu
Contributor II

Do you any idea about this question? Waiting your reply. ^-^

0 Kudos

1,481 Views
igorpadykov
NXP Employee
NXP Employee

please check that latest silicon revision used in the case,

it is described in Table 2. i.MX 8QuadMax Orderable part numbers

i.MX 8QuadMax Automotive and Infotainment Applications Processors

Test on i,MX8QM MEK board with Demo Images from

i.MX Software and Development Tools | NXP 

Best regards
igor

0 Kudos

1,481 Views
xu_liu
Contributor II

Thank you for your answer.

I have tried your method, but it still dosen't work. The display device shows as follow picture

微信图片_20200203171845.jpg

The command I use is 

gst-launch-1.0 v4l2src device=/dev/video3 ! video/x-raw,format=NV12,width=1280,height=720 ! v4l2h264enc ! h264parse ! v4l2h264dec ! queue ! waylandsink enable-tile=true sync=false

When I end the command, the board give the same fault.  This time the number of fps is right.

 
Execution ended after 0:06:46.804658625
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
[ 1997.621501] [VPU Decoder] error: v4l2_ioctl_reqbufs() can't request (0) buffer : -16
[ 1997.643927] ds960_mipi 8-0030: ds960_s_stream: set stream 3 off, now running 1
[ 1997.651220] ds960_mipi 8-0030: ds960_s_stream: stream off
Setting pipeline to NULL ...
Total showed frames (17468), playing for (0:06:46.804939250), fps (42.939).
Freeing pipeline ...

Can you figure out anther solution?  Thank you!

0 Kudos