diff options
author | Andy Hung <hunga@google.com> | 2014-05-13 18:37:59 -0700 |
---|---|---|
committer | Andy Hung <hunga@google.com> | 2014-05-14 20:28:49 -0700 |
commit | f87e30fe71752dc431d8e8d5682c38271c03265a (patch) | |
tree | 1b326dde24b25962ee7a337fe723bef42ff76525 /media/libstagefright | |
parent | 609b815a3131d22da38b2f452faa9f89daad4039 (diff) | |
download | frameworks_av-f87e30fe71752dc431d8e8d5682c38271c03265a.zip frameworks_av-f87e30fe71752dc431d8e8d5682c38271c03265a.tar.gz frameworks_av-f87e30fe71752dc431d8e8d5682c38271c03265a.tar.bz2 |
Send 64 bit OMX codec handling to 32 bit MediaServer
This is a temporary fix for 64 bit OMX handling until 64 bit
codecs are more robust.
Bug: 13938273
Change-Id: Ifc79e360f9606f6c909b859d322b7dd5d416b26b
Signed-off-by: Andy Hung <hunga@google.com>
Diffstat (limited to 'media/libstagefright')
-rw-r--r-- | media/libstagefright/ACodec.cpp | 4 | ||||
-rw-r--r-- | media/libstagefright/OMXClient.cpp | 12 | ||||
-rw-r--r-- | media/libstagefright/OMXCodec.cpp | 6 |
3 files changed, 22 insertions, 0 deletions
diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp index 0fe7ff2..4f66402 100644 --- a/media/libstagefright/ACodec.cpp +++ b/media/libstagefright/ACodec.cpp @@ -17,6 +17,10 @@ //#define LOG_NDEBUG 0 #define LOG_TAG "ACodec" +#ifdef __LP64__ +#define OMX_ANDROID_COMPILE_AS_32BIT_ON_64BIT_PLATFORMS +#endif + #include <inttypes.h> #include <utils/Trace.h> diff --git a/media/libstagefright/OMXClient.cpp b/media/libstagefright/OMXClient.cpp index 72f2306..aca21cf 100644 --- a/media/libstagefright/OMXClient.cpp +++ b/media/libstagefright/OMXClient.cpp @@ -16,6 +16,11 @@ //#define LOG_NDEBUG 0 #define LOG_TAG "OMXClient" + +#ifdef __LP64__ +#define OMX_ANDROID_COMPILE_AS_32BIT_ON_64BIT_PLATFORMS +#endif + #include <utils/Log.h> #include <binder/IServiceManager.h> @@ -165,7 +170,14 @@ bool MuxOMX::isLocalNode_l(node_id node) const { // static bool MuxOMX::CanLiveLocally(const char *name) { +#ifdef __LP64__ + (void)name; // disable unused parameter warning + // 64 bit processes always run OMX remote on MediaServer + return false; +#else + // 32 bit processes run only OMX.google.* components locally return !strncasecmp(name, "OMX.google.", 11); +#endif } const sp<IOMX> &MuxOMX::getOMX(node_id node) const { diff --git a/media/libstagefright/OMXCodec.cpp b/media/libstagefright/OMXCodec.cpp index f248861..c028dbf 100644 --- a/media/libstagefright/OMXCodec.cpp +++ b/media/libstagefright/OMXCodec.cpp @@ -18,6 +18,11 @@ //#define LOG_NDEBUG 0 #define LOG_TAG "OMXCodec" + +#ifdef __LP64__ +#define OMX_ANDROID_COMPILE_AS_32BIT_ON_64BIT_PLATFORMS +#endif + #include <utils/Log.h> #include "include/AACEncoder.h" @@ -130,6 +135,7 @@ private: template<class T> static void InitOMXParams(T *params) { + COMPILE_TIME_ASSERT_FUNCTION_SCOPE(sizeof(OMX_PTR) == 4); // check OMX_PTR is 4 bytes. params->nSize = sizeof(T); params->nVersion.s.nVersionMajor = 1; params->nVersion.s.nVersionMinor = 0; |