summaryrefslogtreecommitdiffstats
path: root/abs/extra/libomxil-bellagio/fedora-fixes.patch
blob: 2ae3c3c871c5a61cb39086a2ab75d8aa9982e51a (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
When libomxdynamicloader.so is loaded, it complains that RM_Deinit can't be resolved.
Link explicitly against omxil-bellagio so that ld.so can find the reference.

Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>

--- bellagio-0.9.3/src/dynamic_loader/Makefile.am.old	2012-03-23 15:07:47.379021034 +0000
+++ bellagio-0.9.3/src/dynamic_loader/Makefile.am	2012-03-23 15:08:47.563034818 +0000
@@ -3,7 +3,7 @@
 omxdynamicloader_LTLIBRARIES = libomxdynamicloader.la
 libomxdynamicloader_la_SOURCES = ste_dynamic_component_loader.c ste_dynamic_component_loader.h
 
-libomxdynamicloader_la_LDFLAGS =
+libomxdynamicloader_la_LDFLAGS = -L$(abs_top_srcdir)/src/.libs -lomxil-bellagio
 libomxdynamicloader_la_CFLAGS = -I$(top_srcdir)/include \
 			-I$(top_srcdir)/src \
 			-I$(top_srcdir)/src/base \
Fix dependency issue to allow parallel build

Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>

Index: bellagio-0.9.3/src/Makefile.am
===================================================================
--- bellagio-0.9.3.orig/src/Makefile.am
+++ bellagio-0.9.3/src/Makefile.am
@@ -8,6 +8,7 @@ omxregister_bellagio_SOURCES = omxregist
 omxregister_bellagio_CFLAGS = -DOMXILCOMPONENTSPATH=\"$(plugindir)/\" \
 			      -I$(top_srcdir)/include
 omxregister_bellagio_LDFLAGS = -lomxil-bellagio -L$(builddir)
+omxregister_bellagio_DEPENDENCIES = libomxil-bellagio.la
 
 lib_LTLIBRARIES = libomxil-bellagio.la
 libomxil_bellagio_la_SOURCES = component_loader.h \
We always access globalComponentList[] at indexComponent=-1 which causes a
segfault. Use i as the index instead.

Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>

--- bellagio-0.9.3/src/omx_reference_resource_manager.c.old	2012-03-13 10:15:25.743940980 +0000
+++ bellagio-0.9.3/src/omx_reference_resource_manager.c	2012-03-13 10:18:02.201971009 +0000
@@ -485,7 +485,6 @@
 OMX_ERRORTYPE RM_removeFromWaitForResource(OMX_COMPONENTTYPE *openmaxStandComp) {
 	omx_base_component_PrivateType* omx_base_component_Private;
 	int i = 0;
-	int indexComponent = -1;
 
 	DEBUG(DEB_LEV_FUNCTION_NAME, "In %s\n", __func__);
 	omx_base_component_Private = (omx_base_component_PrivateType*)openmaxStandComp->pComponentPrivate;
@@ -493,16 +492,13 @@
 	while(listOfcomponentRegistered[i].component_name != NULL ) {
 		if (!strcmp(listOfcomponentRegistered[i].component_name, omx_base_component_Private->name)) {
 			// found component in the list of the resource manager
-			removeElemFromList(&globalComponentList[indexComponent], openmaxStandComp);
-			break;
+			removeElemFromList(&globalComponentList[i], openmaxStandComp);
+			DEBUG(DEB_LEV_FUNCTION_NAME, "Out of %s\n", __func__);
+			return OMX_ErrorNone;
 		}
 		i++;
 	}
-	if (indexComponent <0) {
-		// No resource to be handled
-		DEBUG(DEB_LEV_ERR, "In %s No resource to be handled\n", __func__);
-		return OMX_ErrorNone;
-	}
-	DEBUG(DEB_LEV_FUNCTION_NAME, "Out of %s\n", __func__);
+	// No resource to be handled
+	DEBUG(DEB_LEV_ERR, "In %s No resource to be handled\n", __func__);
 	return OMX_ErrorNone;
 }
 OMX_INDEXTYPE/OMX_INDEXVENDORTYPE in one switch
 src/base/omx_base_component.c |   54 ++++++++++++++++++++++-------------------
 1 files changed, 29 insertions(+), 25 deletions(-)
--- a/src/base/omx_base_component.c	
+++ a/src/base/omx_base_component.c	
@@ -915,14 +915,6 @@ OSCL_EXPORT_REF OSCL_EXPORT_REF OMX_ERRORTYPE omx_base_component_GetParameter(
     return OMX_ErrorBadParameter;
   }
   switch(nParamIndex) {
-  case OMX_IndexParameterThreadsID:
-	    if ((err = checkHeader(ComponentParameterStructure, sizeof(OMX_PARAM_BELLAGIOTHREADS_ID))) != OMX_ErrorNone) {
-	      break;
-	    }
-	  threadID = (OMX_PARAM_BELLAGIOTHREADS_ID *)ComponentParameterStructure;
-	  threadID->nThreadBufferMngtID = omx_base_component_Private->bellagioThreads->nThreadBufferMngtID;
-	  threadID->nThreadMessageID = omx_base_component_Private->bellagioThreads->nThreadMessageID;
-	  break;
   case OMX_IndexParamAudioInit:
   case OMX_IndexParamVideoInit:
   case OMX_IndexParamImageInit:
@@ -988,28 +980,40 @@ OSCL_EXPORT_REF OSCL_EXPORT_REF OMX_ERRORTYPE omx_base_component_GetParameter(
       }
     }
     break;
-  case OMX_IndexVendorCompPropTunnelFlags:
-    pPropTunnelSetup = (OMX_VENDOR_PROP_TUNNELSETUPTYPE*)ComponentParameterStructure;
+  default:
+    /* additional switch statement for extended OMX_INDEXTYPE */
+    switch((OMX_INDEXVENDORTYPE) nParamIndex) {
+    case OMX_IndexParameterThreadsID:
+        if ((err = checkHeader(ComponentParameterStructure, sizeof(OMX_PARAM_BELLAGIOTHREADS_ID))) != OMX_ErrorNone) {
+          break;
+        }
+      threadID = (OMX_PARAM_BELLAGIOTHREADS_ID *)ComponentParameterStructure;
+      threadID->nThreadBufferMngtID = omx_base_component_Private->bellagioThreads->nThreadBufferMngtID;
+      threadID->nThreadMessageID = omx_base_component_Private->bellagioThreads->nThreadMessageID;
+      break;
+    case OMX_IndexVendorCompPropTunnelFlags:
+      pPropTunnelSetup = (OMX_VENDOR_PROP_TUNNELSETUPTYPE*)ComponentParameterStructure;
 
-    if (pPropTunnelSetup->nPortIndex >= (omx_base_component_Private->sPortTypesParam[OMX_PortDomainAudio].nPorts +
-                                         omx_base_component_Private->sPortTypesParam[OMX_PortDomainVideo].nPorts +
-                                         omx_base_component_Private->sPortTypesParam[OMX_PortDomainImage].nPorts +
-                                         omx_base_component_Private->sPortTypesParam[OMX_PortDomainOther].nPorts)) {
+      if (pPropTunnelSetup->nPortIndex >= (omx_base_component_Private->sPortTypesParam[OMX_PortDomainAudio].nPorts +
+                                           omx_base_component_Private->sPortTypesParam[OMX_PortDomainVideo].nPorts +
+                                           omx_base_component_Private->sPortTypesParam[OMX_PortDomainImage].nPorts +
+                                           omx_base_component_Private->sPortTypesParam[OMX_PortDomainOther].nPorts)) {
 
-      DEBUG(DEB_LEV_ERR,"In %s OMX_IndexVendorCompPropTunnelFlags nPortIndex=%d Line=%d \n",
-          __func__,(int)pPropTunnelSetup->nPortIndex,__LINE__);
+        DEBUG(DEB_LEV_ERR,"In %s OMX_IndexVendorCompPropTunnelFlags nPortIndex=%d Line=%d \n",
+            __func__,(int)pPropTunnelSetup->nPortIndex,__LINE__);
 
-      return OMX_ErrorBadPortIndex;
-    }
+        return OMX_ErrorBadPortIndex;
+      }
 
-    pPort = omx_base_component_Private->ports[pPropTunnelSetup->nPortIndex];
+      pPort = omx_base_component_Private->ports[pPropTunnelSetup->nPortIndex];
 
-    pPropTunnelSetup->nTunnelSetup.nTunnelFlags  = pPort->nTunnelFlags;
-    pPropTunnelSetup->nTunnelSetup.eSupplier     = pPort->eBufferSupplier;
-    break;
-  default:
-    err = OMX_ErrorUnsupportedIndex;
-    break;
+      pPropTunnelSetup->nTunnelSetup.nTunnelFlags  = pPort->nTunnelFlags;
+      pPropTunnelSetup->nTunnelSetup.eSupplier     = pPort->eBufferSupplier;
+      break;
+    default:
+      err = OMX_ErrorUnsupportedIndex;
+      break;
+    }
   }
   DEBUG(DEB_LEV_FUNCTION_NAME, "Out of %s for component %p\n", __func__, hComponent);
   return err;
