GNOME Bugzilla – Bug 777729
decodebin3: Add input_lock whenever add and remove DecodebinInputStream
Last modified: 2018-11-03 11:54:15 UTC
Hello All. When decodebin3 has multiple parsebins, segmentation fault is observed sometimes when playbin3 pipeline goes to PLAYING to NULL. --------------------------------------------------- Test Stream: http://hls-streamer2-dev.minutv.ee/2d6870d65cd1b616ec04c107288081a9_1467970545web/vod/indur_test_lg/index.m3u8 --------------------------------------------------- Above HLS stream contains 1-video and 2-audio and number of parsebin is 3. When create_input_stream () function is called at the same time by each pending pads, one DecodebinInputStream can not be inserted 'dbin->input_streams' list and other DecodebinInputStream is added to 'dbin->input_streams' list. So, length of 'dbin->input_streams' it not 3. Thus, when playbin3 goes to PLAYING to NULL, parsebin_pad_removed_cb () function is called but, remove_input_stream () function is not called. Because, we could not find corresponded DecodebinInputStream from 'dbin->input_streams'. And then, segmentation fault is happened trying to "gst_pad_unlink (slot->input->srcpad, slot->sink_pad);" in free_multiqueue_slot () function. Thanks.
Created attachment 344197 [details] [review] Add input lock whenerver input streams are added and removed Dear All. Please review my patch. Thanks.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/333.