[Bug 692868] New: basesink: expands GAP event without duration to last to segment end

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Jan 30 02:55:38 PST 2013


https://bugzilla.gnome.org/show_bug.cgi?id=692868
  GStreamer | gstreamer (core) | git

           Summary: basesink: expands GAP event without duration to last
                    to segment end
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: t.i.m at zen.co.uk
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


- playbin (with streamsynchronizer)

 - mp4 file with 4 seconds worth of data

 - segment is 0-22 minutes

 - ca. 4 seconds worth of buffers are sent

 - EOS events are sent

 - when receiving the video EOS event,
    streamsynchronizer makes up a GAP
    event with ts=4secs and no duration
    and sends it to the audio sink

 - audio sink waits until segment end
   before posting EOS.

The audio sink should treat the GAP event without duration like a buffer
without duration, and post EOS pretty much immediately afterwards (the GAP
event is followed by an EOS event).

Here's what goes wrong:

<AD-N770> __tim, wtay: http://dl.dropbox.com/u/4577541/gst.log
<AD-N770> this is the log for basesink, let me know if you want more categories
and I will regen it
<AD-N770> 4 seconds of data and 22 min duration
<__tim> gst_base_sink_get_sync_times:<alsasink0> Got Gap time 0:00:04.272000000
duration 99:99:99.999999999
<__tim> so the GAP event generated by streamsynchronizer looks ok - agreed?
<AD-N770> I think so, but it seems that it may be the cause of sync the EOS at
segment end
<__tim> but then this happens:
<__tim> gstbasesink.c:1876:gst_base_sink_get_sync_times:<alsasink0> got times
start: 0:00:04.272000000, stop: 99:99:99.999999999, do_sync 1
<__tim> gstbasesink.c:1902:gst_base_sink_get_sync_times:<alsasink0> clipped to:
start 0:00:04.272000000, stop: 0:22:49.896000000
<__tim> so the question is where it gets that stop from then
<__tim> well, we know where it's from (segment), but not where it's filled in
<AD-N770> __tim: do you mean that the gap event get the duration of the
remaining lenght of stream
<AD-N770> and it causes the EOS being sync at buffer+duration of last, so the
gap duration
<__tim> I think that's what's happening, yes
<AD-N770> well, I really can't dig on it now, but let me know if you want that
I'll generate some logs or test a patch
<wtay> __tim, AD-N770 ah yes
<wtay> in that case, basesink calculates the stop time wrongly for items
without a duration
<AD-N770> wtay: then is something to be changed in basesink?
<wtay> AD-N770, I would think so

-- 
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