From 6e8278c51e8bcbc72e1269b1be30f8d1258c036c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Zanelli?= Date: Fri, 8 Jan 2016 17:17:01 +0100 Subject: [PATCH] rawparse: use size of buffer we got from adapter Otherwise position in stream could be wrong if subclass 'pre_push_frame' method changes the buffer size. https://bugzilla.gnome.org/show_bug.cgi?id=760270 --- gst/rawparse/gstrawparse.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gst/rawparse/gstrawparse.c b/gst/rawparse/gstrawparse.c index 5a06b1be56..3d043fd497 100644 --- a/gst/rawparse/gstrawparse.c +++ b/gst/rawparse/gstrawparse.c @@ -233,10 +233,12 @@ gst_raw_parse_push_buffer (GstRawParse * rp, GstBuffer * buffer) GstFlowReturn ret; gint nframes; GstRawParseClass *rpclass; + gsize size; rpclass = GST_RAW_PARSE_GET_CLASS (rp); - nframes = gst_buffer_get_size (buffer) / rp->framesize; + size = gst_buffer_get_size (buffer); + nframes = size / rp->framesize; if (rp->segment.rate < 0) { rp->n_frames -= nframes; @@ -267,7 +269,7 @@ gst_raw_parse_push_buffer (GstRawParse * rp, GstBuffer * buffer) } if (rp->segment.rate >= 0) { - rp->offset += gst_buffer_get_size (buffer); + rp->offset += size; rp->n_frames += nframes; }