summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Hung <hunga@google.com>2014-05-15 04:30:49 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-05-15 04:30:49 +0000
commitd25b89d1e417082b7e4ee9db7c08ab8095d48d87 (patch)
treedc121d42eae2595b389315efee1fc4f7fcd7f360
parent19a0c7687ca1d00d4518191648848a16d08083c7 (diff)
parentf87e30fe71752dc431d8e8d5682c38271c03265a (diff)
downloadframeworks_av-d25b89d1e417082b7e4ee9db7c08ab8095d48d87.zip
frameworks_av-d25b89d1e417082b7e4ee9db7c08ab8095d48d87.tar.gz
frameworks_av-d25b89d1e417082b7e4ee9db7c08ab8095d48d87.tar.bz2
Merge "Send 64 bit OMX codec handling to 32 bit MediaServer"
-rw-r--r--media/libstagefright/ACodec.cpp4
-rw-r--r--media/libstagefright/OMXClient.cpp12
-rw-r--r--media/libstagefright/OMXCodec.cpp6
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;