[Bug 661726] New: [subparse] missing race condition protect with seek

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Oct 13 19:41:59 PDT 2011


https://bugzilla.gnome.org/show_bug.cgi?id=661726
  GStreamer | gst-plugins-base | 0.10.x

           Summary: [subparse] missing race condition protect with seek
    Classification: Platform
           Product: GStreamer
           Version: 0.10.x
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gst-plugins-base
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: bcxa.sz at gmail.com
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


This is what I observed when exercise srt subtitle on my embedded
system. But I thought it should also happen in pc.

The sympton is that:
frequently do forward seek and backward seek sometimes, the
subtititle will not be displayed after one backward seek. And it will
display again after the video comes to the last playback position before
this seek.

And with some debug, I found there the issue is due to missing race condition
protection:
.. the self->segment will be written after push event_new_seek in
gst_sub_parse_src_event(). This will happen after FLUSH_STOP.

.. the self->segment also will be written by
handle_buffer()/gst_sub_parse_chain(). This also will happen after
FLUSH_STOP.

So it will have un-certain value of self->segment when push new
segement event to downstream in gst_sub_parse_chain().

=================================================================
To be more precise, the expected result is that after seek, the seek segment
should be set before the chain process the 1st buffer after seek. But this is
not the case since missing race condition protection.

And I will attached my fix here for your review.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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