diff options
author | Ho-Eun Ryu <ho-eun.ryu@windriver.com> | 2009-10-16 14:17:04 +0900 |
---|---|---|
committer | Patrick Tjin <pattjin@google.com> | 2014-07-21 22:03:32 -0700 |
commit | 83e8059707184ea765b91054daf3c07e304c4d0c (patch) | |
tree | d05377357e749364b6edc67d0f9ff427a7a2d97c /core/src | |
parent | 0649b314d453ee61c2a045787524566fc9b76b4d (diff) | |
download | wrs_omxil_core-83e8059707184ea765b91054daf3c07e304c4d0c.tar.gz |
build: add files for Android Integration
Diffstat (limited to 'core/src')
-rw-r--r-- | core/src/Android.mk | 24 | ||||
-rw-r--r-- | core/src/pv_omx_interface.cpp | 85 |
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); + } + } + +} |