From 393e254255a64213a79b9e16ec4be1d52979866e Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" Date: Mon, 27 Nov 2023 13:16:47 +0100 Subject: [PATCH] baseparse: Reset metadata for reverse playback fragment buffers Don't let the adapter leak uncontrollable values. Part-of: --- subprojects/gstreamer/libs/gst/base/gstbaseparse.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/subprojects/gstreamer/libs/gst/base/gstbaseparse.c b/subprojects/gstreamer/libs/gst/base/gstbaseparse.c index 3138d148ab..92553ea134 100644 --- a/subprojects/gstreamer/libs/gst/base/gstbaseparse.c +++ b/subprojects/gstreamer/libs/gst/base/gstbaseparse.c @@ -2289,6 +2289,10 @@ gst_base_parse_handle_buffer (GstBaseParse * parse, GstBuffer * buffer, outbuf = gst_buffer_make_writable (outbuf); GST_BUFFER_PTS (outbuf) = pts; GST_BUFFER_DTS (outbuf) = dts; + GST_BUFFER_OFFSET (outbuf) = GST_BUFFER_OFFSET_NONE; + GST_BUFFER_DURATION (outbuf) = GST_CLOCK_TIME_NONE; + GST_BUFFER_OFFSET_END (outbuf) = GST_BUFFER_OFFSET_NONE; + GST_BUFFER_FLAGS (outbuf) = 0; parse->priv->buffers_head = g_slist_prepend (parse->priv->buffers_head, outbuf); outbuf = NULL; @@ -2736,7 +2740,7 @@ gst_base_parse_finish_frame (GstBaseParse * parse, GstBaseParseFrame * frame, GST_BUFFER_OFFSET (dest) = GST_BUFFER_OFFSET (src); GST_BUFFER_DURATION (dest) = GST_BUFFER_DURATION (src); GST_BUFFER_OFFSET_END (dest) = GST_BUFFER_OFFSET_END (src); - GST_MINI_OBJECT_FLAGS (dest) = GST_MINI_OBJECT_FLAGS (src); + GST_BUFFER_FLAGS (dest) = GST_BUFFER_FLAGS (src); } else { gst_adapter_flush (parse->priv->adapter, size); }