| From d2df0fb032c36b366a08a1355c4f4c816eb53447 Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Aur=C3=A9lien=20Zanelli?= <aurelien.zanelli@darkosphere.fr> |
| Date: Fri, 3 Jul 2015 00:26:48 +0200 |
| Subject: [PATCH] omxvideodec: unref allocator after getting it from allocation |
| query |
| |
| Otherwise a reference will be leaked for each allocator. It only happens |
| when target platform is Raspberry Pi and when we have GL support. |
| |
| https://bugzilla.gnome.org/show_bug.cgi?id=751867 |
| --- |
| omx/gstomxvideodec.c | 20 ++++++++++++-------- |
| 1 file changed, 12 insertions(+), 8 deletions(-) |
| |
| diff --git a/omx/gstomxvideodec.c b/omx/gstomxvideodec.c |
| index cd24944..b8c3756 100644 |
| --- a/omx/gstomxvideodec.c |
| +++ b/omx/gstomxvideodec.c |
| @@ -2530,14 +2530,18 @@ gst_omx_video_dec_decide_allocation (GstVideoDecoder * bdec, GstQuery * query) |
| GstAllocationParams params; |
| |
| gst_query_parse_nth_allocation_param (query, i, &allocator, ¶ms); |
| - if (allocator |
| - && g_strcmp0 (allocator->mem_type, |
| - GST_EGL_IMAGE_MEMORY_TYPE) == 0) { |
| - found = TRUE; |
| - gst_query_set_nth_allocation_param (query, 0, allocator, ¶ms); |
| - while (gst_query_get_n_allocation_params (query) > 1) |
| - gst_query_remove_nth_allocation_param (query, 1); |
| - break; |
| + if (allocator) { |
| + if (g_strcmp0 (allocator->mem_type, GST_EGL_IMAGE_MEMORY_TYPE) == 0) { |
| + found = TRUE; |
| + gst_query_set_nth_allocation_param (query, 0, allocator, ¶ms); |
| + while (gst_query_get_n_allocation_params (query) > 1) |
| + gst_query_remove_nth_allocation_param (query, 1); |
| + } |
| + |
| + gst_object_unref (allocator); |
| + |
| + if (found) |
| + break; |
| } |
| } |
| |
| -- |
| 2.5.5 |
| |