From f974246647cd6e895247cfa5b63b5532bbf40188 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Manuel=20J=C3=A1quez=20Leal?= Date: Sat, 2 Feb 2019 17:51:35 +0100 Subject: [PATCH] msdkdec: explain the the extra ref of input buffer --- sys/msdk/gstmsdkdec.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/msdk/gstmsdkdec.c b/sys/msdk/gstmsdkdec.c index 5ee5d593a4..9cc5e28cd3 100644 --- a/sys/msdk/gstmsdkdec.c +++ b/sys/msdk/gstmsdkdec.c @@ -878,6 +878,13 @@ gst_msdkdec_handle_frame (GstVideoDecoder * decoder, GstVideoCodecFrame * frame) } } + /* Current frame-codec could be pushed and released before this + * function ends -- because msdkdec pushes the oldest frame, + * according its PTS, and it could be this very same frame-codec + * among others pending frame-codecs. + * + * Instead of copying the input data into the mfxBitstream, let's + * keep an extra reference to frame-codec's input buffer */ input_buffer = gst_buffer_ref (frame->input_buffer); if (!gst_buffer_map (input_buffer, &map_info, GST_MAP_READ)) { gst_buffer_unref (input_buffer);