diff options
author | Robert Shih <robertshih@google.com> | 2014-01-23 15:26:43 -0800 |
---|---|---|
committer | Lajos Molnar <lajos@google.com> | 2014-03-06 16:26:30 -0800 |
commit | 933a4d3339ebbcd34a7f97b9e7350ec74b5ec29c (patch) | |
tree | bd6e305a5ba2d5cb84e6d90779a36b9f0dc457f9 | |
parent | f7e34cfcb9d649989c8e391f23dde782d4931849 (diff) | |
download | frameworks_av-933a4d3339ebbcd34a7f97b9e7350ec74b5ec29c.zip frameworks_av-933a4d3339ebbcd34a7f97b9e7350ec74b5ec29c.tar.gz frameworks_av-933a4d3339ebbcd34a7f97b9e7350ec74b5ec29c.tar.bz2 |
Added support to query ACodec whether adaptive playback is enabled.
Bug: 11854054
Change-Id: I6b0308aa8550c643706959277e46dad586c37297
-rw-r--r-- | include/media/stagefright/ACodec.h | 3 | ||||
-rw-r--r-- | media/libstagefright/ACodec.cpp | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/include/media/stagefright/ACodec.h b/include/media/stagefright/ACodec.h index 7395055..510c482 100644 --- a/include/media/stagefright/ACodec.h +++ b/include/media/stagefright/ACodec.h @@ -67,6 +67,8 @@ struct ACodec : public AHierarchicalStateMachine { void signalRequestIDRFrame(); + bool isConfiguredForAdaptivePlayback() { return mIsConfiguredForAdaptivePlayback; } + struct PortDescription : public RefBase { size_t countBuffers(); IOMX::buffer_id bufferIDAt(size_t index) const; @@ -187,6 +189,7 @@ private: bool mIsEncoder; bool mUseMetadataOnEncoderOutput; bool mShutdownInProgress; + bool mIsConfiguredForAdaptivePlayback; // If "mKeepComponentAllocated" we only transition back to Loaded state // and do not release the component instance. diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp index bc4e89b..3810ac1 100644 --- a/media/libstagefright/ACodec.cpp +++ b/media/libstagefright/ACodec.cpp @@ -363,6 +363,7 @@ ACodec::ACodec() mIsEncoder(false), mUseMetadataOnEncoderOutput(false), mShutdownInProgress(false), + mIsConfiguredForAdaptivePlayback(false), mEncoderDelay(0), mEncoderPadding(0), mChannelMaskPresent(false), @@ -1115,6 +1116,7 @@ status_t ACodec::configureCodec( int32_t haveNativeWindow = msg->findObject("native-window", &obj) && obj != NULL; mStoreMetaDataInOutputBuffers = false; + mIsConfiguredForAdaptivePlayback = false; if (!encoder && video && haveNativeWindow) { err = mOMX->storeMetaDataInBuffers(mNode, kPortIndexOutput, OMX_TRUE); if (err != OK) { @@ -1159,12 +1161,14 @@ status_t ACodec::configureCodec( ALOGW_IF(err != OK, "[%s] prepareForAdaptivePlayback failed w/ err %d", mComponentName.c_str(), err); + mIsConfiguredForAdaptivePlayback = (err == OK); } // allow failure err = OK; } else { ALOGV("[%s] storeMetaDataInBuffers succeeded", mComponentName.c_str()); mStoreMetaDataInOutputBuffers = true; + mIsConfiguredForAdaptivePlayback = true; } int32_t push; @@ -3702,6 +3706,7 @@ void ACodec::LoadedState::stateEntered() { mCodec->mDequeueCounter = 0; mCodec->mMetaDataBuffersToSubmit = 0; mCodec->mRepeatFrameDelayUs = -1ll; + mCodec->mIsConfiguredForAdaptivePlayback = false; if (mCodec->mShutdownInProgress) { bool keepComponentAllocated = mCodec->mKeepComponentAllocated; |