added debug package and aarch64 build fix [release 0.9.3-2mamba;Mon Nov 30 2020]

This commit is contained in:
Silvan Calarco 2024-01-06 05:16:48 +01:00
parent 45a8a8572e
commit 17f7e77c4e
2 changed files with 216 additions and 7 deletions

View File

@ -0,0 +1,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

View File

@ -1,7 +1,7 @@
%define il_api 1.1.2 %define il_api 1.1.2
Name: libomxil-bellagio Name: libomxil-bellagio
Version: 0.9.3 Version: 0.9.3
Release: 1mamba Release: 2mamba
Summary: Bellagio OpenMAX Integration Layer %{il_api} library and components Summary: Bellagio OpenMAX Integration Layer %{il_api} library and components
Group: System/Libraries Group: System/Libraries
Vendor: openmamba Vendor: openmamba
@ -12,11 +12,12 @@ Source: http://downloads.sourceforge.net/project/omxil/omxil/Bellagio%20%
Patch0: libomxil-bellagio-0.9.3-parallel-build.patch Patch0: libomxil-bellagio-0.9.3-parallel-build.patch
Patch1: libomxil-bellagio-0.9.3-dynamicloader-linking.patch Patch1: libomxil-bellagio-0.9.3-dynamicloader-linking.patch
Patch2: libomxil-bellagio-0.9.3-gcc-4.9.patch Patch2: libomxil-bellagio-0.9.3-gcc-4.9.patch
Patch3: libomxil-bellagio-0.9.3-fedora-fixes.patch
License: LGPL License: LGPL
BuildRequires: doxygen
## AUTOBUILDREQ-BEGIN ## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel BuildRequires: glibc-devel
## AUTOBUILDREQ-END ## AUTOBUILDREQ-END
BuildRequires: doxygen
BuildRoot: %{_tmppath}/%{name}-%{version}-root BuildRoot: %{_tmppath}/%{name}-%{version}-root
%description %description
@ -32,15 +33,21 @@ Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
Bellagio is an opensource implementation of the Khronos OpenMAX Integration Layer API to access multimedia components. Bellagio is an opensource implementation of the Khronos OpenMAX Integration Layer API to access multimedia components.
This package contains static libraries and header files need for development. This package contains static libraries and header files need for development.
%debug_package
%prep %prep
%setup -q %setup -q
%patch0 -p1 #%patch0 -p1
%patch1 -p1 #%patch1 -p1
%patch2 -p1 #%patch2 -p1
%patch3 -p1
sed -e 's/-Werror//' -i configure.ac
autoreconf -f -i
%build %build
autoreconf %configure \
%configure CFLAGS="%{optflags} -fcommon"
%make %make
%install %install
@ -85,6 +92,9 @@ autoreconf
%doc NEWS %doc NEWS
%changelog %changelog
* Mon Nov 30 2020 Silvan Calarco <silvan.calarco@mambasoft.it> 0.9.3-2mamba
- added debug package and aarch64 build fix
* Fri Sep 19 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 0.9.3-1mamba * Fri Sep 19 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 0.9.3-1mamba
- update to 0.9.3 - update to 0.9.3