v4l2slh264dec: Hold on picture buffers

These buffers should not be reused for decoding until they are no longer
referenced.
This commit is contained in:
Nicolas Dufresne 2020-03-03 21:22:52 -05:00
parent b107c20198
commit b47929a74d

View file

@ -548,10 +548,12 @@ finish_frame:
gst_v4l2_request_set_done (request);
frame = gst_video_decoder_get_frame (GST_VIDEO_DECODER (self),
picture->system_frame_number);
g_return_val_if_fail (frame, GST_FLOW_ERROR);
g_return_val_if_fail (frame->output_buffer, GST_FLOW_ERROR);
gst_h264_picture_set_user_data (picture, NULL, NULL);
/* Hold on reference buffers for the rest of the picture lifetime */
gst_h264_picture_set_user_data (picture,
gst_buffer_ref (frame->output_buffer), (GDestroyNotify) gst_buffer_unref);
return gst_video_decoder_finish_frame (GST_VIDEO_DECODER (self), frame);
}