diff options
author | Lajos Molnar <lajos@google.com> | 2015-07-28 15:11:14 -0700 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2015-07-29 15:44:30 -0700 |
commit | 7c3c275b4d0100eec36f7b66637a7aace7971466 (patch) | |
tree | 7fcd01c703060898c9355d99615afff7b13c7958 /media | |
parent | a7d36c184562cc15b2d665ff25c485fefdcfbabd (diff) | |
download | frameworks_av-7c3c275b4d0100eec36f7b66637a7aace7971466.zip frameworks_av-7c3c275b4d0100eec36f7b66637a7aace7971466.tar.gz frameworks_av-7c3c275b4d0100eec36f7b66637a7aace7971466.tar.bz2 |
stagefright: disable automatic experiments
allow manually-enabled experiments only in eng and userdebug builds
Bug: 20894667
Change-Id: Ie6c93e9482a84ed3aaf6aa0abd909f14cfea4e9b
Diffstat (limited to 'media')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/Android.mk | 7 | ||||
-rw-r--r-- | media/libstagefright/Android.mk | 8 | ||||
-rw-r--r-- | media/libstagefright/foundation/ADebug.cpp | 22 |
3 files changed, 33 insertions, 4 deletions
diff --git a/media/libmediaplayerservice/nuplayer/Android.mk b/media/libmediaplayerservice/nuplayer/Android.mk index cc6f743..cd20837 100644 --- a/media/libmediaplayerservice/nuplayer/Android.mk +++ b/media/libmediaplayerservice/nuplayer/Android.mk @@ -25,7 +25,12 @@ LOCAL_C_INCLUDES := \ $(TOP)/frameworks/av/media/libmediaplayerservice \ $(TOP)/frameworks/native/include/media/openmax -LOCAL_CFLAGS += -Werror -Wall -DENABLE_STAGEFRIGHT_EXPERIMENTS +LOCAL_CFLAGS += -Werror -Wall + +# enable experiments only in userdebug and eng builds +ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT))) +LOCAL_CFLAGS += -DENABLE_STAGEFRIGHT_EXPERIMENTS +endif LOCAL_CLANG := true diff --git a/media/libstagefright/Android.mk b/media/libstagefright/Android.mk index b86c749..2529aa7 100644 --- a/media/libstagefright/Android.mk +++ b/media/libstagefright/Android.mk @@ -127,8 +127,12 @@ LOCAL_SHARED_LIBRARIES += \ libdl \ libRScpp \ -LOCAL_CFLAGS += -Wno-multichar -Werror -Wno-error=deprecated-declarations -Wall \ - -DENABLE_STAGEFRIGHT_EXPERIMENTS +LOCAL_CFLAGS += -Wno-multichar -Werror -Wno-error=deprecated-declarations -Wall + +# enable experiments only in userdebug and eng builds +ifneq (,$(filter userdebug eng,$(TARGET_BUILD_VARIANT))) +LOCAL_CFLAGS += -DENABLE_STAGEFRIGHT_EXPERIMENTS +endif LOCAL_CLANG := true diff --git a/media/libstagefright/foundation/ADebug.cpp b/media/libstagefright/foundation/ADebug.cpp index 24fa561..2c5f544 100644 --- a/media/libstagefright/foundation/ADebug.cpp +++ b/media/libstagefright/foundation/ADebug.cpp @@ -29,6 +29,8 @@ #include <AStringUtils.h> #include <AUtils.h> +#define UNUSED(x) ((void)(x)) + namespace android { //static @@ -130,7 +132,24 @@ bool ADebug::getExperimentFlag( long level = GetLevelFromProperty(name, "debug.stagefright.experiments", undefined); if (level != undefined) { ALOGI("experiment '%s': %s from property", name, level ? "ENABLED" : "disabled"); - return level != 0; + return allow && (level != 0); + } + +#ifndef ENABLE_STAGEFRIGHT_AUTO_EXPERIMENTS + UNUSED(modulo); + UNUSED(limit); + UNUSED(plus); + UNUSED(timeDivisor); + return false; +#else + // Disable automatic experiments in "non-experimental" builds (that is, _all_ builds + // as there is no "experimental" build). + // TODO: change build type to enable automatic experiments in the future for some builds + char value[PROPERTY_VALUE_MAX]; + if (property_get("ro.build.type", value, NULL)) { + if (strcmp(value, "experimental")) { + return false; + } } static volatile int32_t haveSerial = 0; @@ -164,6 +183,7 @@ bool ADebug::getExperimentFlag( bool enable = allow && (counter % modulo < limit); ALOGI("experiment '%s': %s", name, enable ? "ENABLED" : "disabled"); return enable; +#endif } } // namespace android |