extractors: allow OEM to control output type for WAV/FLAC

Based on some usecase, outputing in float is not an option.

Should allow a property to select the behavior

Bug: 140952553
Test: NativeDecoderTest#testExtractor
Test: MediaExtractorTest#testFlacIdentity
Change-Id: Idf2bf382f50d12c00a85aa7bb5582fb0439c6ea1
Signed-off-by: Jean-Baptiste Théou <jb@essential.com>
gugelfrei
Jean-Baptiste Théou 5 years ago committed by Marco Nelissen
parent 9b8c695c48
commit b7fc2ee88d

@ -9,6 +9,7 @@ cc_library {
],
shared_libs: [
"libbase",
"libbinder_ndk",
],

@ -24,6 +24,7 @@
// libFLAC parser
#include "FLAC/stream_decoder.h"
#include <android-base/properties.h>
#include <android/binder_ibinder.h> // for AIBinder_getCallingUid
#include <audio_utils/primitives.h>
#include <media/MediaExtractorPluginApi.h>
@ -47,7 +48,8 @@ namespace android {
// (Note: duplicated with WAVExtractor.cpp)
static inline bool shouldExtractorOutputFloat(int bitsPerSample)
{
return bitsPerSample > 16 && AIBinder_getCallingUid() == AID_MEDIA;
return bitsPerSample > 16 && AIBinder_getCallingUid() == AID_MEDIA
&& android::base::GetBoolProperty("media.extractor.float", true);
}
class FLACParser;

@ -10,6 +10,7 @@ cc_library {
],
shared_libs: [
"libbase",
"libbinder_ndk",
],

@ -20,6 +20,7 @@
#include "WAVExtractor.h"
#include <android-base/properties.h>
#include <android/binder_ibinder.h> // for AIBinder_getCallingUid
#include <audio_utils/primitives.h>
#include <media/stagefright/foundation/ADebug.h>
@ -43,7 +44,8 @@ namespace android {
// (Note: duplicated with FLACExtractor.cpp)
static inline bool shouldExtractorOutputFloat(int bitsPerSample)
{
return bitsPerSample > 16 && AIBinder_getCallingUid() == AID_MEDIA;
return bitsPerSample > 16 && AIBinder_getCallingUid() == AID_MEDIA
&& android::base::GetBoolProperty("media.extractor.float", true);
}
enum {

Loading…
Cancel
Save