• Video Decoding on imx6 with Debian

    From Rainer Dorsch@21:1/5 to All on Sun Nov 3 16:00:01 2024
    Hello,

    does anybody have a working gstreamer pipeline for the imx6 with HW video decoding?

    Following https://trac.gateworks.com/wiki/ventana/vpu I setup the HW and gstreamer reports

    rd@mo:~$ gst-inspect-1.0 | grep -P "v4l2.*dec"
    video4linux2: v4l2h264dec: V4L2 H264 Decoder
    video4linux2: v4l2jpegdec: V4L2 JPEG Decoder
    video4linux2: v4l2mpeg2dec: V4L2 MPEG2 Decoder
    video4linux2: v4l2mpeg4dec: V4L2 MPEG4 Decoder
    rd@mo:~$

    I also allocated extra cma memory

    rd@mo:~$ cat /proc/cmdline
    console=ttymxc0,115200 quiet cma=256M
    rd@mo:~$

    But I did not manage to get a working h264 playback:

    # gst-launch-1.0 filesrc location=/mnt/net/fs/mnt/disk/scratch/xbian/storage/ videos/Erdmännchen/002_Zum_in_die_Luft_gehen.mp4 ! rtph264depay ! v4l2h264dec ! kmssink name=imx-drm sync=0

    Which outputs

    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal data stream error.
    Additional debug info:
    ../libs/gst/base/gstbasesrc.c(3132): gst_base_src_loop (): / GstPipeline:pipeline0/GstFileSrc:filesrc0:
    streaming stopped, reason error (-5)
    ERROR: pipeline doesn't want to preroll.
    Setting pipeline to NULL ...
    Freeing pipeline ...

    When I use gstreamer's playbin, I get no errors, but the video is not displayed properly and on the output are messages that the HW is too slow (I assume in this case the HW decoder is not used).

    Any idea or hint is welcome.

    Many thanks
    Rainer

    --
    Rainer Dorsch
    http://bokomoko.de/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Rainer Dorsch@21:1/5 to All on Sun Nov 3 19:20:01 2024
    Hello,

    for reference in case somebody reads the archives: I found an answer on the gstreamer matrix channel

    gst-launch-1.0 filesrc location=/mnt/net/fs/mnt/disk/scratch/xbian/storage/ videos/Erdmännchen/002_Zum_in_die_Luft_gehen.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! kmssink

    works for me.

    Rainer

    Am Sonntag, 3. November 2024, 15:24:38 CET schrieb Rainer Dorsch:
    Hello,

    does anybody have a working gstreamer pipeline for the imx6 with HW video decoding?

    Following https://trac.gateworks.com/wiki/ventana/vpu I setup the HW and gstreamer reports

    rd@mo:~$ gst-inspect-1.0 | grep -P "v4l2.*dec"
    video4linux2: v4l2h264dec: V4L2 H264 Decoder
    video4linux2: v4l2jpegdec: V4L2 JPEG Decoder
    video4linux2: v4l2mpeg2dec: V4L2 MPEG2 Decoder
    video4linux2: v4l2mpeg4dec: V4L2 MPEG4 Decoder
    rd@mo:~$

    I also allocated extra cma memory

    rd@mo:~$ cat /proc/cmdline
    console=ttymxc0,115200 quiet cma=256M
    rd@mo:~$

    But I did not manage to get a working h264 playback:

    # gst-launch-1.0 filesrc
    location=/mnt/net/fs/mnt/disk/scratch/xbian/storage/ videos/Erdmännchen/002_Zum_in_die_Luft_gehen.mp4 ! rtph264depay !
    v4l2h264dec ! kmssink name=imx-drm sync=0

    Which outputs

    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal
    data stream error.
    Additional debug info:
    ../libs/gst/base/gstbasesrc.c(3132): gst_base_src_loop (): / GstPipeline:pipeline0/GstFileSrc:filesrc0:
    streaming stopped, reason error (-5)
    ERROR: pipeline doesn't want to preroll.
    Setting pipeline to NULL ...
    Freeing pipeline ...

    When I use gstreamer's playbin, I get no errors, but the video is not displayed properly and on the output are messages that the HW is too slow (I assume in this case the HW decoder is not used).

    Any idea or hint is welcome.

    Many thanks
    Rainer


    --
    Rainer Dorsch
    http://bokomoko.de/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)