Decodebin errors

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Decodebin errors

Geoff Clements

Hi,

 

I'm having a problem with decodebin and I've managed to isolate the cause but I'm not sure how to get to a resolution. My application is an audio player client which receives streams from a server which simply streams audio files (flac, ogg/vorbis, mp3 etc).

 

I'm just looking for some pointers. Currently I'm considering handling the autoplug-select signal from decodebin, exposing the application/x-icy pad and attaching a fakesink but this feels a bit kludgy.

 

For me decodebin is working fine except when both these conditions are hit:

1. The stream is audio/x-flac.

2. The stream to the client starts from somewhere in the middle of the file on the server (the server can do this and I have no control of this)

 

The error message is:

gsticydemux.c(481): gst_icydemux_typefind_or_forward (): /GstPipeline:stormpipe/GstBin:bin1/GstDecodeBin:decoder/GstICYDemux:icydemux1:

No caps found for contents within an ICY stream

 

The debug output for the time leading up to the error is:

 

0:00:33.341937029  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:2854:type_found:<decoder> typefind found caps application/x-icy, metadata-interval=(int)32768

0:00:33.341982088  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:3517:gst_decode_chain_new:<decoder> Creating new chain 0x7f64ac0759d0 with parent group (nil)

[storm::codec] [0:00:33.342007075  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:1524:analyze_new_pad:<decoder> Pad typefind:src caps:application/x-icy, metadata-interval=(int)32768

INFO] Sending STAT_0:00:33.342023242  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:5180:gst_decode_pad_new:<decoder> making new decodepad

STMe

0:00:33.342148164  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:5627:gst_decode_bin_handle_message:<decoder> Forwarding msg structure-change message: 0x7f64a04af690, time 99:99:99.999999999, seq-num 536, element 'proxypad5', GstMessageStructureChange, type=(GstStructureChangeType)GST_STRUCTURE_CHANGE_TYPE_PAD_LINK, owner=(GstElement)"\(GstTypeFindElement\)\ typefind", busy=(boolean)true;

[storm::codec] [INFO] Sending STAT_STMh0:00:33.342206707  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:5627:gst_decode_bin_handle_message:<decoder> Forwarding msg structure-change message: 0x55c33a4cca40, time 99:99:99.999999999, seq-num 538, element 'proxypad5', GstMessageStructureChange, type=(GstStructureChangeType)GST_STRUCTURE_CHANGE_TYPE_PAD_LINK, owner=(GstElement)"\(GstTypeFindElement\)\ typefind", busy=(boolean)false;

 

0:00:33.342247215  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:1480:copy_sticky_events:<'':decodepad1> store sticky event stream-start event: 0x7f64ac38e890, time 99:99:99.999999999, seq-num 529, GstEventStreamStart, stream-id=(string)0d4ad9edec33945fabea4dcc13a96839c3391a21ff4d5032723cfa8e55eec35c, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)2;

0:00:33.342288952  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:1480:copy_sticky_events:<'':decodepad1> store sticky event caps event: 0x7f64ac1d6ea0, time 99:99:99.999999999, seq-num 535, GstEventCaps, caps=(GstCaps)"application/x-icy\,\ metadata-interval\=\(int\)32768";

0:00:33.342312614  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:1375:gst_decode_bin_autoplug_continue:<decoder> autoplug-continue returns TRUE

0:00:33.342333751  6130 0x55c33a472990 LOG   decodebin gstdecodebin2.c:3222:are_final_caps:<decoder> Checking with caps application/x-icy, metadata-interval=(int)32768

0:00:33.342348965  6130 0x55c33a472990 LOG   decodebin gstdecodebin2.c:3229:are_final_caps:<decoder> Caps are not final caps

0:00:33.342367488  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:1389:gst_decode_bin_autoplug_factories:<decoder> finding factories

0:00:33.344366683  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:1411:gst_decode_bin_autoplug_factories:<decoder> autoplug-factories returns 0x7f64ac208100

0:00:33.344398574  6130 0x55c33a472990 LOG   decodebin gstdecodebin2.c:1807:analyze_new_pad:<typefind:src> Let's continue discovery on this pad

0:00:33.344427912  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:2102:connect_pad:<decoder> pad typefind:src , chain:0x7f64ac0759d0, 1 factories, caps application/x-icy, metadata-interval=(int)32768

0:00:33.344471203  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:5627:gst_decode_bin_handle_message:<decoder> Forwarding msg structure-change message: 0x55c33a4cca40, time 99:99:99.999999999, seq-num 541, element 'proxypad5', GstMessageStructureChange, type=(GstStructureChangeType)GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK, owner=(GstElement)"\(GstTypeFindElement\)\ typefind", busy=(boolean)true;

0:00:33.344512265  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:5627:gst_decode_bin_handle_message:<decoder> Forwarding msg structure-change message: 0x7f64a04af690, time 99:99:99.999999999, seq-num 542, element 'proxypad5', GstMessageStructureChange, type=(GstStructureChangeType)GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK, owner=(GstElement)"\(GstTypeFindElement\)\ typefind", busy=(boolean)false;

