After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 582010 - audiotestsrc is-live=1 ! pulsesink unreliable
audiotestsrc is-live=1 ! pulsesink unreliable
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal blocker
: 0.10.24
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-05-09 18:46 UTC by Olivier Crête
Modified: 2009-05-25 14:56 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
debug.log (91.35 KB, application/x-gzip)
2009-05-11 11:20 UTC, Stefan Sauer (gstreamer, gtkdoc dev)
  Details
timestamps (23.02 KB, image/png)
2009-05-11 14:37 UTC, Stefan Sauer (gstreamer, gtkdoc dev)
  Details
set timestamp from clock in is-live mode (2.80 KB, patch)
2009-05-11 14:48 UTC, Stefan Sauer (gstreamer, gtkdoc dev)
none Details | Review

Description Olivier Crête 2009-05-09 18:46:28 UTC
Using pulseaudio 0.9.14 and the gst git from today (May 9 2009).

Sometimes I get a bit of stuttering at the start and then silence and sometimes it just fails to start with:

(gst-launch-0.10:17594): GStreamer-CRITICAL **: gst_clock_set_calibration: assertion `internal <= gst_clock_get_internal_time (clock)' failed
Comment 1 Stefan Sauer (gstreamer, gtkdoc dev) 2009-05-11 11:08:59 UTC
fails:
gst-launch audiotestsrc is-live=true ! pulsesink
gst-launch audiotestsrc is-live=true ! alsasink

works:
gst-launch audiotestsrc is-live=true ! jackaudiosink
Comment 2 Stefan Sauer (gstreamer, gtkdoc dev) 2009-05-11 11:20:10 UTC
Created attachment 134388 [details]
debug.log

with slave-method=0 I get the discontinuity warning

gstbaseaudiosink.c(1449): gst_base_audio_sink_render (): /GstPipeline:pipeline0/GstPulseSink:pulsesink0:
Unexpected discontinuity in audio timestamps of more than half a second (0:00:01.011564625), resyncing

slave-method=1 makes the audio disappear quickly, but if I keep waiting a bit it comes back with clicks that get less and less often

slave-method=2 just plays (of course)
Comment 3 Stefan Sauer (gstreamer, gtkdoc dev) 2009-05-11 14:36:29 UTC
Just notices that audiotestsrc is-live=true is not really fully implemented. audiotestsrc does not subclass audiosrc and it always timstamps buffers itself. I tried to hack it to use the pipeline clock which should fit it imho. But then its getting worse.

GST_DEBUG="au*:4" gst-launch-0.10 2>debug.log audiotestsrc is-live=true ! pulsesink slave-method=1
cut -c163- debug.log >timestamps.log
gnuplot
set term png truecolor
set output 'timestamps.png'
plot 'timestamps.log' using :1 with lines, '' using :2 with lines;
quit
(see attached image)
Comment 4 Stefan Sauer (gstreamer, gtkdoc dev) 2009-05-11 14:37:39 UTC
Created attachment 134398 [details]
timestamps
Comment 5 Stefan Sauer (gstreamer, gtkdoc dev) 2009-05-11 14:48:27 UTC
Created attachment 134401 [details] [review]
set timestamp from clock in is-live mode
Comment 6 Jan Schmidt 2009-05-12 12:41:05 UTC
Should this bug be moved to gst-plugins-base then?
Comment 7 Stefan Sauer (gstreamer, gtkdoc dev) 2009-05-13 20:34:17 UTC
Jan, I am not yet sure whats the actual issue here.
Comment 8 Stefan Sauer (gstreamer, gtkdoc dev) 2009-05-18 11:59:57 UTC
hmm, sometimes I get:

(gst-launch-0.10:12446): GStreamer-CRITICAL **: gst_clock_set_calibration: assertion `internal <= gst_clock_get_internal_time (clock)' failed

seems to be a race as I cannot reproduce when running it under gdb.
Comment 9 Jan Schmidt 2009-05-20 18:47:22 UTC
I see that warning sometimes too when the audiosink clock is slaved. Haven't had time to look into it.

I don't think this is a blocker for the current gst-plugins-good release.
Comment 10 Olivier Crête 2009-05-21 22:05:40 UTC
I can reproduce the crash using udpsrc+rtpbin too, so its not a bug in audiotestsrc. It really is something in either BaseAudioSink or Pulsesink..
Comment 11 Jan Schmidt 2009-05-21 22:32:41 UTC
Hey, who mentioned a crash? Unless you're running with G_DEBUG=fatal-warnings?
Comment 12 Olivier Crête 2009-05-21 22:43:37 UTC
stream-engine has fatal-criticals...
Comment 13 Wim Taymans 2009-05-25 14:56:22 UTC
commit 03037d56f44e05eac1f0f5f1ddcb254d00cd7ab6
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Mon May 25 16:54:25 2009 +0200

    clock: remove assertion
    
    Remove an assertion, this is not really an error in all cases.
    Fixes #582010