baseparse: jump over large skips in pull mode

This bypasses the dumping of buffers we still have to do in push mode.

https://bugzilla.gnome.org/show_bug.cgi?id=730053
This commit is contained in:
Vincent Penquerc'h 2014-11-13 14:53:59 +00:00
parent e4d6896d0c
commit dd40d99710

View file

@ -3237,6 +3237,12 @@ gst_base_parse_scan_frame (GstBaseParse * parse, GstBaseParseClass * klass)
if (ret != GST_FLOW_OK) if (ret != GST_FLOW_OK)
break; break;
/* If a large amount of data was requested to be skipped, _handle_buffer
might have set the priv->skip flag to an extra amount on top of skip.
In pull mode, we can just pull from the new offset directly. */
parse->priv->offset += parse->priv->skip;
parse->priv->skip = 0;
/* something flushed means something happened, /* something flushed means something happened,
* and we should bail out of this loop so as not to occupy * and we should bail out of this loop so as not to occupy
* the task thread indefinitely */ * the task thread indefinitely */