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

Commit 67ee600b authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "libstagefright: Instantiate FLACDecoder at runtime"

parents d8ca4be5 90da79a4
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -4692,8 +4692,15 @@ bool ACodec::UninitializedState::onAllocateComponent(const sp<AMessage> &msg) {
                "OMX.qcom.audio.encoder.aac",  // OMX.qcom.audio.encoder.aac
                0,     // flags
                &matchingCodecs);
    }
    else
    } else if (!strcasecmp(mime.c_str(), MEDIA_MIMETYPE_AUDIO_FLAC) && !encoder) {
        //use google's raw decoder
        OMXCodec::findMatchingCodecs(
                MEDIA_MIMETYPE_AUDIO_RAW,
                encoder, //createEncoder
                "OMX.google.raw.decoder",
                0, //flags
                &matchingCodecs);
    } else
        OMXCodec::findMatchingCodecs(
                mime.c_str(),
                encoder, // createEncoder
+15 −1
Original line number Diff line number Diff line
@@ -260,6 +260,15 @@ void OMXCodec::findMatchingCodecs(
        entry->mQuirks = 0;
        return;
    }

    if (matchComponentName && !strncmp("FLACDecoder", matchComponentName, 10)) {
            matchingCodecs->add();

            CodecNameAndQuirks *entry = &matchingCodecs->editItemAt(index);
            entry->mName = String8("FLACDecoder");
            entry->mQuirks = 0;
            return;
    }
#endif

    for (;;) {
@@ -380,6 +389,11 @@ sp<MediaSource> OMXCodec::Create(
    CHECK(success);

    Vector<CodecNameAndQuirks> matchingCodecs;

    if (!strncmp(mime, MEDIA_MIMETYPE_AUDIO_FLAC, 10)) {
        findMatchingCodecs(mime, createEncoder,
            "FLACDecoder", flags, &matchingCodecs);
    } else
        findMatchingCodecs(
            mime, createEncoder, matchComponentName, flags, &matchingCodecs);