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

Commit 85c95cb5 authored by jiangli.liu's avatar jiangli.liu Committed by Lili Lin
Browse files

media: Implement CodecBase interfaces in ACodec

Some case will check AAC parameter "aac-profile" or "profile".
C2 AAC format include this parameter.
but OMX AAC format do not have this parameter, so add "aac-profile" for OMX AAC.

Some case will check media codec parameters interfaces,
but these interfaces do not implement in ACodec, so cases failed.
Implement these interfaces in ACodec.

Test: atest android.mediav2.cts.EncoderProfileLevelTest#testValidateProfileLevel
atest android.media.cts.MediaCodecTest#testVendorParameters
Change-Id: I1a30970a1cfdf6cc66ff4031759bd5ce0284a787
Bug: 197836353
parent d515b11b
Loading
Loading
Loading
Loading
+16 −0
Original line number Original line Diff line number Diff line
@@ -5399,6 +5399,7 @@ status_t ACodec::getPortFormat(OMX_U32 portIndex, sp<AMessage> &notify) {
                    notify->setInt32("channel-count", params.nChannels);
                    notify->setInt32("channel-count", params.nChannels);
                    notify->setInt32("sample-rate", params.nSampleRate);
                    notify->setInt32("sample-rate", params.nSampleRate);
                    notify->setInt32("bitrate", params.nBitRate);
                    notify->setInt32("bitrate", params.nBitRate);
                    notify->setInt32("aac-profile", params.eAACProfile);
                    break;
                    break;
                }
                }


@@ -9158,4 +9159,19 @@ status_t ACodec::getOMXChannelMapping(size_t numChannels, OMX_AUDIO_CHANNELTYPE
    return OK;
    return OK;
}
}


status_t ACodec::querySupportedParameters(std::vector<std::string> *names) {
    if (!names) {
        return BAD_VALUE;
    }
    return OK;
}

status_t ACodec::subscribeToParameters([[maybe_unused]] const std::vector<std::string> &names) {
    return OK;
}

status_t ACodec::unsubscribeFromParameters([[maybe_unused]] const std::vector<std::string> &names) {
    return OK;
}

}  // namespace android
}  // namespace android
+3 −0
Original line number Original line Diff line number Diff line
@@ -69,6 +69,9 @@ struct ACodec : public AHierarchicalStateMachine, public CodecBase {
    virtual void initiateSetInputSurface(const sp<PersistentSurface> &surface);
    virtual void initiateSetInputSurface(const sp<PersistentSurface> &surface);
    virtual void initiateStart();
    virtual void initiateStart();
    virtual void initiateShutdown(bool keepComponentAllocated = false);
    virtual void initiateShutdown(bool keepComponentAllocated = false);
    virtual status_t querySupportedParameters(std::vector<std::string> *names) override;
    virtual status_t subscribeToParameters(const std::vector<std::string> &names) override;
    virtual status_t unsubscribeFromParameters(const std::vector<std::string> &names) override;


    status_t queryCapabilities(
    status_t queryCapabilities(
            const char* owner, const char* name,
            const char* owner, const char* name,