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

Commit 1495b101 authored by Wonsik Kim's avatar Wonsik Kim Committed by Automerger Merge Worker
Browse files

Merge "CCodec: disable queue timeout for unrecognized media types" am:...

Merge "CCodec: disable queue timeout for unrecognized media types" am: 737e6c1b am: 5ac30b53 am: 921700cf

Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1692648

Change-Id: Ic616256e2d08e333e0f3219075e559ab828845a2
parents 5eb7259c 921700cf
Loading
Loading
Loading
Loading
+32 −1
Original line number Diff line number Diff line
@@ -2341,12 +2341,43 @@ void CCodec::initiateReleaseIfStuck() {
        }
    }
    bool tunneled = false;
    bool isMediaTypeKnown = false;
    {
        static const std::set<std::string> kKnownMediaTypes{
            MIMETYPE_VIDEO_VP8,
            MIMETYPE_VIDEO_VP9,
            MIMETYPE_VIDEO_AV1,
            MIMETYPE_VIDEO_AVC,
            MIMETYPE_VIDEO_HEVC,
            MIMETYPE_VIDEO_MPEG4,
            MIMETYPE_VIDEO_H263,
            MIMETYPE_VIDEO_MPEG2,
            MIMETYPE_VIDEO_RAW,
            MIMETYPE_VIDEO_DOLBY_VISION,

            MIMETYPE_AUDIO_AMR_NB,
            MIMETYPE_AUDIO_AMR_WB,
            MIMETYPE_AUDIO_MPEG,
            MIMETYPE_AUDIO_AAC,
            MIMETYPE_AUDIO_QCELP,
            MIMETYPE_AUDIO_VORBIS,
            MIMETYPE_AUDIO_OPUS,
            MIMETYPE_AUDIO_G711_ALAW,
            MIMETYPE_AUDIO_G711_MLAW,
            MIMETYPE_AUDIO_RAW,
            MIMETYPE_AUDIO_FLAC,
            MIMETYPE_AUDIO_MSGSM,
            MIMETYPE_AUDIO_AC3,
            MIMETYPE_AUDIO_EAC3,

            MIMETYPE_IMAGE_ANDROID_HEIC,
        };
        Mutexed<std::unique_ptr<Config>>::Locked configLocked(mConfig);
        const std::unique_ptr<Config> &config = *configLocked;
        tunneled = config->mTunneled;
        isMediaTypeKnown = (kKnownMediaTypes.count(config->mCodingMediaType) != 0);
    }
    if (!tunneled && name.empty()) {
    if (!tunneled && isMediaTypeKnown && name.empty()) {
        constexpr std::chrono::steady_clock::duration kWorkDurationThreshold = 3s;
        std::chrono::steady_clock::duration elapsed = mChannel->elapsed();
        if (elapsed >= kWorkDurationThreshold) {