msdkdec: explain the the extra ref of input buffer
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Sat, 2 Feb 2019 16:51:35 +0000 (17:51 +0100)
committerVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Sat, 2 Feb 2019 16:52:58 +0000 (17:52 +0100)
sys/msdk/gstmsdkdec.c

index 5ee5d593a4c3c289ed440462c5291b0f8dacc274..9cc5e28cd3377a108c1f73e82a77ac02e0586db4 100644 (file)
@@ -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);