0:00:33.344545520  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:5627:gst_decode_bin_handle_message:<decoder> Forwarding msg structure-change message: 0x7f64a04af690, time 99:99:99.999999999, seq-num 543, element 'proxypad5', GstMessageStructureChange, type=(GstStructureChangeType)GST_STRUCTURE_CHANGE_TYPE_PAD_LINK, owner=(GstElement)"\(GstTypeFindElement\)\ typefind", busy=(boolean)true;

0:00:33.344588317  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:5627:gst_decode_bin_handle_message:<decoder> Forwarding msg structure-change message: 0x55c33a4cca40, time 99:99:99.999999999, seq-num 545, element 'proxypad5', GstMessageStructureChange, type=(GstStructureChangeType)GST_STRUCTURE_CHANGE_TYPE_PAD_LINK, owner=(GstElement)"\(GstTypeFindElement\)\ typefind", busy=(boolean)false;

0:00:33.344620202  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:1480:copy_sticky_events:<'':decodepad1> store sticky event stream-start event: 0x7f64ac38e890, time 99:99:99.999999999, seq-num 529, GstEventStreamStart, stream-id=(string)0d4ad9edec33945fabea4dcc13a96839c3391a21ff4d5032723cfa8e55eec35c, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)2;

0:00:33.344655457  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:1480:copy_sticky_events:<'':decodepad1> store sticky event caps event: 0x7f64ac1d6ea0, time 99:99:99.999999999, seq-num 535, GstEventCaps, caps=(GstCaps)"application/x-icy\,\ metadata-interval\=\(int\)32768";

0:00:33.344672078  6130 0x55c33a472990 LOG   decodebin gstdecodebin2.c:2151:connect_pad:<typefind> trying factory <icydemux>

0:00:33.344693383  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:1427:gst_decode_bin_autoplug_select:<decoder> default autoplug-select returns TRY

0:00:33.344708494  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:2248:connect_pad:<decoder> autoplug select requested try

0:00:33.344738768  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:5627:gst_decode_bin_handle_message:<decoder> Forwarding msg structure-change message: 0x55c33a4cca40, time 99:99:99.999999999, seq-num 546, element 'proxypad5', GstMessageStructureChange, type=(GstStructureChangeType)GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK, owner=(GstElement)"\(GstTypeFindElement\)\ typefind", busy=(boolean)true;

0:00:33.344767425  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:5627:gst_decode_bin_handle_message:<decoder> Forwarding msg structure-change message: 0x7f64a04af690, time 99:99:99.999999999, seq-num 547, element 'proxypad5', GstMessageStructureChange, type=(GstStructureChangeType)GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK, owner=(GstElement)"\(GstTypeFindElement\)\ typefind", busy=(boolean)false;

0:00:33.344796437  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:1469:clear_sticky_events:<'':decodepad1> clearing sticky event stream-start event: 0x7f64ac38e890, time 99:99:99.999999999, seq-num 529, GstEventStreamStart, stream-id=(string)0d4ad9edec33945fabea4dcc13a96839c3391a21ff4d5032723cfa8e55eec35c, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)2;

0:00:33.344819248  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:1469:clear_sticky_events:<'':decodepad1> clearing sticky event caps event: 0x7f64ac1d6ea0, time 99:99:99.999999999, seq-num 535, GstEventCaps, caps=(GstCaps)"application/x-icy\,\ metadata-interval\=\(int\)32768";

0:00:33.344911225  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:5627:gst_decode_bin_handle_message:<decoder> Forwarding msg structure-change message: 0x7f64a04af690, time 99:99:99.999999999, seq-num 548, element 'sink', GstMessageStructureChange, type=(GstStructureChangeType)GST_STRUCTURE_CHANGE_TYPE_PAD_LINK, owner=(GstElement)"\(GstTypeFindElement\)\ typefind", busy=(boolean)true;

0:00:33.344956320  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:5627:gst_decode_bin_handle_message:<decoder> Forwarding msg structure-change message: 0x55c33a4cca40, time 99:99:99.999999999, seq-num 550, element 'sink', GstMessageStructureChange, type=(GstStructureChangeType)GST_STRUCTURE_CHANGE_TYPE_PAD_LINK, owner=(GstElement)"\(GstTypeFindElement\)\ typefind", busy=(boolean)false;

0:00:33.344991512  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:5627:gst_decode_bin_handle_message:<decoder> Forwarding msg state-changed message: 0x55c33a4cca40, time 99:99:99.999999999, seq-num 551, element 'icydemux1', GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING;

0:00:33.345047788  6130 0x55c33a472990 LOG   decodebin gstdecodebin2.c:2372:connect_pad:<decoder> linked on pad typefind:src

0:00:33.345065560  6130 0x55c33a472990 LOG   decodebin gstdecodebin2.c:2374:connect_pad:<decoder> locking chain 0x7f64ac0759d0 from thread 0x55c33a472990

