This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

graphics over video and over graphics

Hi.

I want to play h264 video on LCD. Now i have graphics0 for real-time RGB video and graphics1 for QT. I want to play h264 video over real-time video (graphics0) and beneath QT (graphics1).

Here is current configuration:

echo 1,3/1/2/0 > /sys/devices/platform/vpss/display1/order
echo 0 > /sys/devices/platform/vpss/display1/enabled
echo 65000,1024/20/300/10,768/8/30/7,1 > /sys/devices/platform/vpss/display1/timings
echo triplediscrete,rgb888,0/0/0/0 > /sys/devices/platform/vpss/display1/output
echo 1 > /sys/devices/platform/vpss/display1/enabled
echo 1:dvo2 > /sys/devices/platform/vpss/graphics0/nodes
echo 1:dvo2 > /sys/devices/platform/vpss/graphics1/nodes
echo 1:dvo2 > /sys/devices/platform/vpss/video0/nodes
echo 1:hdmi > /sys/devices/platform/vpss/graphics2/nodes
fbset -fb /dev/fb1 -xres 1024 -yres 768 -vxres 1024 -vyres 768
fbset -fb /dev/fb0 -xres 1024 -yres 768 -vxres 1024 -vyres 768
fbset -fb /dev/fb2 -xres 1024 -yres 768 -vxres 1024 -vyres 768

So i try to use gstreamer to play a video file.

gst-launch -e filesrc location=___5M.avi ! avidemux ! h264parse ! omx_h264dec ! omx_scaler ! 'video/x-raw-yuv,width=(int)1024,height=(int)768' ! gstperf ! v4l2sink device=/dev/video0 sync=false


But i got the following error

Setting pipeline to PAUSED ...

** (gst-launch-0.10:1260): CRITICAL **: gst_v4l2sink_sync_rotation: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed

** (gst-launch-0.10:1260): CRITICAL **: gst_v4l2sink_sync_rotation: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed

** (gst-launch-0.10:1260): CRITICAL **: gst_v4l2sink_sync_flip: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed
Pipeline is PREROLLING ...
Recieved EOS event, press <CTRL+C> to terminate pipeline.
Recieved EOS event, press <CTRL+C> to terminate pipeline.
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 461950 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...

!!!!!!!!!unreference all the remaining buffers!!!!!!!!!Setting pipeline to NULL ...
Freeing pipeline ...

What can be wrong with my configuration?


Best regards,

Alexander Vasiljev.

  • Ok. I have found correct configuration. Problem was with an order of layers and unexpectedly video1 goes to hdmi and video2 to lcd. And i don't understand why do i need omx_scaler, because the format of video in a file is the same as format of lcd.

    Here is current configuration.

    echo 1,2/1/3/0 > /sys/devices/platform/vpss/display1/order
    echo 1,2/1/3/0 > /sys/devices/platform/vpss/display0/order

    echo 1:dvo2 > /sys/devices/platform/vpss/graphics0/nodes
    echo 1:dvo2 > /sys/devices/platform/vpss/graphics1/nodes
    echo 1:hdmi > /sys/devices/platform/vpss/graphics2/nodes

    gst-launch -v filesrc location=___5M.avi ! avidemux ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! omx_scaler ! gstperf ! v4l2sink device=/dev/video2