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

Commit 79e235bb authored by Wonsik Kim's avatar Wonsik Kim Committed by Automerger Merge Worker
Browse files

Merge "CCodec: read formats after setupInputSurface" am: 8b599a8d am:...

Merge "CCodec: read formats after setupInputSurface" am: 8b599a8d am: 1a1aa414 am: 631f088f am: bdde1b1e

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

Change-Id: I957b0ac62cd391aeed40d0665dc4890ceb10b794
parents a9405aab bdde1b1e
Loading
Loading
Loading
Loading
+16 −4
Original line number Diff line number Diff line
@@ -1500,13 +1500,11 @@ void CCodec::createInputSurface() {
    status_t err;
    sp<IGraphicBufferProducer> bufferProducer;

    sp<AMessage> inputFormat;
    sp<AMessage> outputFormat;
    uint64_t usage = 0;
    {
        Mutexed<std::unique_ptr<Config>>::Locked configLocked(mConfig);
        const std::unique_ptr<Config> &config = *configLocked;
        inputFormat = config->mInputFormat;
        outputFormat = config->mOutputFormat;
        usage = config->mISConfig ? config->mISConfig->mUsage : 0;
    }
@@ -1542,6 +1540,14 @@ void CCodec::createInputSurface() {
        return;
    }

    // Formats can change after setupInputSurface
    sp<AMessage> inputFormat;
    {
        Mutexed<std::unique_ptr<Config>>::Locked configLocked(mConfig);
        const std::unique_ptr<Config> &config = *configLocked;
        inputFormat = config->mInputFormat;
        outputFormat = config->mOutputFormat;
    }
    mCallback->onInputSurfaceCreated(
            inputFormat,
            outputFormat,
@@ -1591,13 +1597,11 @@ void CCodec::initiateSetInputSurface(const sp<PersistentSurface> &surface) {
}

void CCodec::setInputSurface(const sp<PersistentSurface> &surface) {
    sp<AMessage> inputFormat;
    sp<AMessage> outputFormat;
    uint64_t usage = 0;
    {
        Mutexed<std::unique_ptr<Config>>::Locked configLocked(mConfig);
        const std::unique_ptr<Config> &config = *configLocked;
        inputFormat = config->mInputFormat;
        outputFormat = config->mOutputFormat;
        usage = config->mISConfig ? config->mISConfig->mUsage : 0;
    }
@@ -1629,6 +1633,14 @@ void CCodec::setInputSurface(const sp<PersistentSurface> &surface) {
        mCallback->onInputSurfaceDeclined(UNKNOWN_ERROR);
        return;
    }
    // Formats can change after setupInputSurface
    sp<AMessage> inputFormat;
    {
        Mutexed<std::unique_ptr<Config>>::Locked configLocked(mConfig);
        const std::unique_ptr<Config> &config = *configLocked;
        inputFormat = config->mInputFormat;
        outputFormat = config->mOutputFormat;
    }
    mCallback->onInputSurfaceAccepted(inputFormat, outputFormat);
}