aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-multimedia/gstreamer/gstreamer1.0-omx/0014-gstomx-Once-reinitialize-an-instance-and-then-retry-.patch
blob: f20d81db0ce300f0ce379cbc5c3054928b442855 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
From 4a858bb6cf197653aa77f6a3d8b652a793419291 Mon Sep 17 00:00:00 2001
From: Kazunori Kobayashi <kkobayas@igel.co.jp>
Date: Thu, 27 Jun 2013 22:03:37 +0900
Subject: [PATCH 14/14] gstomx: Once reinitialize an instance and then retry
 OMX_Init() if OMX_GetHandle() fails

Reinitializing an instance in case that OMX_GetHandle() fails may
be effective especially for some stateful OMXIL libraries since it
resets the state.
---
 omx/gstomx.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/omx/gstomx.c b/omx/gstomx.c
index 6738d98..6b0a3d1 100644
--- a/omx/gstomx.c
+++ b/omx/gstomx.c
@@ -630,7 +630,9 @@ gst_omx_component_new (GstObject * parent, const gchar * core_name,
   GstOMXCore *core;
   GstOMXComponent *comp;
   const gchar *dot;
+  gint retry = 1;
 
+reinit:
   core = gst_omx_core_acquire (core_name);
   if (!core)
     return NULL;
@@ -653,6 +655,8 @@ gst_omx_component_new (GstObject * parent, const gchar * core_name,
     gst_omx_core_release (core);
     g_free (comp->name);
     g_slice_free (GstOMXComponent, comp);
+    if (retry-- > 0)
+      goto reinit;
     return NULL;
   }
   GST_DEBUG_OBJECT (parent,
-- 
1.8.1.2