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

Commit 156c6cb4 authored by Hangyu Kuang's avatar Hangyu Kuang Committed by Android (Google) Code Review
Browse files

Merge "media: Advertise SoftAAC decoder's profiles." into nyc-dev

parents 86823e4d 89334a07
Loading
Loading
Loading
Loading
+33 −1
Original line number Original line Diff line number Diff line
@@ -26,6 +26,7 @@
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/foundation/hexdump.h>
#include <media/stagefright/foundation/hexdump.h>
#include <media/stagefright/MediaErrors.h>
#include <media/stagefright/MediaErrors.h>
#include <utils/misc.h>


#include <math.h>
#include <math.h>


@@ -55,6 +56,14 @@ static void InitOMXParams(T *params) {
    params->nVersion.s.nStep = 0;
    params->nVersion.s.nStep = 0;
}
}


static const OMX_U32 kSupportedProfiles[] = {
    OMX_AUDIO_AACObjectLC,
    OMX_AUDIO_AACObjectHE,
    OMX_AUDIO_AACObjectHE_PS,
    OMX_AUDIO_AACObjectLD,
    OMX_AUDIO_AACObjectELD,
};

SoftAAC2::SoftAAC2(
SoftAAC2::SoftAAC2(
        const char *name,
        const char *name,
        const OMX_CALLBACKTYPE *callbacks,
        const OMX_CALLBACKTYPE *callbacks,
@@ -207,7 +216,7 @@ status_t SoftAAC2::initDecoder() {


OMX_ERRORTYPE SoftAAC2::internalGetParameter(
OMX_ERRORTYPE SoftAAC2::internalGetParameter(
        OMX_INDEXTYPE index, OMX_PTR params) {
        OMX_INDEXTYPE index, OMX_PTR params) {
    switch (index) {
    switch ((OMX_U32) index) {
        case OMX_IndexParamAudioAac:
        case OMX_IndexParamAudioAac:
        {
        {
            OMX_AUDIO_PARAM_AACPROFILETYPE *aacParams =
            OMX_AUDIO_PARAM_AACPROFILETYPE *aacParams =
@@ -283,6 +292,29 @@ OMX_ERRORTYPE SoftAAC2::internalGetParameter(
            return OMX_ErrorNone;
            return OMX_ErrorNone;
        }
        }


        case OMX_IndexParamAudioProfileQuerySupported:
        {
            OMX_AUDIO_PARAM_ANDROID_PROFILETYPE *profileParams =
                (OMX_AUDIO_PARAM_ANDROID_PROFILETYPE *)params;

            if (!isValidOMXParam(profileParams)) {
                return OMX_ErrorBadParameter;
            }

            if (profileParams->nPortIndex != 0) {
                return OMX_ErrorUndefined;
            }

            if (profileParams->nProfileIndex >= NELEM(kSupportedProfiles)) {
                return OMX_ErrorNoMore;
            }

            profileParams->eProfile =
                kSupportedProfiles[profileParams->nProfileIndex];

            return OMX_ErrorNone;
        }

        default:
        default:
            return SimpleSoftOMXComponent::internalGetParameter(index, params);
            return SimpleSoftOMXComponent::internalGetParameter(index, params);
    }
    }