Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f87e30fe authored by Andy Hung's avatar Andy Hung
Browse files

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: default avatarAndy Hung <hunga@google.com>
parent 609b815a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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>

+12 −0
Original line number Diff line number Diff line
@@ -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 {
+6 −0
Original line number Diff line number Diff line
@@ -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;