From ea8cabe084e9f287ebe808c16ba4761c086391c6 Mon Sep 17 00:00:00 2001 From: Arnaud Vrac Date: Wed, 8 Jul 2015 12:00:56 +0200 Subject: [PATCH] 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 --- libs/gst/base/gstbaseparse.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c index a43d293..f42389a 100644 --- a/libs/gst/base/gstbaseparse.c +++ b/libs/gst/base/gstbaseparse.c @@ -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 */ -- 2.7.4