0:00:33.345089694  6130 0x55c33a472990 LOG   decodebin gstdecodebin2.c:2374:connect_pad:<decoder> locked chain 0x7f64ac0759d0 from thread 0x55c33a472990

0:00:33.345107689  6130 0x55c33a472990 LOG   decodebin gstdecodebin2.c:2419:connect_pad:<decoder> unlocking chain 0x7f64ac0759d0 from thread 0x55c33a472990

0:00:33.345124693  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:2682:connect_element:<decoder> Attempting to connect element icydemux1 [chain:0x7f64ac0759d0] further

0:00:33.345137454  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:2695:connect_element:<decoder> got a source pad template src

0:00:33.345152046  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:2730:connect_element:<decoder> did not get the sometimes pad of template src

0:00:33.345165647  6130 0x55c33a472990 LOG   decodebin gstdecodebin2.c:2746:connect_element:<decoder> Adding signals to element icydemux1 in chain 0x7f64ac0759d0

0:00:33.345216934  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:5627:gst_decode_bin_handle_message:<decoder> Forwarding msg state-changed message: 0x7f64a04af690, time 99:99:99.999999999, seq-num 552, element 'icydemux1', GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING;

0:00:33.373994955  6130 0x55c33a472990 LOG   decodebin gstdecodebin2.c:5518:gst_decode_bin_handle_message:<decoder> dynlocking from thread 0x55c33a472990

0:00:33.374006849  6130 0x55c33a472990 LOG   decodebin gstdecodebin2.c:5518:gst_decode_bin_handle_message:<decoder> dynlocked from thread 0x55c33a472990

0:00:33.374010019  6130 0x55c33a472990 LOG   decodebin gstdecodebin2.c:5520:gst_decode_bin_handle_message:<decoder> dynunlocking from thread 0x55c33a472990

0:00:33.374020354  6130 0x55c33a472990 DEBUG   decodebin gstdecodebin2.c:5627:gst_decode_bin_handle_message:<decoder> Forwarding msg error message: 0x7f64ac38a610, time 99:99:99.999999999, seq-num 553, element 'icydemux1', GstMessageError, gerror=(GError)NULL, debug=(string)"gsticydemux.c\(481\):\ gst_icydemux_typefind_or_forward\ \(\):\ /GstPipeline:stormpipe/GstBin:bin1/GstDecodeBin:decoder/GstICYDemux:icydemux1:\012No\ caps\ found\ for\ contents\ within\ an\ ICY\ stream";

[storm::player] [ERROR] Stream error: gsticydemux.c(481): gst_icydemux_typefind_or_forward (): /GstPipeline:stormpipe/GstBin:bin1/GstDecodeBin:decoder/GstICYDemux:icydemux1:

No caps found for contents within an ICY stream

[storm::player] [ERROR] Stream error: gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:stormpipe/GstBin:bin1/GstSoupHTTPSrc:source:

streaming stopped, reason error (-5)

[storm::player] [ERROR] Stream error: gstqueue.c(988): gst_queue_handle_sink_event (): /GstPipeline:stormpipe/GstBin:bin1/GstQueue:ibuf:

 

--

Geoff


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (499 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Decodebin errors

Tim Müller
On Sun, 2019-08-11 at 13:52 +0100, Geoff Clements wrote:

Hi Geoff,
 

> For me decodebin is working fine except when both these conditions
> are hit:
> 1. The stream is audio/x-flac.
> 2. The stream to the client starts from somewhere in the middle of
> the file on the server (the server can do this and I have no control
> of this)
>  
> The error message is:
> gsticydemux.c(481): gst_icydemux_typefind_or_forward ():
> /GstPipeline:stormpipe/GstBin:bin1/GstDecodeBin:decoder/GstICYDemux:i
> cydemux1:
> No caps found for contents within an ICY stream

Sounds like icydemuxer/the typefindfunctions don't handle that case
properly.

What kind of FLAC data do you get inside the ICY wrapper? Does it
contain a FLAC stream header or is that skipped entirely and it's just
FLAC frames?

If you have an easy way to reproduce it, maybe you could capture some
data after the http source element with

 ... ! gdppay ! filesink location=icy-flac.gdp

and then file an issue about this so we can try and reproduce it with
the gdp file.

Cheers
 Tim

--
Tim Müller, Centricular Ltd - http://www.centricular.com

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Decodebin errors

Geoff Clements
Tim Müller wrote
> If you have an easy way to reproduce it, maybe you could capture some
> data after the http source element with
>
>  ... ! gdppay ! filesink location=icy-flac.gdp
>
> and then file an issue about this so we can try and reproduce it with
> the gdp file.

Hi Tim,

Thanks for the reply.

I augmented my pipeline by teeing off the source element and then adding in
a queue ! gdppay ! filesink

Trouble is every time I trigger the issue I'm left an empty file.

I'll keep trying.

Geoff



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel