[Bug 772855] decodebin3: Implement lock for multiqueue slot

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Thu Oct 13 12:28:51 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=772855

--- Comment #4 from Seungha Yang <sh.yang at lge.com> ---
List of MultiQueueSlot (i.e., slots in decodebin3) and MultiQueueSlot itself
should be protected by lock. There is a timing issue due to access to them
without protection.

Please refer to the attached log.
When the problem happened, 

- output buffer of "parsebin1" was detected first (thread 0x8c400),
581 0:00:05.997468753 16257    0x8c400 FIXME             decodebin3
gstdecodebin3-parse.c:396:parsebin_buffer_probe:<decodebin3-0> Need a lock !
582 0:00:05.997525669 16257    0x8c400 DEBUG             decodebin3
gstdecodebin3-parse.c:398:parsebin_buffer_probe:<parsebin1:src_0> Got a buffer
! UNBLOCK 

- then, buffer of "parsebin0" (thread 0x8c800)
613 0:00:06.006743253 16257    0x8c800 FIXME             decodebin3
gstdecodebin3-parse.c:396:parsebin_buffer_probe:<decodebin3-0> Need a lock !
614 0:00:06.006764128 16257    0x8c800 DEBUG             decodebin3
gstdecodebin3-parse.c:398:parsebin_buffer_probe:<parsebin0:src_0> Got a buffer
! UNBLOCK !

- however, linking between "parsebin0" and multiqueue was done before that of
"parsebin1", and it caused erroneous EOS event to multiqueue.
634 0:00:06.008808836 16257    0x8c800 INFO                GST_PADS
gstpad.c:2498:gst_pad_link_full: linked parsebin0:src_0 and multiqueue0:sink_1,
successful
637 0:00:06.010344211 16257    0x8c800 DEBUG             decodebin3
gstdecodebin3-parse.c:471:parsebin_buffer_probe:<multiqueue0:sink_0> Sending
EOS to unused slot
638 0:00:06.007188878 16257    0x8c400 INFO                GST_PADS
gstpad.c:2498:gst_pad_link_full: linked parsebin1:src_0 and multiqueue0:sink_0,
successful

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list