aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--10_wrs_omxil_core.cfg1
-rw-r--r--Android.mk15
-rw-r--r--base/src/Android.mk38
-rw-r--r--core/src/Android.mk24
-rw-r--r--core/src/pv_omx_interface.cpp85
-rw-r--r--utils/src/Android.mk24
6 files changed, 187 insertions, 0 deletions
diff --git a/10_wrs_omxil_core.cfg b/10_wrs_omxil_core.cfg
new file mode 100644
index 0000000..b495d0c
--- /dev/null
+++ b/10_wrs_omxil_core.cfg
@@ -0,0 +1 @@
+(0xa054369c,0x22c5,0x412e,0x19,0x17,0x87,0x4c,0x1a,0x19,0xd4,0x5f),"libwrs_omxil_core_pvwrapped.so"
diff --git a/Android.mk b/Android.mk
new file mode 100644
index 0000000..381604a
--- /dev/null
+++ b/Android.mk
@@ -0,0 +1,15 @@
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+WRS_OMXIL_CORE_ROOT := $(LOCAL_PATH)
+
+$(call add-prebuilt-files, ETC, 10_wrs_omxil_core.cfg)
+
+# core
+-include $(WRS_OMXIL_CORE_ROOT)/core/src/Android.mk
+
+# base class
+-include $(WRS_OMXIL_CORE_ROOT)/base/src/Android.mk
+
+# utility
+-include $(WRS_OMXIL_CORE_ROOT)/utils/src/Android.mk
diff --git a/base/src/Android.mk b/base/src/Android.mk
new file mode 100644
index 0000000..6f84fe4
--- /dev/null
+++ b/base/src/Android.mk
@@ -0,0 +1,38 @@
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+ cmodule.cpp \
+ componentbase.cpp \
+ portbase.cpp \
+ portaudio.cpp \
+ portvideo.cpp \
+ portimage.cpp \
+ portother.cpp
+
+LOCAL_MODULE := libwrs_omxil_base
+
+LOCAL_CPPFLAGS :=
+
+LOCAL_LDFLAGS :=
+
+LOCAL_C_INCLUDES := \
+ $(WRS_OMXIL_CORE_ROOT)/utils/inc \
+ $(WRS_OMXIL_CORE_ROOT)/base/inc \
+ $(WRS_OMXIL_CORE_ROOT)/core/inc/khronos/openmax/include
+
+include $(BUILD_STATIC_LIBRARY)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := libwrs_omxil_common
+
+LOCAL_WHOLE_STATIC_LIBRARIES := \
+ libwrs_omxil_utils \
+ libwrs_omxil_base
+
+LOCAL_SHARED_LIBRARIES := \
+ libdl \
+ liblog
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/core/src/Android.mk b/core/src/Android.mk
new file mode 100644
index 0000000..3ae9ef6
--- /dev/null
+++ b/core/src/Android.mk
@@ -0,0 +1,24 @@
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+ wrs_omxcore.cpp \
+ pv_omx_interface.cpp
+
+LOCAL_MODULE := libwrs_omxil_core_pvwrapped
+
+LOCAL_CPPFLAGS :=
+
+LOCAL_LDFLAGS :=
+
+LOCAL_SHARED_LIBRARIES := \
+ libwrs_omxil_common \
+ liblog
+
+LOCAL_C_INCLUDES := \
+ $(WRS_OMXIL_CORE_ROOT)/utils/inc \
+ $(WRS_OMXIL_CORE_ROOT)/base/inc \
+ $(WRS_OMXIL_CORE_ROOT)/core/inc/khronos/openmax/include \
+ $(PV_INCLUDES)
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/core/src/pv_omx_interface.cpp b/core/src/pv_omx_interface.cpp
new file mode 100644
index 0000000..297f33c
--- /dev/null
+++ b/core/src/pv_omx_interface.cpp
@@ -0,0 +1,85 @@
+/* ------------------------------------------------------------------
+ * Copyright (C) 1998-2009 PacketVideo
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ * -------------------------------------------------------------------
+ */
+#include "pvlogger.h"
+
+#include "pv_omxcore.h"
+#include "omx_interface.h"
+
+class PVOMXInterface : public OMXInterface
+{
+ public:
+ OsclAny* SharedLibraryLookup(const OsclUuid& aInterfaceId)
+ {
+ if (aInterfaceId == OMX_INTERFACE_ID)
+ {
+ // the library lookup was successful
+ return this;
+ }
+ // the ID doesn't match
+ return NULL;
+ };
+
+ static PVOMXInterface* Instance()
+ {
+ return OSCL_NEW(PVOMXInterface, ());
+ };
+
+ bool UnloadWhenNotUsed(void)
+ {
+ // As of 9/22/08, the PV OMX core library can not be
+ // safely unloaded and reloaded when the proxy interface
+ // is enabled.
+ return false;
+ };
+
+ private:
+
+ PVOMXInterface()
+ {
+ // set the pointers to the omx core methods
+ pOMX_Init = OMX_Init;
+ pOMX_Deinit = OMX_Deinit;
+ pOMX_ComponentNameEnum = OMX_ComponentNameEnum;
+ pOMX_GetHandle = OMX_GetHandle;
+ pOMX_FreeHandle = OMX_FreeHandle;
+ pOMX_GetComponentsOfRole = OMX_GetComponentsOfRole;
+ pOMX_GetRolesOfComponent = OMX_GetRolesOfComponent;
+ pOMX_SetupTunnel = OMX_SetupTunnel;
+ pOMX_GetContentPipe = OMX_GetContentPipe;
+ //pOMXConfigParser = OMXConfigParser;
+ };
+
+};
+
+// function to obtain the interface object from the shared library
+extern "C"
+{
+ OSCL_EXPORT_REF OsclAny* PVGetInterface()
+ {
+ return PVOMXInterface::Instance();
+ }
+ OSCL_EXPORT_REF void PVReleaseInterface(void* aInterface)
+ {
+ PVOMXInterface* pInterface = (PVOMXInterface*)aInterface;
+ if (pInterface)
+ {
+ OSCL_DELETE(pInterface);
+ }
+ }
+
+}
diff --git a/utils/src/Android.mk b/utils/src/Android.mk
new file mode 100644
index 0000000..2955ed7
--- /dev/null
+++ b/utils/src/Android.mk
@@ -0,0 +1,24 @@
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+ list.c \
+ queue.c \
+ module.c \
+ thread.cpp \
+ workqueue.cpp
+
+LOCAL_MODULE := libwrs_omxil_utils
+
+LOCAL_CFLAGS :=
+
+LOCAL_CPPFLAGS :=
+
+LOCAL_LDFLAGS :=
+
+LOCAL_SHARED_LIBRARIES :=
+
+LOCAL_C_INCLUDES := \
+ $(WRS_OMXIL_CORE_ROOT)/utils/inc
+
+include $(BUILD_STATIC_LIBRARY)