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

Commit 7e65e101 authored by Lajos Molnar's avatar Lajos Molnar Committed by Android Git Automerger
Browse files

am 72d09f62: am 2613347d: Merge "Added support to query ACodec whether...

am 72d09f62: am 2613347d: Merge "Added support to query ACodec whether adaptive playback is enabled." into klp-dev

* commit '72d09f62':
  Added support to query ACodec whether adaptive playback is enabled.
parents d1d45fe7 72d09f62
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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.
+5 −0
Original line number Diff line number Diff line
@@ -365,6 +365,7 @@ ACodec::ACodec()
      mIsEncoder(false),
      mUseMetadataOnEncoderOutput(false),
      mShutdownInProgress(false),
      mIsConfiguredForAdaptivePlayback(false),
      mEncoderDelay(0),
      mEncoderPadding(0),
      mChannelMaskPresent(false),
@@ -1121,6 +1122,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) {
@@ -1165,12 +1167,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;
@@ -3773,6 +3777,7 @@ void ACodec::LoadedState::stateEntered() {
    mCodec->mDequeueCounter = 0;
    mCodec->mMetaDataBuffersToSubmit = 0;
    mCodec->mRepeatFrameDelayUs = -1ll;
    mCodec->mIsConfiguredForAdaptivePlayback = false;

    if (mCodec->mShutdownInProgress) {
        bool keepComponentAllocated = mCodec->mKeepComponentAllocated;