aboutsummaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorHo-Eun Ryu <ho-eun.ryu@windriver.com>2009-10-16 14:17:04 +0900
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:03:32 -0700
commit83e8059707184ea765b91054daf3c07e304c4d0c (patch)
treed05377357e749364b6edc67d0f9ff427a7a2d97c /core/src
parent0649b314d453ee61c2a045787524566fc9b76b4d (diff)
downloadwrs_omxil_core-83e8059707184ea765b91054daf3c07e304c4d0c.tar.gz
build: add files for Android Integration
Diffstat (limited to 'core/src')
-rw-r--r--core/src/Android.mk24
-rw-r--r--core/src/pv_omx_interface.cpp85
2 files changed, 109 insertions, 0 deletions
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);
+ }
+ }
+
+}