[gst-cvs] gst-plugins-good: wavparse: set buffer offsets before using the buffer for the first time
Tim Müller
tpm at kemper.freedesktop.org
Fri Jun 11 13:21:11 PDT 2010
Module: gst-plugins-good
Branch: master
Commit: 12ec2c3d6d3f150e01a08c7455c22b33357d642d
URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=12ec2c3d6d3f150e01a08c7455c22b33357d642d
Author: Tim-Philipp Müller <tim.muller at collabora.co.uk>
Date: Fri Jun 11 20:47:22 2010 +0100
wavparse: set buffer offsets before using the buffer for the first time
gst_type_find_helper_for_buffer() will need the correct offset
set on the buffer (ie. 0) and not the byte offset we started
pulling the data from.
---
gst/wavparse/gstwavparse.c | 20 ++++++++++----------
1 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c
index 902edd7..9f85078 100644
--- a/gst/wavparse/gstwavparse.c
+++ b/gst/wavparse/gstwavparse.c
@@ -1858,6 +1858,16 @@ iterate_adapter:
}
}
+ obtained = GST_BUFFER_SIZE (buf);
+
+ /* our positions in bytes */
+ pos = wav->offset - wav->datastart;
+ nextpos = pos + obtained;
+
+ /* update offsets, does not overflow. */
+ GST_BUFFER_OFFSET (buf) = pos / wav->bytes_per_sample;
+ GST_BUFFER_OFFSET_END (buf) = nextpos / wav->bytes_per_sample;
+
/* first chunk of data? create the source pad. We do this only here so
* we can detect broken .wav files with dts disguised as raw PCM (sigh) */
if (G_UNLIKELY (wav->first)) {
@@ -1876,16 +1886,6 @@ iterate_adapter:
}
}
- obtained = GST_BUFFER_SIZE (buf);
-
- /* our positions in bytes */
- pos = wav->offset - wav->datastart;
- nextpos = pos + obtained;
-
- /* update offsets, does not overflow. */
- GST_BUFFER_OFFSET (buf) = pos / wav->bytes_per_sample;
- GST_BUFFER_OFFSET_END (buf) = nextpos / wav->bytes_per_sample;
-
if (wav->bps > 0) {
/* and timestamps if we have a bitrate, be careful for overflows */
timestamp = uint64_ceiling_scale (pos, GST_SECOND, (guint64) wav->bps);
More information about the Gstreamer-commits
mailing list