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

Commit f5f868d8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add AudioPresentation selection support for ACodec"

parents 0cc7de2b ce82a5f1
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -2357,6 +2357,17 @@ status_t ACodec::getLatency(uint32_t *latency) {
    return err;
}

status_t ACodec::setAudioPresentation(int32_t presentationId, int32_t programId) {
    OMX_AUDIO_CONFIG_ANDROID_AUDIOPRESENTATION config;
    InitOMXParams(&config);
    config.nPresentationId = (OMX_S32)presentationId;
    config.nProgramId = (OMX_S32)programId;
    status_t err = mOMXNode->setConfig(
            (OMX_INDEXTYPE)OMX_IndexConfigAudioPresentation,
            &config, sizeof(config));
    return err;
}

status_t ACodec::setPriority(int32_t priority) {
    if (priority < 0) {
        return BAD_VALUE;
@@ -7452,6 +7463,18 @@ status_t ACodec::setParameters(const sp<AMessage> &params) {
        }
    }

    int32_t presentationId = -1;
    if (params->findInt32("audio-presentation-presentation-id", &presentationId)) {
        int32_t programId = -1;
        params->findInt32("audio-presentation-program-id", &programId);
        status_t err = setAudioPresentation(presentationId, programId);
        if (err != OK) {
            ALOGI("[%s] failed setAudioPresentation. Failure is fine since this key is optional",
                    mComponentName.c_str());
            err = OK;
        }
    }

    // Ignore errors as failure is expected for codecs that aren't video encoders.
    (void)configureTemporalLayers(params, false /* inConfigure */, mOutputFormat);

+1 −0
Original line number Diff line number Diff line
@@ -479,6 +479,7 @@ private:
    status_t setPriority(int32_t priority);
    status_t setLatency(uint32_t latency);
    status_t getLatency(uint32_t *latency);
    status_t setAudioPresentation(int32_t presentationId, int32_t programId);
    status_t setOperatingRate(float rateFloat, bool isVideo);
    status_t getIntraRefreshPeriod(uint32_t *intraRefreshPeriod);
    status_t setIntraRefreshPeriod(uint32_t intraRefreshPeriod, bool inConfigure);
+3 −0
Original line number Diff line number Diff line
@@ -273,6 +273,9 @@ EXPORT const char* AMEDIAFORMAT_KEY_ALBUMART = "albumart";
EXPORT const char* AMEDIAFORMAT_KEY_ALBUMARTIST = "albumartist";
EXPORT const char* AMEDIAFORMAT_KEY_ARTIST = "artist";
EXPORT const char* AMEDIAFORMAT_KEY_AUDIO_PRESENTATION_INFO = "audio-presentation-info";
EXPORT const char* AMEDIAFORMAT_KEY_AUDIO_PRESENTATION_PRESENTATION_ID =
        "audio-presentation-presentation-id";
EXPORT const char* AMEDIAFORMAT_KEY_AUDIO_PRESENTATION_PROGRAM_ID = "audio-presentation-program-id";
EXPORT const char* AMEDIAFORMAT_KEY_AUDIO_SESSION_ID = "audio-session-id";
EXPORT const char* AMEDIAFORMAT_KEY_AUTHOR = "author";
EXPORT const char* AMEDIAFORMAT_KEY_BITRATE_MODE = "bitrate-mode";
+2 −0
Original line number Diff line number Diff line
@@ -181,6 +181,8 @@ extern const char* AMEDIAFORMAT_KEY_ALBUMART __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_ALBUMARTIST __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_ARTIST __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_AUDIO_PRESENTATION_INFO __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_AUDIO_PRESENTATION_PRESENTATION_ID __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_AUDIO_PRESENTATION_PROGRAM_ID __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_AUTHOR __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_BITS_PER_SAMPLE __INTRODUCED_IN(29);
extern const char* AMEDIAFORMAT_KEY_CDTRACKNUMBER __INTRODUCED_IN(29);