[gstreamer-bugs] [Bug 597407] New: GstPipeline calculates base_time incorrectly when a new clock appears during PAUSED state

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Mon Oct 5 04:31:05 PDT 2009


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

           Summary: GstPipeline calculates base_time incorrectly when a
                    new clock appears during PAUSED state
    Classification: Desktop
           Product: GStreamer
           Version: 0.10.23
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: ext-tommi.myohanen at nokia.com
         QAContact: gstreamer-bugs at lists.sourceforge.net
      GNOME target: ---
     GNOME version: ---


The situation: pipeline has been running (by using GstSystemClock) and is put
to PAUSED. Then a new clock appears. When pipeline is put back to PLAYING,
following things happen:

1. GstPipeline starts selecting a clock and base_time in PAUSED_TO_PLAYING
2. it takes start time: start_time = GST_ELEMENT_START_TIME (pipeline);
3. update_clock flag is set, so the new clock gets selected as a master clock
4. current time is asked using the new clock: now = gst_clock_get_time (clock);
5. new_base_time = now - start_time + delay;

Now this new_base_time is calculated by using timestamps from both old clock
(start_time) and new clock (now), resulting an invalid base time.

When pipeline is PLAYING, this causes the new clock to give only zero
timestamps out because of the incorrect base_time:

gstpipeline.c:415:gst_pipeline_change_state:<camerabin0>
start_time=0:00:04.520843507, now=0:00:00.000000000, base_time
5124095:34:29.188708109
...
gstbaseaudiosrc.c:996:gst_base_audio_src_create:<pulsesrc0> buffer timestamp 0,
ts 0:00:00.240000000 <= base_time 5124095:34:29.188708109

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