<div dir="auto"><div>Hello,</div><div dir="auto"><br></div><div dir="auto">Answering on top, as it would be complex inline. Gstreamer 1.18 codec support is based on unstable kernel API found in 5.9 and less. 5.10, 5.11 and 5.12 all broke the API, 5.12+ have a stable h264 API which is only supported by our development tree (upcoming 1.20).</div><div dir="auto"><br></div><div dir="auto">Other then that, you have error indicating a broken installation of GStreamer, make sure type finders are installed. For the VA driver, this is broken and adandonned at the moment. It is fixable, but not in direction that was taken (modifying the VA API instead of parsing again inside the VA driver).</div><div dir="auto"><br></div><div dir="auto">Regards,</div><div dir="auto">Nicolas<br><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">Le mer. 15 sept. 2021 17 h 15, Belisko Marek via gstreamer-devel <<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
I'm trying to make gstreamer working with sunxi cedrus driver (I have<br>
seen this merge request<br>
<a href="https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1268" rel="noreferrer noreferrer" target="_blank">https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1268</a>)<br>
<br>
And try to start pipeline as described here<br>
(<a href="https://forum.armbian.com/topic/17187-understanding-hardware-accelerated-video-decoding/?do=findComment&comment=120703" rel="noreferrer noreferrer" target="_blank">https://forum.armbian.com/topic/17187-understanding-hardware-accelerated-video-decoding/?do=findComment&comment=120703</a>)<br>
<br>
gst-play-1.0 --use-playbin3 --videosink="kmssink<br>
plane-properties=s,zpos=3" video.file<br>
<br>
but this reports:<br>
<br>
GST_DEBUG="*:3" gst-play-1.0 --use-playbin3 --videosink="kmssink<br>
plane-properties=s,zpos=3" /data/bunny.mp4<br>
Press 'k' to see a list of keyboard shortcuts.<br>
Now playing /data/bunny.mp4<br>
0:00:00.356565681  1987 0xaaaadb9fa700 WARN                 basesrc<br>
gstbasesrc.c:3688:gst_base_src_start_complete:<source> pad not<br>
activated yet<br>
0:00:00.357717770  1987 0xaaaadb9fa700 WARN                 basesrc<br>
gstbasesrc.c:3688:gst_base_src_start_complete:<source> pad not<br>
activated yet<br>
0:00:00.359439985  1987 0xaaaadba1c320 WARN                typefind<br>
gsttypefindelement.c:1232:gst_type_find_element_loop:<typefindelement0><br>
error: Internal data stream error.<br>
0:00:00.359552944  1987 0xaaaadba1c320 WARN                typefind<br>
gsttypefindelement.c:1232:gst_type_find_element_loop:<typefindelement0><br>
error: streaming stopped, reason error (-5)<br>
ERROR Could not determine type of stream. for file:///data/bunny.mp4<br>
ERROR debug information:<br>
../gstreamer-1.18.4/plugins/elements/gsttypefindelement.c(1161):<br>
gst_type_find_element_loop ():<br>
/GstPlayBin3:playbin/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstTypeFindElement:typefindelemen0<br>
Reached end of play list.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">This is general GStreamer installation issue. It could not find a type finder for ISOMP4 format.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Then I tried other approach by using vaapi and lib-v4l2-request but<br>
hitting other issue with buffers not available by running:<br>
<br>
export LIBVA_DRIVERS_PATH=/usr/lib/dri<br>
export LIBVA_DRIVER_NAME=v4l2_request<br>
export DISPLAY=:0<br>
export GST_VAAPI_ALL_DRIVERS=1<br>
<br>
gst-launch-1.0 filesrc location=[FILENAME] ! qtdemux ! vaapih264dec ! fakesink<br>
<br>
it reports:<br>
Setting pipeline to PAUSED ...<br>
Pipeline is PREROLLING ...<br>
Got context from element 'vaapidecode_h264-0':<br>
gst.gl.GLDisplay=context,<br>
gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayEGL\)\ gldisplayegl0";<br>
Got context from element 'vaapidecode_h264-0':<br>
gst.vaapi.Display=context,<br>
gst.vaapi.Display=(GstVaapiDisplay)"\(GstVaapiDisplayDRM\)\<br>
vaapidisplaydrm1";<br>
v4l2-request: Unable to enable stream: Invalid argument<br>
v4l2-request: Unable to create buffer for type 1: No buffer space available<br>
v4l2-request: Unable to create buffer for type 1: No buffer space available<br>
v4l2-request: Unable to create buffer for type 1: No buffer space available<br>
v4l2-request: Unable to create buffer for type 1: No buffer space available<br>
v4l2-request: Unable to create buffer for type 1: No buffer space available<br>
<br>
I traced it down to the kernel that it's trying to allocate more v4l2<br>
buffers like max (set to 32).<br>
<br>
Does anybody have a clue how to test cedrus accelerated video decoding.<br>
<br>
I'm using 5.14 kernel and 1.18.4 gstreamer version.<br>
<br>
Thank and BR,<br>
<br>
marek<br>
<br>
<br>
<br>
-- <br>
as simple and primitive as possible<br>
-------------------------------------------------<br>
Marek Belisko - OPEN-NANDRA<br>
Freelance Developer<br>
<br>
Ruska Nova Ves 219 | Presov, 08005 Slovak Republic<br>
Tel: +421 915 052 184<br>
skype: marekwhite<br>
twitter: #opennandra<br>
web: <a href="http://open-nandra.com" rel="noreferrer noreferrer" target="_blank">http://open-nandra.com</a><br>
</blockquote></div></div></div>