vl42codecs and sunxi cedrus driver

Belisko Marek marek.belisko at gmail.com
Wed Sep 15 20:05:11 UTC 2021


Hello,

I'm trying to make gstreamer working with sunxi cedrus driver (I have
seen this merge request
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1268)

And try to start pipeline as described here
(https://forum.armbian.com/topic/17187-understanding-hardware-accelerated-video-decoding/?do=findComment&comment=120703)

gst-play-1.0 --use-playbin3 --videosink="kmssink
plane-properties=s,zpos=3" video.file

but this reports:

GST_DEBUG="*:3" gst-play-1.0 --use-playbin3 --videosink="kmssink
plane-properties=s,zpos=3" /data/bunny.mp4
Press 'k' to see a list of keyboard shortcuts.
Now playing /data/bunny.mp4
0:00:00.356565681  1987 0xaaaadb9fa700 WARN                 basesrc
gstbasesrc.c:3688:gst_base_src_start_complete:<source> pad not
activated yet
0:00:00.357717770  1987 0xaaaadb9fa700 WARN                 basesrc
gstbasesrc.c:3688:gst_base_src_start_complete:<source> pad not
activated yet
0:00:00.359439985  1987 0xaaaadba1c320 WARN                typefind
gsttypefindelement.c:1232:gst_type_find_element_loop:<typefindelement0>
error: Internal data stream error.
0:00:00.359552944  1987 0xaaaadba1c320 WARN                typefind
gsttypefindelement.c:1232:gst_type_find_element_loop:<typefindelement0>
error: streaming stopped, reason error (-5)
ERROR Could not determine type of stream. for file:///data/bunny.mp4
ERROR debug information:
../gstreamer-1.18.4/plugins/elements/gsttypefindelement.c(1161):
gst_type_find_element_loop ():
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelemen0
Reached end of play list.

Then I tried other approach by using vaapi and lib-v4l2-request but
hitting other issue with buffers not available by running:

export LIBVA_DRIVERS_PATH=/usr/lib/dri
export LIBVA_DRIVER_NAME=v4l2_request
export DISPLAY=:0
export GST_VAAPI_ALL_DRIVERS=1

gst-launch-1.0 filesrc location=[FILENAME] ! qtdemux ! vaapih264dec ! fakesink

it reports:
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got context from element 'vaapidecode_h264-0':
gst.gl.GLDisplay=context,
gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayEGL\)\ gldisplayegl0";
Got context from element 'vaapidecode_h264-0':
gst.vaapi.Display=context,
gst.vaapi.Display=(GstVaapiDisplay)"\(GstVaapiDisplayDRM\)\
vaapidisplaydrm1";
v4l2-request: Unable to enable stream: Invalid argument
v4l2-request: Unable to create buffer for type 1: No buffer space available
v4l2-request: Unable to create buffer for type 1: No buffer space available
v4l2-request: Unable to create buffer for type 1: No buffer space available
v4l2-request: Unable to create buffer for type 1: No buffer space available
v4l2-request: Unable to create buffer for type 1: No buffer space available

I traced it down to the kernel that it's trying to allocate more v4l2
buffers like max (set to 32).

Does anybody have a clue how to test cedrus accelerated video decoding.

I'm using 5.14 kernel and 1.18.4 gstreamer version.

Thank and BR,

marek



-- 
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer

Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
twitter: #opennandra
web: http://open-nandra.com


More information about the gstreamer-devel mailing list