From ef62e6cfa2dc401be60081682a14e5b1651410f1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=ADctor=20Manuel=20J=C3=A1quez=20Leal?= Date: Mon, 30 Nov 2020 17:12:14 +0100 Subject: [PATCH] va: decoder: Picture dups only holds GstBuffer Also removes the warning log message at destroying buffers when picture free() Part-of: --- sys/va/gstvadecoder.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/sys/va/gstvadecoder.c b/sys/va/gstvadecoder.c index 61d81a6f..927ffc2 100644 --- a/sys/va/gstvadecoder.c +++ b/sys/va/gstvadecoder.c @@ -713,10 +713,10 @@ gst_va_decode_picture_free (GstVaDecodePicture * pic) { g_return_if_fail (pic); - if (pic->buffers->len > 0 || pic->slices->len > 0) { - GST_WARNING ("VABufferIDs have not been released."); + /* only if add_param_buffer() or add_slice_buffer() failed */ + if ((pic->buffers != NULL && pic->buffers->len > 0) + || (pic->slices != NULL && pic->slices->len > 0)) _destroy_buffers (pic); - } gst_buffer_unref (pic->gstbuffer); g_clear_pointer (&pic->buffers, g_array_unref); @@ -733,11 +733,10 @@ gst_va_decode_picture_dup (GstVaDecodePicture * pic) g_return_val_if_fail (pic, NULL); - dup = g_slice_new (GstVaDecodePicture); - dup->gstbuffer = gst_buffer_ref (pic->gstbuffer); - dup->buffers = g_array_ref (pic->buffers); - dup->slices = g_array_ref (pic->slices); + dup = g_slice_new0 (GstVaDecodePicture); + /* dups only need gstbuffer */ + dup->gstbuffer = gst_buffer_ref (pic->gstbuffer); return dup; } -- 2.7.4