diff -up libomxil-bellagio-0.9.3/Makefile.am.nodoc libomxil-bellagio-0.9.3/Makefile.am
--- libomxil-bellagio-0.9.3/Makefile.am.nodoc	2011-01-12 08:53:26.000000000 +0100
+++ libomxil-bellagio-0.9.3/Makefile.am	2012-04-23 13:46:15.410823381 +0200
@@ -7,7 +7,6 @@ EXTRA_DIST = libomxil-bellagio.spec
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = libomxil-bellagio.pc
 
-docdir = $(DESTDIR)$(prefix)/share/doc/@PACKAGE@
 doc_DATA = README \
 	   ChangeLog \
 	   TODO
diff -up libomxil-bellagio-0.9.3/src/omxregister.c.unused libomxil-bellagio-0.9.3/src/omxregister.c
--- libomxil-bellagio-0.9.3/src/omxregister.c.unused	2011-01-12 08:53:26.000000000 +0100
+++ libomxil-bellagio-0.9.3/src/omxregister.c	2012-12-10 22:02:28.621695659 +0100
@@ -248,7 +248,15 @@ static int buildComponentsList(FILE* omx
 						}
 						fptr(stComponents);
 						err = fwrite(lib_absolute_path, 1, strlen(lib_absolute_path), omxregistryfp);
