Hello folks,
I'm facing some problem while playing around with with dynamic pipelines. Need your help / suggestions based on below scenario in case observer something wrong in approach. I have a gstreamer demuxer plugin (not the standard plugin) with 1 video and 1 audio pad. This plugin has 2 source pads: video pad, audio pad. (always 2 pads, doesn't have multiple audio pads per stream as per regular demuxers) For each pad there is dedicated gst_buffer_pool allocated which contains pool of buffers to host Video and Audio ES post demuxing. In this configuration A/V playback is working OK (the pipeline is constructed with playbin) Now on top of this I have to support switching to another audio stream present in the container (MP4) at run time when gstreamer pipeline is in playing state (with same reason as explained above that number of src pads is fixed) demux has to switch to another audio stream as mentioned above which has different codec type. So following the dynamic pipeline principles, following steps are done in sequence to attain this objective: While injection to demux video pad is ongoing (I guess it should be ok to let continue video inject because we are considering deletion and creation of new src pad for audio only chain) ,older audio pad is removed by following below steps: flush the pipeline, send eos event and remove pad followed by no more pad notification: 1. gst_pad_push_event (audio_stream->pad, gst_event_new_flush_start ()); 2. gst_pad_push_event (audio_stream->pad, gst_event_new_flush_stop (TRUE)); 3. gst_pad_push_event (audio_stream->pad, gst_event_new_eos ()); 4. Flush the buffer pool associated associated with audio stream 5. gst_element_remove_pad (xx, audio_stream->pad); 6. gst_element_no_more_pads (xx); And then a new audio pad is created with following operations 1. gst_pad_set_active pad 2. gst_pad_use_fixed_caps 3. gst_pad_push_event gst_event_new_stream_start 4. gst_pad_set_caps pad 5. gst_element_add_pad 6. new segment event 7. caps event 8. push buffers gstreamer version: 1.4.5 Note that all above steps are done in sequence and in same thread context which we can call as streaming thread as per gstreamer design. Being sequential operations there is no possibility to push buffers or events on audio stream src pad (old and then new) from any other thread. But during this period I have another thread which keeps on pushing the buffers on video src pad (which although little different from standard gstreamer streaming thread concept but since the ongoing operations are on audio stream pad so it should not create problem .. problem with buffer timestamps in case ? The expectation was, after above steps, we can inject audio buffers on new audio pad and overall there should be just change in audio stream with no problem on video. But the observations are not as per expectation !!!! Video is stalled for some time when older audio pad is deleted and new audio pad is created. Thereafter video playback is fine but there is no audio and from demux perspective audio packets are pushed without any error on new audio pad. And the pipeline dump gives an idea that older chain is still not deleted and new chain is not built yet. Taking dump of GST pipeline it seems that older pipeline is not deleted and new pipeline from new audio pad is partially created upto proxypad16 inside decodebin, This pad is connected with Gstaacparse src pad but the chain meets dead end at this stage !!!! gst_pad_push() is always successful on new audio pad. The buffers which are pushed on audio pad are allocated from buffer pool. Any suggestions for debugging will be helpful especially with dynamic pipeline management (gstreamer 1.4.5) Thanks Nitin _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Thanks & Regards
--Nitin |
Here are the logs captured (pads deletion and new pad creation) from the logs it appear that gst_decode_chain_is_complete() has returned complete as TRUE when caps nego is taking place. It seems that after aacparse1 reaches deadend. But the reason is not clear and also, playsink chain is also not removed. The expectation is new playsink chain connected with the new decode chain pertaining to audio pad1. But there is something which with autoplugger which is not working as per expectation. May request your help for some comments based on below logs captured for specific pas removal and pad creation phase. playsink gstplaysink.c:3879:gst_play_sink_get_subtitle_encoding:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:3879:gst_play_sink_get_subtitle_encoding:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:3887:gst_play_sink_get_subtitle_encoding:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:927:gst_play_sink_get_sink:<playsink> [00m unlocking from thread 0x9d54060 playbin gstplaybin2.c:2391:gst_play_bin_get_current_sink:<playbin0> [00m play_sink_get_sink() returned audio sink <pulsesink1>, the originally set audio sink is (NULL) playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:927:gst_play_sink_get_sink:<playsink> [00m unlocking from thread 0x9d54060 playbin gstplaybin2.c:2391:gst_play_bin_get_current_sink:<playbin0> [00m play_sink_get_sink() returned video sink <xvimagesink0>, the originally set video sink is (NULL) playsink gstplaysink.c:1115:gst_play_sink_get_vis_plugin:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:1115:gst_play_sink_get_vis_plugin:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1124:gst_play_sink_get_vis_plugin:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:927:gst_play_sink_get_sink:<playsink> [00m unlocking from thread 0x9d54060 playbin gstplaybin2.c:2391:gst_play_bin_get_current_sink:<playbin0> [00m play_sink_get_sink() returned text sink (NULL), the originally set text sink is (NULL) playsink gstplaysink.c:1157:gst_play_sink_get_volume:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:1157:gst_play_sink_get_volume:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1166:gst_play_sink_get_volume:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:1201:gst_play_sink_get_mute:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:1201:gst_play_sink_get_mute:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1209:gst_play_sink_get_mute:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:3951:gst_play_sink_get_last_sample:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:3951:gst_play_sink_get_last_sample:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:3952:gst_play_sink_get_last_sample:<playsink> [00m taking last sample playsink gstplaysink.c:3955:gst_play_sink_get_last_sample:<playsink> [00m found video chain playsink gstplaysink.c:3960:gst_play_sink_get_last_sample:<playsink> [00m video chain active and has a sink playsink gstplaysink.c:1292:element_has_property:<xvimagesink0> [00m has last-sample property of type GstSample playsink gstplaysink.c:3966:gst_play_sink_get_last_sample:<playsink> [00m getting last-sample property playsink gstplaysink.c:3972:gst_play_sink_get_last_sample:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:3927:gst_play_sink_get_av_offset:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:3927:gst_play_sink_get_av_offset:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:3929:gst_play_sink_get_av_offset:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1006:gst_play_sink_get_filter:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1006:gst_play_sink_get_filter:<playsink> [00m unlocking from thread 0x9d54060 decodebin gstdecodebin2.c:2604:pad_removed_cb:<demux0:audio_0> [00m pad removed, chain:0xb42098a0 decodebin gstdecodebin2.c:4235:source_pad_event_probe:<decodebin0:src_1> [00m eos dpad:0xb38045d0 decodebin gstdecodebin2.c:4238:source_pad_event_probe:<decodebin0:src_1> [00m we received EOS decodebin gstdecodebin2.c:2608:pad_removed_cb:<decodebin0> [00m locking chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3578:gst_decode_pad_handle_eos:<decodebin0> [00m pad 0xb38045d0 decodebin gstdecodebin2.c:2608:pad_removed_cb:<decodebin0> [00m locked chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3495:drain_and_switch_chains: [00m Checking chain 0xb42098a0 (target pad decodebin0:src_1) decodebin gstdecodebin2.c:3497:drain_and_switch_chains:<decodebin0> [00m locking chain 0xb42098a0 from thread 0xa083580 decodebin gstdecodebin2.c:2619:pad_removed_cb:<decodebin0> [00m unlocking chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3497:drain_and_switch_chains:<decodebin0> [00m locked chain 0xb42098a0 from thread 0xa083580 decodebin gstdecodebin2.c:3459:drain_and_switch_group: [00m Checking group 0xb387fd90 (target pad decodebin0:src_1) decodebin gstdecodebin2.c:3495:drain_and_switch_chains: [00m Checking chain 0xad414548 (target pad decodebin0:src_1) decodebin gstdecodebin2.c:3497:drain_and_switch_chains:<decodebin0> [00m locking chain 0xad414548 from thread 0xa083580 decodebin gstdecodebin2.c:3497:drain_and_switch_chains:<decodebin0> [00m locked chain 0xad414548 from thread 0xa083580 decodebin gstdecodebin2.c:3507:drain_and_switch_chains: [00m Found the target chain decodebin gstdecodebin2.c:3554:drain_and_switch_chains:<decodebin0> [00m unlocking chain 0xad414548 from thread 0xa083580 decodebin gstdecodebin2.c:3557:drain_and_switch_chains: [00m Chain 0xad414548 (handled:1, last_group:1, drained:1, switched:0) uridecodebin gsturidecodebin.c:1767:proxy_drained_signal:<uridecodebin0> [00m drained signaled playbin gstplaybin2.c:3621:drained_cb:<playbin0> [00m about to finish in group 0x9d57160 playbin gstplaybin2.c:5390:setup_next_source:<playbin0> [00m setup sources playbin gstplaybin2.c:5424:setup_next_source:<playbin0> [00m no next group decodebin gstdecodebin2.c:3495:drain_and_switch_chains: [00m Checking chain 0xad414428 (target pad decodebin0:src_1) decodebin gstdecodebin2.c:3497:drain_and_switch_chains:<decodebin0> [00m locking chain 0xad414428 from thread 0xa083580 decodebin gstdecodebin2.c:3497:drain_and_switch_chains:<decodebin0> [00m locked chain 0xad414428 from thread 0xa083580 decodebin gstdecodebin2.c:3554:drain_and_switch_chains:<decodebin0> [00m unlocking chain 0xad414428 from thread 0xa083580 decodebin gstdecodebin2.c:3557:drain_and_switch_chains: [00m Chain 0xad414428 (handled:0, last_group:1, drained:0, switched:0) decodebin gstdecodebin2.c:3482:drain_and_switch_group: [00m group 0xb387fd90 (last_group:1, drained:0, switched:0, handled:1) decodebin gstdecodebin2.c:3554:drain_and_switch_chains:<decodebin0> [00m unlocking chain 0xb42098a0 from thread 0xa083580 decodebin gstdecodebin2.c:3557:drain_and_switch_chains: [00m Chain 0xb42098a0 (handled:1, last_group:1, drained:0, switched:0) decodebin gstdecodebin2.c:1169:gst_decode_bin_get_caps:<decodebin0> [00m Getting currently set caps decodebin gstdecodebin2.c:1224:gst_decode_bin_get_subs_encoding:<decodebin0> [00m Getting currently set encoding decodebin gstdecodebin2.c:1226:gst_decode_bin_get_subs_encoding:<decodebin0> [00m subtitle locking from thread 0x9d54060 decodebin gstdecodebin2.c:2582:pad_added_cb:<demux0:audio_1> [00m pad added, chain:0xb42098a0 decodebin gstdecodebin2.c:1226:gst_decode_bin_get_subs_encoding:<decodebin0> [00m subtitle lock from thread 0x9d54060 decodebin gstdecodebin2.c:1228:gst_decode_bin_get_subs_encoding:<decodebin0> [00m subtitle unlocking from thread 0x9d54060 decodebin gstdecodebin2.c:1493:analyze_new_pad:<decodebin0> [00m Pad demux0:audio_1 caps:audio/mpeg, mpegversion=(int)4, block_align=(int)4, channels=(int)2, rate=(int)44100, stream-format=(string)adts decodebin gstdecodebin2.c:1193:gst_decode_bin_get_sink_caps:<decodebin0> [00m Getting currently set caps decodebin gstdecodebin2.c:1518:analyze_new_pad:<decodebin0> [00m locking chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:1518:analyze_new_pad:<decodebin0> [00m locked chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3255:gst_decode_group_new:<decodebin0> [00m Creating new group 0xa62036f0 with parent chain 0xb42098a0 decodebin gstdecodebin2.c:2497:check_upstream_seekable:<decodebin0> [00m upstream seekable: 1 decodebin gstdecodebin2.c:3190:decodebin_set_queue_size:<multiqueue1> [00m use buffering 0 decodebin gstdecodebin2.c:3234:decodebin_set_queue_size:<multiqueue1> [00m setting limits 2097152 bytes, 0 buffers, 0 decodebin gstdecodebin2.c:3046:gst_decode_chain_new:<decodebin0> [00m Creating new chain 0xac9fe420 with parent group 0xa62036f0 decodebin gstdecodebin2.c:1524:analyze_new_pad:<decodebin0> [00m unlocking chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:4381:gst_decode_pad_new:<decodebin0> [00m making new decodepad decodebin gstdecodebin2.c:1451:copy_sticky_events:<'':decodepad3> [00m store sticky event stream-start event: 0xa6c2b958, time 99:99:99.999999999, seq-num 1832, GstEventStreamStart, stream-id=(string)d7f3283b614b743d8c3ad8ce2d25eb72341258f88e7e1ba432900b882140dbd5/audio_1, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)0; decodebin gstdecodebin2.c:1451:copy_sticky_events:<'':decodepad3> [00m store sticky event caps event: 0xa6c2b998, time 99:99:99.999999999, seq-num 1833, GstEventCaps, caps=(GstCaps)"audio/mpeg\,\ mpegversion\=\(int\)4\,\ block_align\=\(int\)4\,\ channels\=\(int\)2\,\ rate\=\(int\)44100\,\ stream-format\=\(string\)adts"; playbin gstplaybin2.c:4371:autoplug_continue_cb:<playbin0> [00m continue autoplugging group 0x9d57160 for '':decodepad3, audio/mpeg, mpegversion=(int)4, block_align=(int)4, channels=(int)2, rate=(int)44100, stream-format=(string)adts: 1 uridecodebin gsturidecodebin.c:1699:proxy_autoplug_continue_signal:<uridecodebin0> [00m autoplug-continue returned 1 decodebin gstdecodebin2.c:1346:gst_decode_bin_autoplug_continue:<decodebin0> [00m autoplug-continue returns TRUE decodebin gstdecodebin2.c:2778:are_final_caps:<decodebin0> [00m Checking with caps audio/mpeg, mpegversion=(int)4, block_align=(int)4, channels=(int)2, rate=(int)44100, stream-format=(string)adts decodebin gstdecodebin2.c:2785:are_final_caps:<decodebin0> [00m Caps are not final caps playbin gstplaybin2.c:4031:autoplug_factories_cb:<playbin0> [00m factories group 0x9d57160 for '':decodepad3, audio/mpeg, mpegversion=(int)4, block_align=(int)4, channels=(int)2, rate=(int)44100, stream-format=(string)adts playsink gstplaysink.c:1201:gst_play_sink_get_mute:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:1201:gst_play_sink_get_mute:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1209:gst_play_sink_get_mute:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:1157:gst_play_sink_get_volume:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:1157:gst_play_sink_get_volume:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1166:gst_play_sink_get_volume:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:3879:gst_play_sink_get_subtitle_encoding:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:3879:gst_play_sink_get_subtitle_encoding:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:3887:gst_play_sink_get_subtitle_encoding:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:1115:gst_play_sink_get_vis_plugin:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:1115:gst_play_sink_get_vis_plugin:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1124:gst_play_sink_get_vis_plugin:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:3951:gst_play_sink_get_last_sample:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:3951:gst_play_sink_get_last_sample:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:3952:gst_play_sink_get_last_sample:<playsink> [00m taking last sample playsink gstplaysink.c:3955:gst_play_sink_get_last_sample:<playsink> [00m found video chain playsink gstplaysink.c:3960:gst_play_sink_get_last_sample:<playsink> [00m video chain active and has a sink playsink gstplaysink.c:1292:element_has_property:<xvimagesink0> [00m has last-sample property of type GstSample playsink gstplaysink.c:3966:gst_play_sink_get_last_sample:<playsink> [00m getting last-sample property playsink gstplaysink.c:3972:gst_play_sink_get_last_sample:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:3927:gst_play_sink_get_av_offset:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:3927:gst_play_sink_get_av_offset:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:3929:gst_play_sink_get_av_offset:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:927:gst_play_sink_get_sink:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:927:gst_play_sink_get_sink:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:927:gst_play_sink_get_sink:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1006:gst_play_sink_get_filter:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1006:gst_play_sink_get_filter:<playsink> [00m unlocking from thread 0x9d54060 playbin gstplaybin2.c:2635:gst_play_bin_update_cached_duration_from_query:<playbin0> [00m Updating cached duration from query playsink gstplaysink.c:3879:gst_play_sink_get_subtitle_encoding:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:3879:gst_play_sink_get_subtitle_encoding:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:3887:gst_play_sink_get_subtitle_encoding:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:927:gst_play_sink_get_sink:<playsink> [00m unlocking from thread 0x9d54060 playbin gstplaybin2.c:2391:gst_play_bin_get_current_sink:<playbin0> [00m play_sink_get_sink() returned audio sink <pulsesink1>, the originally set audio sink is (NULL) playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:927:gst_play_sink_get_sink:<playsink> [00m unlocking from thread 0x9d54060 playbin gstplaybin2.c:2391:gst_play_bin_get_current_sink:<playbin0> [00m play_sink_get_sink() returned video sink <xvimagesink0>, the originally set video sink is (NULL) playsink gstplaysink.c:1115:gst_play_sink_get_vis_plugin:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:1115:gst_play_sink_get_vis_plugin:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1124:gst_play_sink_get_vis_plugin:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:927:gst_play_sink_get_sink:<playsink> [00m unlocking from thread 0x9d54060 playbin gstplaybin2.c:2391:gst_play_bin_get_current_sink:<playbin0> [00m play_sink_get_sink() returned text sink (NULL), the originally set text sink is (NULL) playsink gstplaysink.c:1157:gst_play_sink_get_volume:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:1157:gst_play_sink_get_volume:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1166:gst_play_sink_get_volume:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:1201:gst_play_sink_get_mute:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:1201:gst_play_sink_get_mute:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1209:gst_play_sink_get_mute:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:3951:gst_play_sink_get_last_sample:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:3951:gst_play_sink_get_last_sample:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:3952:gst_play_sink_get_last_sample:<playsink> [00m taking last sample playsink gstplaysink.c:3955:gst_play_sink_get_last_sample:<playsink> [00m found video chain playsink gstplaysink.c:3960:gst_play_sink_get_last_sample:<playsink> [00m video chain active and has a sink playsink gstplaysink.c:1292:element_has_property:<xvimagesink0> [00m has last-sample property of type GstSample playsink gstplaysink.c:3966:gst_play_sink_get_last_sample:<playsink> [00m getting last-sample property playsink gstplaysink.c:3972:gst_play_sink_get_last_sample:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:3927:gst_play_sink_get_av_offset:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:3927:gst_play_sink_get_av_offset:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:3929:gst_play_sink_get_av_offset:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1006:gst_play_sink_get_filter:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1006:gst_play_sink_get_filter:<playsink> [00m unlocking from thread 0x9d54060 decodebin gstdecodebin2.c:1169:gst_decode_bin_get_caps:<decodebin0> [00m Getting currently set caps decodebin gstdecodebin2.c:1224:gst_decode_bin_get_subs_encoding:<decodebin0> [00m Getting currently set encoding decodebin gstdecodebin2.c:1226:gst_decode_bin_get_subs_encoding:<decodebin0> [00m subtitle locking from thread 0x9d54060 decodebin gstdecodebin2.c:1226:gst_decode_bin_get_subs_encoding:<decodebin0> [00m subtitle lock from thread 0x9d54060 decodebin gstdecodebin2.c:1228:gst_decode_bin_get_subs_encoding:<decodebin0> [00m subtitle unlocking from thread 0x9d54060 decodebin gstdecodebin2.c:1193:gst_decode_bin_get_sink_caps:<decodebin0> [00m Getting currently set caps playbin gstplaybin2.c:4041:autoplug_factories_cb:<playbin0> [00m found factories 0xb3863800 uridecodebin gsturidecodebin.c:1714:proxy_autoplug_factories_signal:<uridecodebin0> [00m autoplug-factories returned 0xb3863850 uridecodebin gsturidecodebin.c:1729:proxy_autoplug_sort_signal:<uridecodebin0> [00m autoplug-sort returned (nil) decodebin gstdecodebin2.c:1741:analyze_new_pad:<demux0:audio_1> [00m Let's continue discovery on this pad decodebin gstdecodebin2.c:1903:connect_pad:<decodebin0> [00m pad demux0:audio_1 , chain:0xac9fe420, 2 factories, caps audio/mpeg, mpegversion=(int)4, block_align=(int)4, channels=(int)2, rate=(int)44100, stream-format=(string)adts decodebin gstdecodebin2.c:1909:connect_pad:<mssdemux0> [00m is a demuxer, connecting the pad through multiqueue 'multiqueue1' decodebin gstdecodebin2.c:1440:clear_sticky_events:<'':decodepad3> [00m clearing sticky event stream-start event: 0xa6c2b958, time 99:99:99.999999999, seq-num 1832, GstEventStreamStart, stream-id=(string)d7f3283b614b743d8c3ad8ce2d25eb72341258f88e7e1ba432900b882140dbd5/audio_1, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)0; decodebin gstdecodebin2.c:1440:clear_sticky_events:<'':decodepad3> [00m clearing sticky event caps event: 0xa6c2b998, time 99:99:99.999999999, seq-num 1833, GstEventCaps, caps=(GstCaps)"audio/mpeg\,\ mpegversion\=\(int\)4\,\ block_align\=\(int\)4\,\ channels\=\(int\)2\,\ rate\=\(int\)44100\,\ stream-format\=\(string\)adts"; decodebin gstdecodebin2.c:3315:gst_decode_group_control_demuxer_pad:<decodebin0> [00m group:0xa62036f0 pad demux0:audio_1 playsink gstplaysink.c:1201:gst_play_sink_get_mute:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:1201:gst_play_sink_get_mute:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1209:gst_play_sink_get_mute:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:1157:gst_play_sink_get_volume:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:1157:gst_play_sink_get_volume:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1166:gst_play_sink_get_volume:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:3879:gst_play_sink_get_subtitle_encoding:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:3879:gst_play_sink_get_subtitle_encoding:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:3887:gst_play_sink_get_subtitle_encoding:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:1115:gst_play_sink_get_vis_plugin:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:1115:gst_play_sink_get_vis_plugin:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1124:gst_play_sink_get_vis_plugin:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:3951:gst_play_sink_get_last_sample:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:3951:gst_play_sink_get_last_sample:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:3952:gst_play_sink_get_last_sample:<playsink> [00m taking last sample playsink gstplaysink.c:3955:gst_play_sink_get_last_sample:<playsink> [00m found video chain playsink gstplaysink.c:3960:gst_play_sink_get_last_sample:<playsink> [00m video chain active and has a sink playsink gstplaysink.c:1292:element_has_property:<xvimagesink0> [00m has last-sample property of type GstSample playsink gstplaysink.c:3966:gst_play_sink_get_last_sample:<playsink> [00m getting last-sample property decodebin gstdecodebin2.c:3341:gst_decode_group_control_demuxer_pad:<decodebin0> [00m locking chain 0xb42098a0 from thread 0xac8fa9a0 playsink gstplaysink.c:3972:gst_play_sink_get_last_sample:<playsink> [00m unlocking from thread 0x9d54060 decodebin gstdecodebin2.c:3341:gst_decode_group_control_demuxer_pad:<decodebin0> [00m locked chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3343:gst_decode_group_control_demuxer_pad:<decodebin0> [00m unlocking chain 0xb42098a0 from thread 0xac8fa9a0 playsink gstplaysink.c:3927:gst_play_sink_get_av_offset:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:3927:gst_play_sink_get_av_offset:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:3929:gst_play_sink_get_av_offset:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:927:gst_play_sink_get_sink:<playsink> [00m unlocking from thread 0x9d54060 decodebin gstdecodebin2.c:1939:connect_pad:<multiqueue1> [00m trying factory <aacparse> playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locked from thread 0x9d54060 decodebin gstdecodebin2.c:1998:connect_pad:<decodebin0> [00m locking chain 0xac9fe420 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:1998:connect_pad:<decodebin0> [00m locked chain 0xac9fe420 from thread 0xac8fa9a0 playsink gstplaysink.c:927:gst_play_sink_get_sink:<playsink> [00m unlocking from thread 0x9d54060 decodebin gstdecodebin2.c:2017:connect_pad:<decodebin0> [00m unlocking chain 0xac9fe420 from thread 0xac8fa9a0 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:889:gst_play_sink_get_sink:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:927:gst_play_sink_get_sink:<playsink> [00m unlocking from thread 0x9d54060 playbin gstplaybin2.c:4415:autoplug_select_cb:<playbin0> [00m select group 0x9d57160 for '':decodepad3, audio/mpeg, mpegversion=(int)4, block_align=(int)4, channels=(int)2, rate=(int)44100, stream-format=(string)adts playbin gstplaybin2.c:4417:autoplug_select_cb:<playbin0> [00m checking factory aacparse uridecodebin gsturidecodebin.c:375:gst_uri_decode_bin_autoplug_select:<uridecodebin0> [00m default autoplug-select returns TRY uridecodebin gsturidecodebin.c:1744:proxy_autoplug_select_signal:<uridecodebin0> [00m autoplug-select returned 0 decodebin gstdecodebin2.c:1398:gst_decode_bin_autoplug_select:<decodebin0> [00m default autoplug-select returns TRY playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locking from thread 0x9d54060 decodebin gstdecodebin2.c:2033:connect_pad:<decodebin0> [00m autoplug select requested try playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1006:gst_play_sink_get_filter:<playsink> [00m unlocking from thread 0x9d54060 playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locking from thread 0x9d54060 playsink gstplaysink.c:976:gst_play_sink_get_filter:<playsink> [00m locked from thread 0x9d54060 playsink gstplaysink.c:1006:gst_play_sink_get_filter:<playsink> [00m unlocking from thread 0x9d54060 decodebin gstdecodebin2.c:2120:connect_pad:<decodebin0> [00m linked on pad multiqueue1:src_0 decodebin gstdecodebin2.c:2122:connect_pad:<decodebin0> [00m locking chain 0xac9fe420 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:2122:connect_pad:<decodebin0> [00m locked chain 0xac9fe420 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:2149:connect_pad:<decodebin0> [00m unlocking chain 0xac9fe420 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:2326:connect_element:<decodebin0> [00m Attempting to connect element aacparse1 [chain:0xac9fe420] further decodebin gstdecodebin2.c:2339:connect_element:<decodebin0> [00m got a source pad template src decodebin gstdecodebin2.c:2350:connect_element:<decodebin0> [00m got the pad for always template src decodebin gstdecodebin2.c:1493:analyze_new_pad:<decodebin0> [00m Pad aacparse1:src caps:audio/mpeg, framed=(boolean)true, mpegversion=(int){ 2, 4 }, stream-format=(string){ raw, adts, adif, loas } decodebin gstdecodebin2.c:2778:are_final_caps:<decodebin0> [00m Checking with caps audio/mpeg, framed=(boolean)true, mpegversion=(int){ 2, 4 }, stream-format=(string){ raw, adts, adif, loas } decodebin gstdecodebin2.c:2785:are_final_caps:<decodebin0> [00m Caps are not final caps decodebin gstdecodebin2.c:1826:analyze_new_pad:<aacparse1:src> [00m pad has non-fixed caps delay autoplugging decodebin gstdecodebin2.c:1840:analyze_new_pad:<decodebin0> [00m locking chain 0xac9fe420 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:1840:analyze_new_pad:<decodebin0> [00m locked chain 0xac9fe420 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:1842:analyze_new_pad:<decodebin0> [00m Chain 0xac9fe420 has now 0 dynamic pads decodebin gstdecodebin2.c:1852:analyze_new_pad:<decodebin0> [00m unlocking chain 0xac9fe420 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:2589:pad_added_cb:<decodebin0> [00m expose locking from thread 0xac8fa9a0 decodebin gstdecodebin2.c:2589:pad_added_cb:<decodebin0> [00m expose locked from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3404:gst_decode_chain_is_complete:<decodebin0> [00m locking chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3404:gst_decode_chain_is_complete:<decodebin0> [00m locked chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3404:gst_decode_chain_is_complete:<decodebin0> [00m locking chain 0xad414548 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3404:gst_decode_chain_is_complete:<decodebin0> [00m locked chain 0xad414548 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3427:gst_decode_chain_is_complete:<decodebin0> [00m unlocking chain 0xad414548 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3428:gst_decode_chain_is_complete:<decodebin0> [00m Chain 0xad414548 is complete: 1 decodebin gstdecodebin2.c:3404:gst_decode_chain_is_complete:<decodebin0> [00m locking chain 0xad414428 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3404:gst_decode_chain_is_complete:<decodebin0> [00m locked chain 0xad414428 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3427:gst_decode_chain_is_complete:<decodebin0> [00m unlocking chain 0xad414428 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3428:gst_decode_chain_is_complete:<decodebin0> [00m Chain 0xad414428 is complete: 1 decodebin gstdecodebin2.c:3387:gst_decode_group_is_complete:<decodebin0> [00m Group 0xb387fd90 is complete: 1 decodebin gstdecodebin2.c:3427:gst_decode_chain_is_complete:<decodebin0> [00m unlocking chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3428:gst_decode_chain_is_complete:<decodebin0> [00m Chain 0xb42098a0 is complete: 1 decodebin gstdecodebin2.c:2592:pad_added_cb:<decodebin0> [00m That was the last dynamic object, now attempting to expose the group decodebin gstdecodebin2.c:3954:gst_decode_bin_expose:<decodebin0> [00m Exposing currently active chains/groups decodebin gstdecodebin2.c:3957:gst_decode_bin_expose:<decodebin0> [00m dynlocking from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3957:gst_decode_bin_expose:<decodebin0> [00m dynlocked from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3963:gst_decode_bin_expose:<decodebin0> [00m dynunlocking from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3999:gst_decode_bin_expose:<decodebin0> [00m Everything was exposed already! decodebin gstdecodebin2.c:2596:pad_added_cb:<decodebin0> [00m expose unlocking from thread 0xac8fa9a0 decodebin gstdecodebin2.c:4342:gst_decode_pad_query:<decodebin0> [00m locking chain 0xac9fe420 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:4342:gst_decode_pad_query:<decodebin0> [00m locked chain 0xac9fe420 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:4350:gst_decode_pad_query:<decodebin0> [00m calling autoplug-query for decodepad3 (element aacparse1): caps query: 0xabe02380, GstQueryCaps, filter=(GstCaps)"audio/mpeg\,\ mpegversion\=\(int\)4\,\ block_align\=\(int\)4\,\ channels\=\(int\)2\,\ rate\=\(int\)44100\,\ stream-format\=\(string\)\{\ adts\,\ raw\ \}", caps=(GstCaps)"NULL"; uridecodebin gsturidecodebin.c:1759:proxy_autoplug_query_signal:<uridecodebin0> [00m autoplug-query returned 1 decodebin gstdecodebin2.c:4357:gst_decode_pad_query:<decodebin0> [00m autoplug-query returned 1: caps query: 0xabe02380, GstQueryCaps, filter=(GstCaps)"audio/mpeg\,\ mpegversion\=\(int\)4\,\ block_align\=\(int\)4\,\ channels\=\(int\)2\,\ rate\=\(int\)44100\,\ stream-format\=\(string\)\{\ adts\,\ raw\ \}", caps=(GstCaps)"audio/mpeg\,\ mpegversion\=\(int\)4\,\ block_align\=\(int\)4\,\ channels\=\(int\)2\,\ rate\=\(int\)44100\,\ stream-format\=\(string\)\{\ adts\,\ raw\ \}\,\ framed\=\(boolean\)true"; decodebin gstdecodebin2.c:4361:gst_decode_pad_query:<decodebin0> [00m unlocking chain 0xac9fe420 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:4342:gst_decode_pad_query:<decodebin0> [00m locking chain 0xac9fe420 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:4342:gst_decode_pad_query:<decodebin0> [00m locking chain 0xac9fe420 from thread 0x9fe9cc0 decodebin gstdecodebin2.c:4342:gst_decode_pad_query:<decodebin0> [00m locked chain 0xac9fe420 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:4350:gst_decode_pad_query:<decodebin0> [00m calling autoplug-query for decodepad3 (element aacparse1): caps query: 0x9d53290, GstQueryCaps, filter=(GstCaps)"audio/mpeg\,\ mpegversion\=\(int\)4\,\ block_align\=\(int\)4\,\ channels\=\(int\)2\,\ rate\=\(int\)44100\,\ stream-format\=\(string\)\{\ adts\,\ raw\ \}", caps=(GstCaps)"NULL"; uridecodebin gsturidecodebin.c:1759:proxy_autoplug_query_signal:<uridecodebin0> [00m autoplug-query returned 1 decodebin gstdecodebin2.c:4357:gst_decode_pad_query:<decodebin0> [00m autoplug-query returned 1: caps query: 0x9d53290, GstQueryCaps, filter=(GstCaps)"audio/mpeg\,\ mpegversion\=\(int\)4\,\ block_align\=\(int\)4\,\ channels\=\(int\)2\,\ rate\=\(int\)44100\,\ stream-format\=\(string\)\{\ adts\,\ raw\ \}", caps=(GstCaps)"audio/mpeg\,\ mpegversion\=\(int\)4\,\ block_align\=\(int\)4\,\ channels\=\(int\)2\,\ rate\=\(int\)44100\,\ stream-format\=\(string\)\{\ adts\,\ raw\ \}\,\ framed\=\(boolean\)true"; decodebin gstdecodebin2.c:4361:gst_decode_pad_query:<decodebin0> [00m unlocking chain 0xac9fe420 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:4342:gst_decode_pad_query:<decodebin0> [00m locked chain 0xac9fe420 from thread 0x9fe9cc0 decodebin gstdecodebin2.c:4350:gst_decode_pad_query:<decodebin0> [00m calling autoplug-query for decodepad3 (element aacparse1): caps query: 0xa6202f20, GstQueryCaps, filter=(GstCaps)"audio/mpeg\,\ mpegversion\=\(int\)4\,\ block_align\=\(int\)4\,\ channels\=\(int\)2\,\ rate\=\(int\)44100\,\ stream-format\=\(string\)\{\ adts\,\ raw\ \}", caps=(GstCaps)"NULL"; decodebin gstdecodebin2.c:2627:no_more_pads_cb:<demux0> [00m got no more pads decodebin gstdecodebin2.c:2629:no_more_pads_cb:<decodebin0> [00m locking chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:2629:no_more_pads_cb:<decodebin0> [00m locked chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:2660:no_more_pads_cb:<demux0> [00m Setting group 0xa62036f0 to complete decodebin gstdecodebin2.c:2663:no_more_pads_cb:<decodebin0> [00m unlocking chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:2665:no_more_pads_cb:<decodebin0> [00m expose locking from thread 0xac8fa9a0 decodebin gstdecodebin2.c:2665:no_more_pads_cb:<decodebin0> [00m expose locked from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3404:gst_decode_chain_is_complete:<decodebin0> [00m locking chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3404:gst_decode_chain_is_complete:<decodebin0> [00m locked chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3404:gst_decode_chain_is_complete:<decodebin0> [00m locking chain 0xad414548 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3404:gst_decode_chain_is_complete:<decodebin0> [00m locked chain 0xad414548 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3427:gst_decode_chain_is_complete:<decodebin0> [00m unlocking chain 0xad414548 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3428:gst_decode_chain_is_complete:<decodebin0> [00m Chain 0xad414548 is complete: 1 decodebin gstdecodebin2.c:3404:gst_decode_chain_is_complete:<decodebin0> [00m locking chain 0xad414428 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3404:gst_decode_chain_is_complete:<decodebin0> [00m locked chain 0xad414428 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3427:gst_decode_chain_is_complete:<decodebin0> [00m unlocking chain 0xad414428 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3428:gst_decode_chain_is_complete:<decodebin0> [00m Chain 0xad414428 is complete: 1 decodebin gstdecodebin2.c:3387:gst_decode_group_is_complete:<decodebin0> [00m Group 0xb387fd90 is complete: 1 decodebin gstdecodebin2.c:3427:gst_decode_chain_is_complete:<decodebin0> [00m unlocking chain 0xb42098a0 from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3428:gst_decode_chain_is_complete:<decodebin0> [00m Chain 0xb42098a0 is complete: 1 decodebin gstdecodebin2.c:3954:gst_decode_bin_expose:<decodebin0> [00m Exposing currently active chains/groups decodebin gstdecodebin2.c:3957:gst_decode_bin_expose:<decodebin0> [00m dynlocking from thread 0xac8fa9a0 uridecodebin gsturidecodebin.c:1759:proxy_autoplug_query_signal:<uridecodebin0> [00m autoplug-query returned 1 decodebin gstdecodebin2.c:3957:gst_decode_bin_expose:<decodebin0> [00m dynlocked from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3963:gst_decode_bin_expose:<decodebin0> [00m dynunlocking from thread 0xac8fa9a0 decodebin gstdecodebin2.c:3999:gst_decode_bin_expose:<decodebin0> [00m Everything was exposed already! decodebin gstdecodebin2.c:2669:no_more_pads_cb:<decodebin0> [00m expose unlocking from thread 0xac8fa9a0 decodebin gstdecodebin2.c:4357:gst_decode_pad_query:<decodebin0> [00m autoplug-query returned 1: caps query: 0xa6202f20, GstQueryCaps, filter=(GstCaps)"audio/mpeg\,\ mpegversion\=\(int\)4\,\ block_align\=\(int\)4\,\ channels\=\(int\)2\,\ rate\=\(int\)44100\,\ stream-format\=\(string\)\{\ adts\,\ raw\ \}", caps=(GstCaps)"audio/mpeg\,\ mpegversion\=\(int\)4\,\ block_align\=\(int\)4\,\ channels\=\(int\)2\,\ rate\=\(int\)44100\,\ stream-format\=\(string\)\{\ adts\,\ raw\ \}\,\ framed\=\(boolean\)true"; decodebin gstdecodebin2.c:4361:gst_decode_pad_query:<decodebin0> [00m unlocking chain 0xac9fe420 from thread 0x9fe9cc0 _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Thanks & Regards
--Nitin |
As per decodebin design notes: * If one of the chains that end on a endpad receives EOS decodebin checks * if all chains and groups are drained. In that case everything goes into EOS. * If there is a chain where the active group is drained but there exist next * groups, the active group is hidden (endpads are removed) and the next group * is exposed. This means that in some cases more pads may be created even * after the initial no-more-pads signal. This happens for example with * so-called "chained oggs", most commonly found among ogg/vorbis internet * radio streams. It's expected from decodebin to delete/remove the decodechain pertaining to the demux src pad on which flush events and EOS is pushed, and then set to inactive and removed. And when a new src pad is created, we would expect that there would be two decode groups with each containing a decode chain (video decode chain in decode group-1 and audio decode chain in say decode group-2). The older decode chain from decode group-1 will be expected to be removed by decodebin. Is it correct understanding ? Is it OK to only push EOS on the pad to be removed (if we push EOS on other pad which is video pad, it would result in video drop at run time) ? What can be tried so that new decode chain is created and old decode chain is removed successfully ? In current scenario, I'm able to remove older src pad and create new src pad in demuxer but still multiqueue src pad onwards, older decode chain still exists (not expected) and new decode chain is terminated on the proxypad16 inside decodebin which is connected to the new instance of decoder plugin src pad. But the audio decode chain terminates here !!! Any suggestion or pointers will be more than helpful. Thanks decodebin gstdecodebin2.c:2604:pad_ decodebin gstdecodebin2.c:4235:source_ decodebin gstdecodebin2.c:4238:source_ decodebin gstdecodebin2.c:2608:pad_ decodebin gstdecodebin2.c:3578:gst_ decodebin gstdecodebin2.c:2608:pad_ decodebin gstdecodebin2.c:3495:drain_ decodebin gstdecodebin2.c:3497:drain_ decodebin gstdecodebin2.c:2619:pad_ decodebin gstdecodebin2.c:3497:drain_ decodebin gstdecodebin2.c:3459:drain_ decodebin gstdecodebin2.c:3495:drain_ decodebin gstdecodebin2.c:3497:drain_ decodebin gstdecodebin2.c:3497:drain_ decodebin gstdecodebin2.c:3507:drain_ decodebin gstdecodebin2.c:3554:drain_ decodebin gstdecodebin2.c:3557:drain_ uridecodebin gsturidecodebin.c:1767:proxy_ playbin gstplaybin2.c:3621:drained_cb: playbin gstplaybin2.c:5390:setup_next_ playbin gstplaybin2.c:5424:setup_next_ decodebin gstdecodebin2.c:3495:drain_ decodebin gstdecodebin2.c:3497:drain_ decodebin gstdecodebin2.c:3497:drain_ decodebin gstdecodebin2.c:3554:drain_ decodebin gstdecodebin2.c:3557:drain_ decodebin gstdecodebin2.c:3482:drain_ decodebin gstdecodebin2.c:3554:drain_ decodebin gstdecodebin2.c:3557:drain_ On Sun, Apr 30, 2017 at 11:12 PM, Nitin Mahajan <[hidden email]> wrote:
_______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Thanks & Regards
--Nitin |
Free forum by Nabble | Edit this page |