mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-12 02:15:31 +00:00
gst/wavparse/gstwavparse.c: Only set DISCONT when there actually is a discont or when we just started.
Original commit message from CVS: * gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek), (gst_wavparse_stream_headers), (gst_wavparse_stream_data): Only set DISCONT when there actually is a discont or when we just started.
This commit is contained in:
parent
09b83eac48
commit
6991907036
2 changed files with 22 additions and 2 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2007-05-02 Wim Taymans <wim@fluendo.com>
|
||||||
|
|
||||||
|
* gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek),
|
||||||
|
(gst_wavparse_stream_headers), (gst_wavparse_stream_data):
|
||||||
|
Only set DISCONT when there actually is a discont or when we just
|
||||||
|
started.
|
||||||
|
|
||||||
2007-05-02 Sebastian Dröge <slomo@circular-chaos.org>
|
2007-05-02 Sebastian Dröge <slomo@circular-chaos.org>
|
||||||
|
|
||||||
* ext/flac/gstflac.c: (plugin_init):
|
* ext/flac/gstflac.c: (plugin_init):
|
||||||
|
|
|
@ -736,6 +736,7 @@ gst_wavparse_perform_seek (GstWavParse * wav, GstEvent * event)
|
||||||
gboolean flush;
|
gboolean flush;
|
||||||
gboolean update;
|
gboolean update;
|
||||||
GstSegment seeksegment = { 0, };
|
GstSegment seeksegment = { 0, };
|
||||||
|
gint64 last_stop;
|
||||||
|
|
||||||
if (event) {
|
if (event) {
|
||||||
GstFormat fmt;
|
GstFormat fmt;
|
||||||
|
@ -793,6 +794,11 @@ gst_wavparse_perform_seek (GstWavParse * wav, GstEvent * event)
|
||||||
* with the above flush/pause code */
|
* with the above flush/pause code */
|
||||||
GST_PAD_STREAM_LOCK (wav->sinkpad);
|
GST_PAD_STREAM_LOCK (wav->sinkpad);
|
||||||
|
|
||||||
|
/* save current position */
|
||||||
|
last_stop = wav->segment.last_stop;
|
||||||
|
|
||||||
|
GST_DEBUG_OBJECT (wav, "stopped streaming at %" G_GINT64_FORMAT, last_stop);
|
||||||
|
|
||||||
/* copy segment, we need this because we still need the old
|
/* copy segment, we need this because we still need the old
|
||||||
* segment when we close the current segment. */
|
* segment when we close the current segment. */
|
||||||
memcpy (&seeksegment, &wav->segment, sizeof (GstSegment));
|
memcpy (&seeksegment, &wav->segment, sizeof (GstSegment));
|
||||||
|
@ -907,8 +913,11 @@ gst_wavparse_perform_seek (GstWavParse * wav, GstEvent * event)
|
||||||
wav->segment.format, wav->segment.last_stop, stop,
|
wav->segment.format, wav->segment.last_stop, stop,
|
||||||
wav->segment.last_stop);
|
wav->segment.last_stop);
|
||||||
|
|
||||||
/* mark discont */
|
/* mark discont if we are going to stream from another position. */
|
||||||
|
if (last_stop != wav->segment.last_stop) {
|
||||||
|
GST_DEBUG_OBJECT (wav, "mark DISCONT, we did a seek to another position");
|
||||||
wav->discont = TRUE;
|
wav->discont = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
/* and start the streaming task again */
|
/* and start the streaming task again */
|
||||||
wav->segment_running = TRUE;
|
wav->segment_running = TRUE;
|
||||||
|
@ -1286,6 +1295,9 @@ gst_wavparse_stream_headers (GstWavParse * wav)
|
||||||
event_p = &wav->seek_event;
|
event_p = &wav->seek_event;
|
||||||
gst_event_replace (event_p, NULL);
|
gst_event_replace (event_p, NULL);
|
||||||
|
|
||||||
|
/* we just started, we are discont */
|
||||||
|
wav->discont = TRUE;
|
||||||
|
|
||||||
wav->state = GST_WAVPARSE_DATA;
|
wav->state = GST_WAVPARSE_DATA;
|
||||||
|
|
||||||
return GST_FLOW_OK;
|
return GST_FLOW_OK;
|
||||||
|
@ -1564,6 +1576,7 @@ iterate_adapter:
|
||||||
gst_segment_set_last_stop (&wav->segment, GST_FORMAT_TIME, next_timestamp);
|
gst_segment_set_last_stop (&wav->segment, GST_FORMAT_TIME, next_timestamp);
|
||||||
|
|
||||||
if (wav->discont) {
|
if (wav->discont) {
|
||||||
|
GST_DEBUG_OBJECT (wav, "marking DISCONT");
|
||||||
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
|
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
|
||||||
wav->discont = FALSE;
|
wav->discont = FALSE;
|
||||||
} else if (wav->vbr) {
|
} else if (wav->vbr) {
|
||||||
|
|
Loading…
Reference in a new issue