-						err = fwrite("\n", 1, 1, omxregistryfp);
+						if (err != strlen(lib_absolute_path)) {
+							DEBUG(DEB_LEV_ERR, "Failed to write %zu bytes to fd %d\n", strlen(lib_absolute_path), fileno(omxregistryfp));
+							continue;
+						}
+						err = fwrite("\n", 1, strlen(buffer), omxregistryfp);
+						if (err != strlen(buffer)) {
+							DEBUG(DEB_LEV_ERR, "Failed to write %zu bytes to fd %d\n", strlen(buffer), fileno(omxregistryfp));
+							continue;
+						}
 
 
 						for (i = 0; i<num_of_comp; i++) {
--- libomxil-bellagio-0.9.3/include/OMX_Types.h.orig 2011-01-12 08:53:26.000000000 +0100
+++ libomxil-bellagio-0.9.3/include/OMX_Types.h 2013-02-25 09:53:55.000000000 +0100
@@ -314,6 +314,18 @@
  *  platform & operating specific object used to reference the window */
 typedef void* OMX_NATIVE_WINDOWTYPE;

+
+/** Define the OMX IL version that corresponds to this set of header files.
+ *  We also define a combined version that can be used to write or compare
+ *  values of the 32bit nVersion field, assuming a little endian architecture */
+#define OMX_VERSION_MAJOR 1
+#define OMX_VERSION_MINOR 1
+#define OMX_VERSION_REVISION 2
+#define OMX_VERSION_STEP 0
+
+#define OMX_VERSION ((OMX_VERSION_STEP<<24) | (OMX_VERSION_REVISION<<16) | (OMX_VERSION_MINOR<<8) | OMX_VERSION_MAJOR)
+
+
 /** The OMX_VERSIONTYPE union is used to specify the version for
     a structure or component.  For a component, the version is entirely
     specified by the component vendor.  Components doing the same function