Revert format change related CLs
Revert "CCodec: simplify format change logic"
This reverts commit a08cd2b279d9a97c5a2e7b29ef5b055ed02a251c.
Revert "aacdec: don't report DRC_COMPRESSION_MODE back"
This reverts commit aaa0309a2b8bcdb56103380d54127ba9aebc9f21.
Revert "CCodecConfig: don't read DRC_COMPRESSION_MODE back"
This reverts commit 30c1d421b10c4760edba45f3e118f7b549ed7104.
Bug: 173176131
Test: revert
Change-Id: Ia16a58cbf7b19a8b3ac908afd2c20d740dfa7c28
diff --git a/media/codec2/sfplugin/CCodec.cpp b/media/codec2/sfplugin/CCodec.cpp
index 0036bef..1405b97 100644
--- a/media/codec2/sfplugin/CCodec.cpp
+++ b/media/codec2/sfplugin/CCodec.cpp
@@ -1794,6 +1794,7 @@
// handle configuration changes in work done
Mutexed<std::unique_ptr<Config>>::Locked configLocked(mConfig);
const std::unique_ptr<Config> &config = *configLocked;
+ bool changed = false;
Config::Watcher<C2StreamInitDataInfo::output> initData =
config->watch<C2StreamInitDataInfo::output>();
if (!work->worklets.empty()
@@ -1828,7 +1829,9 @@
++stream;
}
- config->updateConfiguration(updates, config->mOutputDomain);
+ if (config->updateConfiguration(updates, config->mOutputDomain)) {
+ changed = true;
+ }
// copy standard infos to graphic buffers if not already present (otherwise, we
// may overwrite the actual intermediate value with a final value)
@@ -1862,7 +1865,7 @@
config->mInputSurface->onInputBufferDone(work->input.ordinal.frameIndex);
}
mChannel->onWorkDone(
- std::move(work), config->mOutputFormat,
+ std::move(work), changed ? config->mOutputFormat->dup() : nullptr,
initData.hasChanged() ? initData.update().get() : nullptr);
break;
}