baseparse: put buffer in a correct state after gst_adapter_get_buffer call

We must make the buffer writable to write its PTS and DTS, and also
reset its duration.

The behaviour is now the same as before commit c3bcbadd, except metas
might still be attached to the buffer extracted from the adapter.

https://bugzilla.gnome.org/show_bug.cgi?id=752092
This commit is contained in:
Arnaud Vrac 2015-07-08 12:00:56 +02:00 committed by Sebastian Dröge
parent 0728b219b9
commit ea8cabe084

View file

@ -3016,8 +3016,10 @@ gst_base_parse_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
/* already inform subclass what timestamps we have planned,
* at least if provided by time-based upstream */
if (parse->priv->upstream_format == GST_FORMAT_TIME) {
tmpbuf = gst_buffer_make_writable (tmpbuf);
GST_BUFFER_PTS (tmpbuf) = parse->priv->next_pts;
GST_BUFFER_DTS (tmpbuf) = parse->priv->next_dts;
GST_BUFFER_DURATION (tmpbuf) = GST_CLOCK_TIME_NONE;
}
/* keep the adapter mapped, so keep track of what has to be flushed */