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

Commit cb98be48 authored by Songyue Han's avatar Songyue Han
Browse files

CodecCapabilities NDK: Fix endocder|decoder check for null format case.

Missing encoder|decoder check for format == nullptr. Move the check from
codechandlesFormat() into findNextCodecForFormat().

Bug: 389120542
Test: atest NativeAMediaCodecStoreTest#testGetNextCodecForFormat
Change-Id: I3b0642d4e2afa622f61ebcf3f44829986f65036b
parent 86c1d76b
Loading
Loading
Loading
Loading
+2 −8
Original line number Diff line number Diff line
@@ -154,12 +154,6 @@ static void initCodecInfoMap() {
    }
}

static bool codecHandlesFormat(const AMediaCodecInfo &codecInfo,
        sp<AMessage> format, bool isEncoder) {
    return codecInfo.mCodecCaps->isEncoder() == isEncoder
            && codecInfo.mCodecCaps->isFormatSupported(format);
}

static media_status_t findNextCodecForFormat(
        const AMediaFormat *format, bool isEncoder, const AMediaCodecInfo **outCodecInfo) {
    if (outCodecInfo == nullptr) {
@@ -192,8 +186,8 @@ static media_status_t findNextCodecForFormat(

    bool found = *outCodecInfo == nullptr;
    for (const AMediaCodecInfo &info : *infos) {
        if (found && (format == nullptr
                || codecHandlesFormat(info, nativeFormat, isEncoder))) {
        if (found && info.mCodecCaps->isEncoder() == isEncoder
                && (format == nullptr || info.mCodecCaps->isFormatSupported(nativeFormat))) {
            *outCodecInfo = &info;
            return AMEDIA_OK;
        }