Lines Matching defs:mCodec

228     ACodec *mCodec;
5573 mCodec(codec) {
5619 status_t err = mCodec->handleSetSurface(static_cast<Surface *>(obj.get()));
5633 mCodec->signalError(OMX_ErrorUndefined, INVALID_OPERATION);
5641 mCodec->signalError(OMX_ErrorResourcesLost, DEAD_OBJECT);
5648 mCodec->mComponentName.c_str());
5649 status_t err = mCodec->mOMX->freeNode(mCodec->mNode);
5651 mCodec->mComponentName.c_str(), err);
5652 sp<AMessage> notify = mCodec->mNotify->dup();
5668 if (mCodec->mNode == 0) {
5676 if (nodeID != mCodec->mNode) {
5677 ALOGE("Unexpected message for nodeID: %u, should have been %u", nodeID, mCodec->mNode);
5692 mCodec->handleMessage(*it);
5702 mCodec->notifyOfRenderedFrames();
5801 mCodec->onDataSpaceChanged((android_dataspace)data1, aspects);
5807 mCodec->mComponentName.c_str(), event, data1, data2);
5812 ALOGE("[%s] ERROR(0x%08x)", mCodec->mComponentName.c_str(), data1);
5820 mCodec->signalError(omxError);
5827 mCodec->mComponentName.c_str(), bufferID);
5829 BufferInfo *info = mCodec->findBufferByID(kPortIndexInput, bufferID);
5833 mCodec->dumpBuffers(kPortIndexInput);
5842 (void)mCodec->waitForFence(fenceFd, "onOMXEmptyBufferDone");
5875 if (mCodec->mPortEOS[kPortIndexInput]) {
5881 sp<AMessage> notify = mCodec->mNotify->dup();
5888 sp<AMessage> reply = new AMessage(kWhatInputBufferFilled, mCodec);
5915 mCodec->mComponentName.c_str(), err);
5928 BufferInfo *info = mCodec->findBufferByID(kPortIndexInput, bufferID);
5932 mCodec->dumpBuffers(kPortIndexInput);
5933 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
5943 if (!mCodec->mPortEOS[kPortIndexInput]) {
5944 mCodec->mPortEOS[kPortIndexInput] = true;
5945 mCodec->mInputEOSResult = err;
5953 if (buffer != NULL && !mCodec->mPortEOS[kPortIndexInput]) {
5965 MetadataBufferType metaType = mCodec->mInputMetadataType;
5968 if (mCodec->mIsLegacyVP9Decoder) {
5970 mCodec->mComponentName.c_str(), bufferID);
5984 mCodec->mComponentName.c_str(),
5988 sp<DataConverter> converter = mCodec->mConverter[kPortIndexInput];
5994 mCodec->signalError(OMX_ErrorUndefined, err);
6001 mCodec->mComponentName.c_str(), bufferID);
6004 mCodec->mComponentName.c_str(), bufferID);
6008 mCodec->mComponentName.c_str(), bufferID, (long long)timeUs);
6011 mCodec->mComponentName.c_str(), bufferID, (long long)timeUs);
6019 mCodec->mBufferStats.add(timeUs, stats);
6022 if (mCodec->storingMetadataInDecodedBuffers()) {
6027 mCodec->mMetadataBuffersToSubmit,
6031 mCodec->submitOutputMetadataBuffer();
6045 err2 = mCodec->mOMX->updateNativeHandleInMeta(
6046 mCodec->mNode, kPortIndexInput,
6054 err2 = mCodec->mOMX->updateGraphicBufferInMeta(
6055 mCodec->mNode, kPortIndexInput,
6070 err2 = mCodec->mOMX->emptyBuffer(
6071 mCodec->mNode,
6081 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err2));
6090 mCodec->mComponentName.c_str(), err);
6092 mCodec->mPortEOS[kPortIndexInput] = true;
6093 mCodec->mInputEOSResult = err;
6095 } else if (!mCodec->mPortEOS[kPortIndexInput]) {
6098 mCodec->mComponentName.c_str(), err);
6101 mCodec->mComponentName.c_str());
6105 mCodec->mComponentName.c_str(), bufferID);
6108 status_t err2 = mCodec->mOMX->emptyBuffer(
6109 mCodec->mNode,
6118 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err2));
6123 mCodec->mPortEOS[kPortIndexInput] = true;
6124 mCodec->mInputEOSResult = err;
6139 if (mCodec->mPortEOS[kPortIndexInput]) {
6145 for (size_t i = 0; i < mCodec->mBuffers[kPortIndexInput].size(); ++i) {
6146 BufferInfo *info = &mCodec->mBuffers[kPortIndexInput].editItemAt(i);
6174 mCodec->mComponentName.c_str(), bufferID, timeUs, flags);
6180 index = mCodec->mBufferStats.indexOfKey(timeUs);
6182 ACodec::BufferStats *stats = &mCodec->mBufferStats.editValueAt(index);
6189 mCodec->mBufferStats.removeItemsAt(index);
6195 mCodec->findBufferByID(kPortIndexOutput, bufferID, &index);
6199 mCodec->dumpBuffers(kPortIndexOutput);
6200 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
6207 info->mDequeuedAt = ++mCodec->mDequeueCounter;
6216 mCodec->notifyOfRenderedFrames(true /* dropIncomplete */);
6220 if (mCodec->mNativeWindow == NULL) {
6221 (void)mCodec->waitForFence(fenceFd, "onOMXFillBufferDone");
6235 || mCodec->mPortEOS[kPortIndexOutput])) {
6237 mCodec->mComponentName.c_str(), info->mBufferID);
6239 err = mCodec->mOMX->fillBuffer(mCodec->mNode, info->mBufferID, info->mFenceFd);
6242 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
6251 new AMessage(kWhatOutputBufferDrained, mCodec);
6253 if (mCodec->mOutputFormat != mCodec->mLastOutputFormat && rangeLength > 0) {
6255 if (mCodec->mBaseOutputFormat == mCodec->mOutputFormat) {
6256 mCodec->onOutputFormatChanged(mCodec->mOutputFormat);
6258 mCodec->addKeyFormatChangesToRenderBufferNotification(reply);
6259 mCodec->sendFormatChange();
6260 } else if (rangeLength > 0 && mCodec->mNativeWindow != NULL) {
6263 mCodec->addKeyFormatChangesToRenderBufferNotification(reply);
6266 if (mCodec->usingMetadataOnEncoderOutput()) {
6287 status_t err = mCodec->mConverter[kPortIndexOutput]->convert(
6290 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
6295 if (mCodec->mNativeWindow == NULL) {
6302 if (mCodec->mSkipCutBuffer != NULL) {
6303 mCodec->mSkipCutBuffer->submit(info->mData);
6307 sp<AMessage> notify = mCodec->mNotify->dup();
6322 ALOGV("[%s] saw output EOS", mCodec->mComponentName.c_str());
6324 sp<AMessage> notify = mCodec->mNotify->dup();
6326 notify->setInt32("err", mCodec->mInputEOSResult);
6329 mCodec->mPortEOS[kPortIndexOutput] = true;
6335 err = mCodec->freeBuffer(kPortIndexOutput, index);
6337 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
6354 BufferInfo *info = mCodec->findBufferByID(kPortIndexOutput, bufferID, &index);
6358 mCodec->dumpBuffers(kPortIndexOutput);
6359 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
6365 && memcmp(&crop, &mCodec->mLastNativeWindowCrop, sizeof(crop)) != 0) {
6366 mCodec->mLastNativeWindowCrop = crop;
6367 status_t err = native_window_set_crop(mCodec->mNativeWindow.get(), &crop);
6373 && dataSpace != mCodec->mLastNativeWindowDataSpace) {
6375 mCodec->mNativeWindow.get(), (android_dataspace)dataSpace);
6376 mCodec->mLastNativeWindowDataSpace = dataSpace;
6381 if (mCodec->mNativeWindow != NULL
6391 mCodec->mRenderTracker.onFrameQueued(
6405 err = native_window_set_buffers_timestamp(mCodec->mNativeWindow.get(), timestampNs);
6409 err = mCodec->mNativeWindow->queueBuffer(
6410 mCodec->mNativeWindow.get(), info->mGraphicBuffer.get(), info->mFenceFd);
6416 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
6422 if (mCodec->mNativeWindow != NULL &&
6442 info = mCodec->dequeueBufferFromNativeWindow();
6449 if (!mCodec->mPortEOS[kPortIndexOutput]) {
6454 info = mCodec->dequeueBufferFromNativeWindow();
6459 mCodec->mComponentName.c_str(), info->mBufferID);
6461 status_t err = mCodec->mOMX->fillBuffer(
6462 mCodec->mNode, info->mBufferID, info->mFenceFd);
6467 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
6476 status_t err = mCodec->freeBuffer(kPortIndexOutput, index);
6478 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
6499 mCodec->mNodeBinder->unlinkToDeath(mDeathNotifier);
6503 mCodec->mUsingNativeWindow = false;
6504 mCodec->mNativeWindow.clear();
6505 mCodec->mNativeWindowUsageBits = 0;
6506 mCodec->mNode = 0;
6507 mCodec->mOMX.clear();
6508 mCodec->mQuirks = 0;
6509 mCodec->mFlags = 0;
6510 mCodec->mInputMetadataType = kMetadataBufferTypeInvalid;
6511 mCodec->mOutputMetadataType = kMetadataBufferTypeInvalid;
6512 mCodec->mConverter[0].clear();
6513 mCodec->mConverter[1].clear();
6514 mCodec->mComponentName.clear();
6544 sp<AMessage> notify = mCodec->mNotify->dup();
6554 sp<AMessage> notify = mCodec->mNotify->dup();
6579 && mCodec->mLoadedState->onConfigureComponent(msg)) {
6580 mCodec->mLoadedState->onStart();
6587 CHECK(mCodec->mNode == 0);
6591 mCodec->signalError(OMX_ErrorUndefined, NO_INIT);
6597 sp<AMessage> notify = new AMessage(kWhatOMXDied, mCodec);
6637 err = omx->allocateNode(componentName.c_str(), observer, &mCodec->mNodeBinder, &node);
6657 mCodec->signalError((OMX_ERRORTYPE)err, makeNoSideEffectStatus(err));
6662 if (mCodec->mNodeBinder == NULL ||
6663 mCodec->mNodeBinder->linkToDeath(mDeathNotifier) != OK) {
6669 notify = new AMessage(kWhatOMXMessageList, mCodec);
6672 mCodec->mComponentName = componentName;
6673 mCodec->mRenderTracker.setComponentName(componentName);
6674 mCodec->mFlags = 0;
6677 mCodec->mFlags |= kFlagIsSecure;
6678 mCodec->mFlags |= kFlagIsGrallocUsageProtected;
6679 mCodec->mFlags |= kFlagPushBlankBuffersToNativeWindowOnShutdown;
6682 mCodec->mQuirks = quirks;
6683 mCodec->mOMX = omx;
6684 mCodec->mNode = node;
6687 sp<AMessage> notify = mCodec->mNotify->dup();
6689 notify->setString("componentName", mCodec->mComponentName.c_str());
6693 mCodec->changeState(mCodec->mLoadedState);
6705 ALOGV("[%s] Now Loaded", mCodec->mComponentName.c_str());
6707 mCodec->mPortEOS[kPortIndexInput] =
6708 mCodec->mPortEOS[kPortIndexOutput] = false;
6710 mCodec->mInputEOSResult = OK;
6712 mCodec->mDequeueCounter = 0;
6713 mCodec->mMetadataBuffersToSubmit = 0;
6714 mCodec->mRepeatFrameDelayUs = -1ll;
6715 mCodec->mInputFormat.clear();
6716 mCodec->mOutputFormat.clear();
6717 mCodec->mBaseOutputFormat.clear();
6719 if (mCodec->mShutdownInProgress) {
6720 bool keepComponentAllocated = mCodec->mKeepComponentAllocated;
6722 mCodec->mShutdownInProgress = false;
6723 mCodec->mKeepComponentAllocated = false;
6727 mCodec->mExplicitShutdown = false;
6729 mCodec->processDeferredMessages();
6734 (void)mCodec->mOMX->freeNode(mCodec->mNode);
6736 mCodec->changeState(mCodec->mUninitializedState);
6739 if (mCodec->mExplicitShutdown) {
6740 sp<AMessage> notify = mCodec->mNotify->dup();
6743 mCodec->mExplicitShutdown = false;
6785 mCodec->mExplicitShutdown = true;
6794 sp<AMessage> notify = mCodec->mNotify->dup();
6813 CHECK(mCodec->mNode != 0);
6820 err = mCodec->configureCodec(mime.c_str(), msg);
6824 mCodec->mComponentName.c_str(), err);
6826 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
6831 sp<AMessage> notify = mCodec->mNotify->dup();
6833 notify->setMessage("input-format", mCodec->mInputFormat);
6834 notify->setMessage("output-format", mCodec->mOutputFormat);
6844 if (mCodec->mRepeatFrameDelayUs > 0ll) {
6845 err = mCodec->mOMX->setInternalOption(
6846 mCodec->mNode,
6849 &mCodec->mRepeatFrameDelayUs,
6850 sizeof(mCodec->mRepeatFrameDelayUs));
6855 mCodec->mComponentName.c_str(),
6861 if (mCodec->mMaxPtsGapUs > 0ll) {
6862 err = mCodec->mOMX->setInternalOption(
6863 mCodec->mNode,
6866 &mCodec->mMaxPtsGapUs,
6867 sizeof(mCodec->mMaxPtsGapUs));
6871 mCodec->mComponentName.c_str(),
6877 if (mCodec->mMaxFps > 0) {
6878 err = mCodec->mOMX->setInternalOption(
6879 mCodec->mNode,
6882 &mCodec->mMaxFps,
6883 sizeof(mCodec->mMaxFps));
6887 mCodec->mComponentName.c_str(),
6893 if (mCodec->mTimePerCaptureUs > 0ll
6894 && mCodec->mTimePerFrameUs > 0ll) {
6896 timeLapse[0] = mCodec->mTimePerFrameUs;
6897 timeLapse[1] = mCodec->mTimePerCaptureUs;
6898 err = mCodec->mOMX->setInternalOption(
6899 mCodec->mNode,
6907 mCodec->mComponentName.c_str(),
6913 if (mCodec->mCreateInputBuffersSuspended) {
6915 err = mCodec->mOMX->setInternalOption(
6916 mCodec->mNode,
6924 mCodec->mComponentName.c_str(),
6931 if (mCodec->mOMX->getParameter(
6932 mCodec->mNode, (OMX_INDEXTYPE)OMX_IndexParamConsumerUsageBits,
6934 mCodec->mInputFormat->setInt32(
6939 if (mCodec->mInputFormat->findBuffer("android._color-aspects", &colorAspectsBuffer)) {
6940 err = mCodec->mOMX->setInternalOption(
6941 mCodec->mNode, kPortIndexInput, IOMX::INTERNAL_OPTION_COLOR_ASPECTS,
6945 mCodec->mComponentName.c_str(), err);
6956 sp<AMessage> notify = mCodec->mNotify->dup();
6961 mCodec->setInitialColorAspectsForVideoEncoderSurfaceAndGetDataSpace(&dataSpace);
6962 notify->setMessage("input-format", mCodec->mInputFormat);
6963 notify->setMessage("output-format", mCodec->mOutputFormat);
6967 mCodec->mInputMetadataType = kMetadataBufferTypeANWBuffer;
6968 err = mCodec->mOMX->createInputSurface(
6969 mCodec->mNode, kPortIndexInput, dataSpace, &bufferProducer,
6970 &mCodec->mInputMetadataType);
6972 if (mCodec->mInputMetadataType == kMetadataBufferTypeGrallocSource) {
6973 mCodec->mInputMetadataType = kMetadataBufferTypeANWBuffer;
6985 // Can't use mCodec->signalError() here -- MediaCodec won't forward
6989 mCodec->mComponentName.c_str(), err);
6999 sp<AMessage> notify = mCodec->mNotify->dup();
7008 mCodec->setInitialColorAspectsForVideoEncoderSurfaceAndGetDataSpace(&dataSpace);
7009 notify->setMessage("input-format", mCodec->mInputFormat);
7010 notify->setMessage("output-format", mCodec->mOutputFormat);
7013 mCodec->mInputMetadataType = kMetadataBufferTypeANWBuffer;
7014 err = mCodec->mOMX->setInputSurface(
7015 mCodec->mNode, kPortIndexInput, surface->getBufferConsumer(),
7016 &mCodec->mInputMetadataType);
7018 if (mCodec->mInputMetadataType == kMetadataBufferTypeGrallocSource) {
7019 mCodec->mInputMetadataType = kMetadataBufferTypeANWBuffer;
7029 // Can't use mCodec->signalError() here -- MediaCodec won't forward
7033 mCodec->mComponentName.c_str(), err);
7042 status_t err = mCodec->mOMX->sendCommand(mCodec->mNode, OMX_CommandStateSet, OMX_StateIdle);
7044 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
7046 mCodec->changeState(mCodec->mLoadedToIdleState);
7057 ALOGV("[%s] Now Loaded->Idle", mCodec->mComponentName.c_str());
7065 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
7067 mCodec->mOMX->sendCommand(
7068 mCodec->mNode, OMX_CommandStateSet, OMX_StateLoaded);
7069 if (mCodec->allYourBuffersAreBelongToUs(kPortIndexInput)) {
7070 mCodec->freeBuffersOnPort(kPortIndexInput);
7072 if (mCodec->allYourBuffersAreBelongToUs(kPortIndexOutput)) {
7073 mCodec->freeBuffersOnPort(kPortIndexOutput);
7076 mCodec->changeState(mCodec->mLoadedState);
7081 status_t err = mCodec->allocateBuffersOnPort(kPortIndexInput);
7087 return mCodec->allocateBuffersOnPort(kPortIndexOutput);
7095 mCodec->deferMessage(msg);
7101 mCodec->onSignalEndOfInputStream();
7114 sp<AMessage> notify = mCodec->mNotify->dup();
7140 err = mCodec->mOMX->sendCommand(
7141 mCodec->mNode, OMX_CommandStateSet, OMX_StateExecuting);
7145 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
7147 mCodec->changeState(mCodec->mIdleToExecutingState);
7165 ALOGV("[%s] Now Idle->Executing", mCodec->mComponentName.c_str());
7173 mCodec->deferMessage(msg);
7186 sp<AMessage> notify = mCodec->mNotify->dup();
7195 mCodec->onSignalEndOfInputStream();
7214 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
7218 mCodec->mExecutingState->resume();
7219 mCodec->changeState(mCodec->mExecutingState);
7244 for (size_t i = 0; i < mCodec->mBuffers[kPortIndexInput].size(); ++i) {
7245 BufferInfo *info = &mCodec->mBuffers[kPortIndexInput].editItemAt(i);
7248 if (mCodec->submitOutputMetadataBuffer() != OK)
7254 mCodec->signalSubmitOutputMetadataBufferIfEOS_workaround();
7259 for (size_t i = 0; i < mCodec->mBuffers[kPortIndexOutput].size(); ++i) {
7260 BufferInfo *info = &mCodec->mBuffers[kPortIndexOutput].editItemAt(i);
7262 if (mCodec->mNativeWindow != NULL) {
7281 ALOGV("[%s] calling fillBuffer %u", mCodec->mComponentName.c_str(), info->mBufferID);
7284 status_t err = mCodec->mOMX->fillBuffer(mCodec->mNode, info->mBufferID, info->mFenceFd);
7295 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
7301 if (mCodec->storingMetadataInDecodedBuffers()) {
7308 ALOGV("[%s] We're already active, no need to resume.", mCodec->mComponentName.c_str());
7315 if (mCodec->mBuffers[kPortIndexInput].size() == 0u) {
7316 ALOGW("[%s] we don't have any input buffers to resume", mCodec->mComponentName.c_str());
7319 for (size_t i = 0; i < mCodec->mBuffers[kPortIndexInput].size(); i++) {
7320 BufferInfo *info = &mCodec->mBuffers[kPortIndexInput].editItemAt(i);
7330 ALOGV("[%s] Now Executing", mCodec->mComponentName.c_str());
7332 mCodec->mRenderTracker.clear(systemTime(CLOCK_MONOTONIC));
7333 mCodec->processDeferredMessages();
7346 mCodec->mShutdownInProgress = true;
7347 mCodec->mExplicitShutdown = true;
7348 mCodec->mKeepComponentAllocated = keepComponentAllocated;
7352 status_t err = mCodec->mOMX->sendCommand(
7353 mCodec->mNode, OMX_CommandStateSet, OMX_StateIdle);
7356 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
7360 mCodec->changeState(mCodec->mExecutingToIdleState);
7371 mCodec->mComponentName.c_str(),
7372 mCodec->countBuffersOwnedByComponent(kPortIndexInput),
7373 mCodec->mBuffers[kPortIndexInput].size(),
7374 mCodec->countBuffersOwnedByComponent(kPortIndexOutput),
7375 mCodec->mBuffers[kPortIndexOutput].size());
7379 status_t err = mCodec->mOMX->sendCommand(mCodec->mNode, OMX_CommandFlush, OMX_ALL);
7381 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
7383 mCodec->changeState(mCodec->mFlushingState);
7400 status_t err = mCodec->requestIDRFrame();
7414 status_t err = mCodec->setParameters(params);
7428 mCodec->onSignalEndOfInputStream();
7436 if (mCodec->mPortEOS[kPortIndexInput] &&
7437 !mCodec->mPortEOS[kPortIndexOutput]) {
7438 status_t err = mCodec->submitOutputMetadataBuffer();
7440 mCodec->signalSubmitOutputMetadataBufferIfEOS_workaround();
7577 mCodec->onFrameRendered(mediaTimeUs, systemNano);
7588 mCodec->onOutputFormatChanged();
7591 mCodec->mMetadataBuffersToSubmit = 0;
7592 CHECK_EQ(mCodec->mOMX->sendCommand(
7593 mCodec->mNode,
7597 mCodec->freeOutputBuffersNotOwnedByComponent();
7599 mCodec->changeState(mCodec->mOutputPortSettingsChangedState);
7603 mCodec->mComponentName.c_str(), data2);
7648 ALOGV("[%s] Deferring resume", mCodec->mComponentName.c_str());
7651 mCodec->deferMessage(msg);
7666 mCodec->mComponentName.c_str());
7671 mCodec->onFrameRendered(mediaTimeUs, systemNano);
7686 ALOGV("[%s] Output port now disabled.", mCodec->mComponentName.c_str());
7689 if (!mCodec->mBuffers[kPortIndexOutput].isEmpty()) {
7691 mCodec->mBuffers[kPortIndexOutput].size());
7694 mCodec->mDealer[kPortIndexOutput].clear();
7698 err = mCodec->mOMX->sendCommand(
7699 mCodec->mNode, OMX_CommandPortEnable, kPortIndexOutput);
7703 err = mCodec->allocateBuffersOnPort(kPortIndexOutput);
7709 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
7716 mCodec->mShutdownInProgress = true;
7717 mCodec->mKeepComponentAllocated = false;
7718 mCodec->changeState(mCodec->mLoadedState);
7728 ALOGV("[%s] Output port now reenabled.", mCodec->mComponentName.c_str());
7730 if (mCodec->mExecutingState->active()) {
7731 mCodec->mExecutingState->submitOutputBuffers();
7734 mCodec->changeState(mCodec->mExecutingState);
7783 ALOGV("[%s] Now Executing->Idle", mCodec->mComponentName.c_str());
7786 mCodec->mLastOutputFormat.clear();
7799 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
7823 if (mComponentNowIdle && mCodec->allYourBuffersAreBelongToUs()) {
7824 status_t err = mCodec->mOMX->sendCommand(
7825 mCodec->mNode, OMX_CommandStateSet, OMX_StateLoaded);
7827 err = mCodec->freeBuffersOnPort(kPortIndexInput);
7828 status_t err2 = mCodec->freeBuffersOnPort(kPortIndexOutput);
7834 if ((mCodec->mFlags & kFlagPushBlankBuffersToNativeWindowOnShutdown)
7835 && mCodec->mNativeWindow != NULL) {
7840 pushBlankBuffersToNativeWindow(mCodec->mNativeWindow.get());
7844 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
7848 mCodec->changeState(mCodec->mIdleToLoadedState);
7901 ALOGV("[%s] Now Idle->Loaded", mCodec->mComponentName.c_str());
7914 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
7918 mCodec->changeState(mCodec->mLoadedState);
7935 ALOGV("[%s] Now Flushing", mCodec->mComponentName.c_str());
7946 mCodec->deferMessage(msg);
7968 mCodec->mComponentName.c_str(), event, (OMX_S32)data1);
7976 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
8009 sp<AMessage> msg = new AMessage(kWhatOMXMessage, mCodec);
8011 msg->setInt32("node", mCodec->mNode);
8017 mCodec->mComponentName.c_str());
8019 mCodec->deferMessage(msg);
8046 && mCodec->allYourBuffersAreBelongToUs()) {
8049 mCodec->waitUntilAllPossibleNativeWindowBuffersAreReturnedToUs();
8051 mCodec->mRenderTracker.clear(systemTime(CLOCK_MONOTONIC));
8053 sp<AMessage> notify = mCodec->mNotify->dup();
8057 mCodec->mPortEOS[kPortIndexInput] =
8058 mCodec->mPortEOS[kPortIndexOutput] = false;
8060 mCodec->mInputEOSResult = OK;
8062 if (mCodec->mSkipCutBuffer != NULL) {
8063 mCodec->mSkipCutBuffer->clear();
8066 mCodec->changeState(mCodec->mExecutingState);