mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-25 15:36:42 +00:00
gst-libs/gst/audio/gstbaseaudiosink.c: Add one log message to check for audio_drained. Sync one log message with the ...
Original commit message from CVS: * gst-libs/gst/audio/gstbaseaudiosink.c: Add one log message to check for audio_drained. Sync one log message with the condition. Send EOS after draining audio in pull mode.
This commit is contained in:
parent
79bb2ffe06
commit
7f937c99d4
2 changed files with 14 additions and 6 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2008-11-24 Stefan Kost <ensonic@users.sf.net>
|
||||||
|
|
||||||
|
* gst-libs/gst/audio/gstbaseaudiosink.c:
|
||||||
|
Add one log message to check for audio_drained. Sync one log message
|
||||||
|
with the condition. Send EOS after draining audio in pull mode.
|
||||||
|
|
||||||
2008-11-24 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
2008-11-24 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
||||||
|
|
||||||
* ext/gio/gstgiobasesrc.c: (gst_gio_base_src_create):
|
* ext/gio/gstgiobasesrc.c: (gst_gio_base_src_create):
|
||||||
|
|
|
@ -751,6 +751,7 @@ gst_base_audio_sink_drain (GstBaseAudioSink * sink)
|
||||||
gst_base_sink_wait_eos (GST_BASE_SINK (sink), time, NULL);
|
gst_base_sink_wait_eos (GST_BASE_SINK (sink), time, NULL);
|
||||||
|
|
||||||
sink->next_sample = -1;
|
sink->next_sample = -1;
|
||||||
|
GST_DEBUG_OBJECT (sink, "drained audio");
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@ -857,8 +858,8 @@ clock_convert_external (GstClockTime external, GstClockTime cinternal,
|
||||||
gst_util_uint64_scale (external - cexternal, crate_denom, crate_num);
|
gst_util_uint64_scale (external - cexternal, crate_denom, crate_num);
|
||||||
external += cinternal;
|
external += cinternal;
|
||||||
} else {
|
} else {
|
||||||
external = gst_util_uint64_scale (cexternal - external,
|
external =
|
||||||
crate_denom, crate_num);
|
gst_util_uint64_scale (cexternal - external, crate_denom, crate_num);
|
||||||
if (cinternal > external)
|
if (cinternal > external)
|
||||||
external = cinternal - external;
|
external = cinternal - external;
|
||||||
else
|
else
|
||||||
|
@ -1625,8 +1626,9 @@ gst_base_audio_sink_callback (GstRingBuffer * rbuf, guint8 * data, guint len,
|
||||||
goto preroll_error;
|
goto preroll_error;
|
||||||
|
|
||||||
if (len != GST_BUFFER_SIZE (buf)) {
|
if (len != GST_BUFFER_SIZE (buf)) {
|
||||||
GST_INFO_OBJECT (basesink, "short read pulling from sink pad: %d<%d",
|
GST_INFO_OBJECT (basesink,
|
||||||
len, GST_BUFFER_SIZE (buf));
|
"got different size than requested from sink pad: %u != %u", len,
|
||||||
|
GST_BUFFER_SIZE (buf));
|
||||||
len = MIN (GST_BUFFER_SIZE (buf), len);
|
len = MIN (GST_BUFFER_SIZE (buf), len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1653,10 +1655,10 @@ eos:
|
||||||
* the sink gets shut down; maybe we should set a flag somewhere, or
|
* the sink gets shut down; maybe we should set a flag somewhere, or
|
||||||
* set segment.stop and segment.duration to the last sample or so */
|
* set segment.stop and segment.duration to the last sample or so */
|
||||||
GST_DEBUG_OBJECT (sink, "EOS");
|
GST_DEBUG_OBJECT (sink, "EOS");
|
||||||
gst_element_post_message (GST_ELEMENT_CAST (sink),
|
|
||||||
gst_message_new_eos (GST_OBJECT_CAST (sink)));
|
|
||||||
gst_base_audio_sink_drain (sink);
|
gst_base_audio_sink_drain (sink);
|
||||||
gst_ring_buffer_pause (rbuf);
|
gst_ring_buffer_pause (rbuf);
|
||||||
|
gst_element_post_message (GST_ELEMENT_CAST (sink),
|
||||||
|
gst_message_new_eos (GST_OBJECT_CAST (sink)));
|
||||||
GST_PAD_STREAM_UNLOCK (basesink->sinkpad);
|
GST_PAD_STREAM_UNLOCK (basesink->sinkpad);
|
||||||
}
|
}
|
||||||
flushing:
|
flushing:
|
||||||
|
|
Loading…
Reference in a new issue