GNOME Bugzilla – Bug 377183
regression: no eos when playing ogg vorbis files
Last modified: 2006-11-20 10:27:43 UTC
After updating my cvs snapshot (previously a couple of weeks old), I no longer get an eos event when playing ogg vorbis files with playbin. This doesn't happen with any other media type I have tried (mostly just mp3). 'gst-launch-0.10 filesrc location=x.ogg ! decodebin ! audioconvert ! alsasink' plays normally, but never exits. Replacing alsasink with fakesink, it exits normally. Reverting these changes fixes it: 2006-11-13 Wim Taymans <wim@fluendo.com> * gst-libs/gst/audio/gstbaseaudiosink.c: (gst_base_audio_sink_event), (gst_base_audio_sink_render): * gst-libs/gst/audio/gstbaseaudiosink.h: Make the clock sync code more accurate wrt resampling and playback at different rates. * gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_commit_full), (gst_ring_buffer_commit): * gst-libs/gst/audio/gstringbuffer.h: Use better algorithm to interpolate sample rates.
The bug was because segment_clip() and the segment_to_*_time() had a different idea about what legal values were: * gst/gstsegment.c: (gst_segment_set_seek), (gst_segment_set_newsegment_full), (gst_segment_to_stream_time), (gst_segment_to_running_time): Fix boundary checking in to_running_time() and to_stream_time(). Fixes #377183. * tests/check/gst/gstsegment.c: (GST_START_TEST): stream and running time can now be calculated for the complete clipped segment.