diff options
5 files changed, 24 insertions, 1 deletions
diff --git a/media/libavextensions/stagefright/AVExtensions.h b/media/libavextensions/stagefright/AVExtensions.h index 08dbeeb..29f4cbc 100644 --- a/media/libavextensions/stagefright/AVExtensions.h +++ b/media/libavextensions/stagefright/AVExtensions.h @@ -31,12 +31,14 @@  #include <media/stagefright/DataSource.h>  #include <common/AVExtensionsCommon.h> +#include <system/audio.h>  namespace android {  struct ACodec;  class MediaExtractor;  struct MediaCodec; +class AudioParameter;  /*   * Factory to create objects of base-classes in libstagefright @@ -58,6 +60,8 @@ struct AVUtils {      virtual status_t convertMetaDataToMessage(              const sp<MetaData> &meta, sp<AMessage> *format);      virtual DataSource::SnifferFunc getExtendedSniffer(); +    virtual status_t mapMimeToAudioFormat( audio_format_t& format, const char* mime); +    virtual status_t sendMetaDataToHal(const sp<MetaData>& meta, AudioParameter *param);      virtual sp<MediaCodec> createCustomComponentByName(const sp<ALooper> &looper,                  const char* mime, bool encoder); diff --git a/media/libavextensions/stagefright/AVUtils.cpp b/media/libavextensions/stagefright/AVUtils.cpp index 8fe0c53..d767f45 100644 --- a/media/libavextensions/stagefright/AVUtils.cpp +++ b/media/libavextensions/stagefright/AVUtils.cpp @@ -49,6 +49,16 @@ status_t AVUtils::convertMetaDataToMessage(      return OK;  } +status_t AVUtils::mapMimeToAudioFormat( +        audio_format_t&, const char* ) { +        return OK; +} + +status_t AVUtils::sendMetaDataToHal( +        const sp<MetaData>&, AudioParameter *){ +        return OK; +} +  static bool dumbSniffer(          const sp<DataSource> &, String8 *,          float *, sp<AMessage> *) { diff --git a/media/libstagefright/Utils.cpp b/media/libstagefright/Utils.cpp index e22c0c9..a8927ee 100644 --- a/media/libstagefright/Utils.cpp +++ b/media/libstagefright/Utils.cpp @@ -727,6 +727,7 @@ status_t sendMetaDataToHal(sp<MediaPlayerBase::AudioSink>& sink,          param.addInt(String8(AUDIO_OFFLOAD_CODEC_PADDING_SAMPLES), paddingSamples);      } +    AVUtils::get()->sendMetaDataToHal(meta, ¶m);      ALOGV("sendMetaDataToHal: bitRate %d, sampleRate %d, chanMask %d,"            "delaySample %d, paddingSample %d", bitRate, sampleRate,            channelMask, delaySamples, paddingSamples); @@ -762,7 +763,7 @@ const struct mime_conv_t* p = &mimeLookup[0];          ++p;      } -    return BAD_VALUE; +    return AVUtils::get()->mapMimeToAudioFormat(format, mime);  }  struct aac_format_conv_t { diff --git a/services/audiopolicy/common/managerdefinitions/Android.mk b/services/audiopolicy/common/managerdefinitions/Android.mk index 8728ff3..81b0a7a 100644 --- a/services/audiopolicy/common/managerdefinitions/Android.mk +++ b/services/audiopolicy/common/managerdefinitions/Android.mk @@ -30,6 +30,11 @@ LOCAL_C_INCLUDES += \  LOCAL_EXPORT_C_INCLUDE_DIRS := \      $(LOCAL_PATH)/include +ifeq ($(call is-vendor-board-platform,QCOM),true) +ifeq ($(strip $(AUDIO_FEATURE_ENABLED_FLAC_OFFLOAD)),true) +LOCAL_CFLAGS     += -DFLAC_OFFLOAD_ENABLED +endif +endif  LOCAL_MODULE := libaudiopolicycomponents diff --git a/services/audiopolicy/common/managerdefinitions/include/ConfigParsingUtils.h b/services/audiopolicy/common/managerdefinitions/include/ConfigParsingUtils.h index e87397d..dfb3555 100644 --- a/services/audiopolicy/common/managerdefinitions/include/ConfigParsingUtils.h +++ b/services/audiopolicy/common/managerdefinitions/include/ConfigParsingUtils.h @@ -201,6 +201,9 @@ const StringToEnum sFormatNameToEnumTable[] = {      STRING_TO_ENUM(AUDIO_FORMAT_E_AC3),      STRING_TO_ENUM(AUDIO_FORMAT_DTS),      STRING_TO_ENUM(AUDIO_FORMAT_DTS_HD), +#ifdef FLAC_OFFLOAD_ENABLED +    STRING_TO_ENUM(AUDIO_FORMAT_FLAC), +#endif  };  const StringToEnum sOutChannelsNameToEnumTable[] = {  | 
