baesparse: fix refactor regression in loop based parsing

This commit is contained in:
Mark Nauwelaerts 2011-01-14 15:26:37 +01:00
parent f4f7306e37
commit 18b69e9320

View file

@ -2236,9 +2236,15 @@ gst_base_parse_scan_frame (GstBaseParse * parse, GstBaseParseClass * klass,
} }
} }
if (fsize <= GST_BUFFER_SIZE (buffer)) { /* Does the subclass want to skip too? */
outbuf = gst_buffer_create_sub (buffer, 0, fsize); if (skip > 0)
GST_BUFFER_OFFSET (outbuf) = GST_BUFFER_OFFSET (buffer); parse->priv->offset += skip;
else if (skip < 0)
skip = 0;
if (fsize + skip <= GST_BUFFER_SIZE (buffer)) {
outbuf = gst_buffer_create_sub (buffer, skip, fsize);
GST_BUFFER_OFFSET (outbuf) = GST_BUFFER_OFFSET (buffer) + skip;
GST_BUFFER_TIMESTAMP (outbuf) = GST_CLOCK_TIME_NONE; GST_BUFFER_TIMESTAMP (outbuf) = GST_CLOCK_TIME_NONE;
gst_buffer_unref (buffer); gst_buffer_unref (buffer);
} else { } else {
@ -2254,10 +2260,6 @@ gst_base_parse_scan_frame (GstBaseParse * parse, GstBaseParseClass * klass,
parse->priv->offset += fsize; parse->priv->offset += fsize;
/* Does the subclass want to skip too? */
if (skip > 0)
parse->priv->offset += skip;
*buf = outbuf; *buf = outbuf;
done: done: