mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 15:08:53 +00:00
gst-libs/gst/audio/gstbaseaudiosink.c: Time is already in running_time. Remove base_time handling. Fixes audiosinks n...
Original commit message from CVS: * gst-libs/gst/audio/gstbaseaudiosink.c: Time is already in running_time. Remove base_time handling. Fixes audiosinks not draining and thus chopping some audio in the end.
This commit is contained in:
parent
3d894ebe84
commit
a8264f66c7
2 changed files with 6 additions and 14 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2008-11-24 Stefan Kost <ensonic@users.sf.net>
|
||||||
|
|
||||||
|
* gst-libs/gst/audio/gstbaseaudiosink.c:
|
||||||
|
Time is already in running_time. Remove base_time handling. Fixes
|
||||||
|
audiosinks not draining and thus chopping some audio in the end.
|
||||||
|
|
||||||
2008-11-24 David Schleef <ds@schleef.org>
|
2008-11-24 David Schleef <ds@schleef.org>
|
||||||
|
|
||||||
* ext/ogg/gstoggmux.c:
|
* ext/ogg/gstoggmux.c:
|
||||||
|
|
|
@ -709,8 +709,6 @@ gst_base_audio_sink_get_times (GstBaseSink * bsink, GstBuffer * buffer,
|
||||||
static gboolean
|
static gboolean
|
||||||
gst_base_audio_sink_drain (GstBaseAudioSink * sink)
|
gst_base_audio_sink_drain (GstBaseAudioSink * sink)
|
||||||
{
|
{
|
||||||
GstClockTime base_time;
|
|
||||||
|
|
||||||
if (!sink->ringbuffer)
|
if (!sink->ringbuffer)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
if (!sink->ringbuffer->spec.rate)
|
if (!sink->ringbuffer->spec.rate)
|
||||||
|
@ -734,18 +732,6 @@ gst_base_audio_sink_drain (GstBaseAudioSink * sink)
|
||||||
"last sample %" G_GUINT64_FORMAT ", time %" GST_TIME_FORMAT,
|
"last sample %" G_GUINT64_FORMAT ", time %" GST_TIME_FORMAT,
|
||||||
sink->next_sample, GST_TIME_ARGS (time));
|
sink->next_sample, GST_TIME_ARGS (time));
|
||||||
|
|
||||||
/* our time already includes the base_time, _wait_eos() wants a running_time
|
|
||||||
* so we have to subtract the base_time again here. FIXME, store an
|
|
||||||
* unadjusted EOS time so that we don't have to do this. */
|
|
||||||
GST_OBJECT_LOCK (sink);
|
|
||||||
base_time = GST_ELEMENT_CAST (sink)->base_time;
|
|
||||||
GST_OBJECT_UNLOCK (sink);
|
|
||||||
|
|
||||||
if (time > base_time)
|
|
||||||
time -= base_time;
|
|
||||||
else
|
|
||||||
time = 0;
|
|
||||||
|
|
||||||
/* wait for the EOS time to be reached, this is the time when the last
|
/* wait for the EOS time to be reached, this is the time when the last
|
||||||
* sample is played. */
|
* sample is played. */
|
||||||
gst_base_sink_wait_eos (GST_BASE_SINK (sink), time, NULL);
|
gst_base_sink_wait_eos (GST_BASE_SINK (sink), time, NULL);
|
||||||
|
|
Loading…
Reference in a new issue