gst-plugins-bad nvdec element doesn't work

Matthew Waters ystreet00 at gmail.com
Tue Jun 16 03:00:00 UTC 2020


What version of GStreamer?  Previous versions of nvdec could only output
to GLTextures and could not output to system memory.  Add a gldownload
if you want the output in system memory.

Delayed linking generally means a caps negotiation failure.

On 16/6/20 4:10 am, Борис wrote:
>
>  system: win10 x64, compiler msvc 2015 x64, gstreamer version 1.16.2  
>
> Hi. I rebuilt gst-plugins-bad to enable support of nvidia accelerated
> decoding (nvdec). It works when i run it from gst-launch-1.0:
> gst-launch-1.0 filesrc location=D:/test_nvdec/jumanji.mp4 ! qtdemux !
> h264parse ! nvdec ! glimagesink sync=false
>
> but when i run same pipeline in my project:
>
> qputenv("GST_DEBUG","2");
> QStringpipeLine=QString("filesrclocation=D:/test_nvdec/jumanji.mp4!qtdemux!h264parse!nvdec!videoconvert!appsinksync=false");
> cv::VideoCapturecap(pipeLine.toStdString(),cv::CAP_GSTREAMER);
> if(cap.isOpened())
> {
> Matframe;
> cap>>frame;
> imwrite("D:/test.png",frame);
> }
> it gives me errors:
>
> 0:00:00.165703000 26304 000001FFC4CF5E70 WARN basesrc
> gstbasesrc.c:3600:gst_base_src_start_complete:<filesrc0> pad not
> activated yet
>
>
> 0:00:00.166446000 26304 000001FFC4CD29C0 WARN qtdemux
> qtdemux_types.c:240:qtdemux_type_get: unknown QuickTime node type gsst
>
>
> 0:00:00.166577000 26304 000001FFC4CD29C0 WARN qtdemux
> qtdemux_types.c:240:qtdemux_type_get: unknown QuickTime node type gstd
>
>
> 0:00:00.166747000 26304 000001FFC4CD29C0 WARN qtdemux
> qtdemux.c:3238:qtdemux_parse_trex:<qtdemux0> failed to find fragment
> defaults for stream 1
>
>
> 0:00:00.166981000 26304 000001FFC4CD29C0 WARN qtdemux
> qtdemux.c:3238:qtdemux_parse_trex:<qtdemux0> failed to find fragment
> defaults for stream 2
>
>
> 0:00:00.168948000 26304 000001FFC4CD29C0 WARN default
> grammar.y:510:gst_parse_no_more_pads:<qtdemux0> warning: Delayed
> linking failed.
>
>
> 0:00:00.169078000 26304 000001FFC4CD29C0 WARN default
> grammar.y:510:gst_parse_no_more_pads:<qtdemux0> warning: failed
> delayed linking some pad of GstQTDemux named qtdemux0 to some pad of
> GstH264Parse named h264parse0
>
>
> 0:00:00.169337000 26304 000001FFC4CD29C0 WARN qtdemux
> qtdemux.c:6605:gst_qtdemux_loop:<qtdemux0> error: Internal data stream
> error.
>
>
> 0:00:00.169460000 26304 000001FFC4CD29C0 WARN qtdemux
> qtdemux.c:6605:gst_qtdemux_loop:<qtdemux0> error: streaming stopped,
> reason not-linked (-1)
>
>
>
> (gametrack_modules.exe:26304): GStreamer-CRITICAL **: 21:05:08.530:
> gst_element_get_bus: assertion 'GST_IS_ELEMENT (element)' failed
>
>
>
> (gametrack_modules.exe:26304): GStreamer-CRITICAL **: 21:05:08.530:
> gst_bus_have_pending: assertion 'GST_IS_BUS (bus)' failed
>
>
>
> (gametrack_modules.exe:26304): GStreamer-CRITICAL **: 21:05:08.530:
> gst_object_unref: assertion 'object != NULL' failed
>
>
>
> (gametrack_modules.exe:26304): GStreamer-CRITICAL **: 21:05:08.531:
> gst_element_send_event: assertion 'GST_IS_ELEMENT (element)' failed
>
> but if i replace nvdec with avdec_h264 everything works as expected:
>
> QStringpipeLine=QString("filesrclocation=D:/test_nvdec/jumanji.mp4!qtdemux!h264parse!avdec_h264!videoconvert!appsinksync=false");
> so, what is wrong here?
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20200616/55a8e572/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20200616/55a8e572/attachment.sig>


More information about the gstreamer-devel mailing list