Lines Matching defs:mCodec

225     ACodec *mCodec;
4522 mCodec(codec) {
4568 status_t err = mCodec->handleSetSurface(static_cast<Surface *>(obj.get()));
4582 mCodec->signalError(OMX_ErrorUndefined, INVALID_OPERATION);
4590 mCodec->signalError(OMX_ErrorResourcesLost, DEAD_OBJECT);
4597 mCodec->mComponentName.c_str());
4598 status_t err = mCodec->mOMX->freeNode(mCodec->mNode);
4600 mCodec->mComponentName.c_str(), err);
4601 sp<AMessage> notify = mCodec->mNotify->dup();
4617 if (mCodec->mNode == 0) {
4625 if (nodeID != mCodec->mNode) {
4626 ALOGE("Unexpected message for nodeID: %u, should have been %u", nodeID, mCodec->mNode);
4641 mCodec->handleMessage(*it);
4651 mCodec->notifyOfRenderedFrames();
4745 mCodec->mComponentName.c_str(), event, data1, data2);
4750 ALOGE("[%s] ERROR(0x%08x)", mCodec->mComponentName.c_str(), data1);
4758 mCodec->signalError(omxError);
4765 mCodec->mComponentName.c_str(), bufferID);
4767 BufferInfo *info = mCodec->findBufferByID(kPortIndexInput, bufferID);
4771 mCodec->dumpBuffers(kPortIndexInput);
4780 (void)mCodec->waitForFence(fenceFd, "onOMXEmptyBufferDone");
4813 if (mCodec->mPortEOS[kPortIndexInput]) {
4819 sp<AMessage> notify = mCodec->mNotify->dup();
4826 sp<AMessage> reply = new AMessage(kWhatInputBufferFilled, mCodec);
4853 mCodec->mComponentName.c_str(), err);
4866 BufferInfo *info = mCodec->findBufferByID(kPortIndexInput, bufferID);
4870 mCodec->dumpBuffers(kPortIndexInput);
4871 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
4881 if (!mCodec->mPortEOS[kPortIndexInput]) {
4882 mCodec->mPortEOS[kPortIndexInput] = true;
4883 mCodec->mInputEOSResult = err;
4891 if (buffer != NULL && !mCodec->mPortEOS[kPortIndexInput]) {
4914 mCodec->mComponentName.c_str(),
4922 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
4930 mCodec->mComponentName.c_str(), bufferID);
4933 mCodec->mComponentName.c_str(), bufferID);
4937 mCodec->mComponentName.c_str(), bufferID, (long long)timeUs);
4940 mCodec->mComponentName.c_str(), bufferID, (long long)timeUs);
4948 mCodec->mBufferStats.add(timeUs, stats);
4951 if (mCodec->storingMetadataInDecodedBuffers()) {
4956 mCodec->mMetadataBuffersToSubmit,
4960 mCodec->submitOutputMetadataBuffer();
4964 status_t err2 = mCodec->mOMX->emptyBuffer(
4965 mCodec->mNode,
4974 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err2));
4983 mCodec->mComponentName.c_str(), err);
4985 mCodec->mPortEOS[kPortIndexInput] = true;
4986 mCodec->mInputEOSResult = err;
4988 } else if (!mCodec->mPortEOS[kPortIndexInput]) {
4991 mCodec->mComponentName.c_str(), err);
4994 mCodec->mComponentName.c_str());
4998 mCodec->mComponentName.c_str(), bufferID);
5001 status_t err2 = mCodec->mOMX->emptyBuffer(
5002 mCodec->mNode,
5011 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err2));
5016 mCodec->mPortEOS[kPortIndexInput] = true;
5017 mCodec->mInputEOSResult = err;
5032 if (mCodec->mPortEOS[kPortIndexInput]) {
5038 for (size_t i = 0; i < mCodec->mBuffers[kPortIndexInput].size(); ++i) {
5039 BufferInfo *info = &mCodec->mBuffers[kPortIndexInput].editItemAt(i);
5067 mCodec->mComponentName.c_str(), bufferID, timeUs, flags);
5073 index = mCodec->mBufferStats.indexOfKey(timeUs);
5075 ACodec::BufferStats *stats = &mCodec->mBufferStats.editValueAt(index);
5082 mCodec->mBufferStats.removeItemsAt(index);
5088 mCodec->findBufferByID(kPortIndexOutput, bufferID, &index);
5092 mCodec->dumpBuffers(kPortIndexOutput);
5093 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
5100 info->mDequeuedAt = ++mCodec->mDequeueCounter;
5109 mCodec->notifyOfRenderedFrames(true /* dropIncomplete */);
5113 if (mCodec->mNativeWindow == NULL) {
5114 (void)mCodec->waitForFence(fenceFd, "onOMXFillBufferDone");
5128 || mCodec->mPortEOS[kPortIndexOutput])) {
5130 mCodec->mComponentName.c_str(), info->mBufferID);
5132 err = mCodec->mOMX->fillBuffer(mCodec->mNode, info->mBufferID, info->mFenceFd);
5135 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
5144 new AMessage(kWhatOutputBufferDrained, mCodec);
5146 if (!mCodec->mSentFormat && rangeLength > 0) {
5147 mCodec->sendFormatChange(reply);
5149 if (mCodec->usingMetadataOnEncoderOutput()) {
5172 if (mCodec->mNativeWindow == NULL) {
5179 if (mCodec->mSkipCutBuffer != NULL) {
5180 mCodec->mSkipCutBuffer->submit(info->mData);
5184 sp<AMessage> notify = mCodec->mNotify->dup();
5199 ALOGV("[%s] saw output EOS", mCodec->mComponentName.c_str());
5201 sp<AMessage> notify = mCodec->mNotify->dup();
5203 notify->setInt32("err", mCodec->mInputEOSResult);
5206 mCodec->mPortEOS[kPortIndexOutput] = true;
5212 err = mCodec->freeBuffer(kPortIndexOutput, index);
5214 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
5231 BufferInfo *info = mCodec->findBufferByID(kPortIndexOutput, bufferID, &index);
5235 mCodec->dumpBuffers(kPortIndexOutput);
5236 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
5242 status_t err = native_window_set_crop(mCodec->mNativeWindow.get(), &crop);
5247 if (mCodec->mNativeWindow != NULL
5257 mCodec->mRenderTracker.onFrameQueued(
5271 err = native_window_set_buffers_timestamp(mCodec->mNativeWindow.get(), timestampNs);
5275 err = mCodec->mNativeWindow->queueBuffer(
5276 mCodec->mNativeWindow.get(), info->mGraphicBuffer.get(), info->mFenceFd);
5282 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
5288 if (mCodec->mNativeWindow != NULL &&
5308 info = mCodec->dequeueBufferFromNativeWindow();
5315 if (!mCodec->mPortEOS[kPortIndexOutput]) {
5320 info = mCodec->dequeueBufferFromNativeWindow();
5325 mCodec->mComponentName.c_str(), info->mBufferID);
5327 status_t err = mCodec->mOMX->fillBuffer(
5328 mCodec->mNode, info->mBufferID, info->mFenceFd);
5333 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
5342 status_t err = mCodec->freeBuffer(kPortIndexOutput, index);
5344 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
5365 IInterface::asBinder(mCodec->mOMX)->unlinkToDeath(mDeathNotifier);
5369 mCodec->mNativeWindow.clear();
5370 mCodec->mNativeWindowUsageBits = 0;
5371 mCodec->mNode = 0;
5372 mCodec->mOMX.clear();
5373 mCodec->mQuirks = 0;
5374 mCodec->mFlags = 0;
5375 mCodec->mInputMetadataType = kMetadataBufferTypeInvalid;
5376 mCodec->mOutputMetadataType = kMetadataBufferTypeInvalid;
5377 mCodec->mComponentName.clear();
5407 sp<AMessage> notify = mCodec->mNotify->dup();
5417 sp<AMessage> notify = mCodec->mNotify->dup();
5442 && mCodec->mLoadedState->onConfigureComponent(msg)) {
5443 mCodec->mLoadedState->onStart();
5450 CHECK(mCodec->mNode == 0);
5454 mCodec->signalError(OMX_ErrorUndefined, NO_INIT);
5460 sp<AMessage> notify = new AMessage(kWhatOMXDied, mCodec);
5532 mCodec->signalError((OMX_ERRORTYPE)err, makeNoSideEffectStatus(err));
5536 notify = new AMessage(kWhatOMXMessageList, mCodec);
5539 mCodec->mComponentName = componentName;
5540 mCodec->mRenderTracker.setComponentName(componentName);
5541 mCodec->mFlags = 0;
5544 mCodec->mFlags |= kFlagIsSecure;
5545 mCodec->mFlags |= kFlagIsGrallocUsageProtected;
5546 mCodec->mFlags |= kFlagPushBlankBuffersToNativeWindowOnShutdown;
5549 mCodec->mQuirks = quirks;
5550 mCodec->mOMX = omx;
5551 mCodec->mNode = node;
5554 sp<AMessage> notify = mCodec->mNotify->dup();
5556 notify->setString("componentName", mCodec->mComponentName.c_str());
5560 mCodec->changeState(mCodec->mLoadedState);
5572 ALOGV("[%s] Now Loaded", mCodec->mComponentName.c_str());
5574 mCodec->mPortEOS[kPortIndexInput] =
5575 mCodec->mPortEOS[kPortIndexOutput] = false;
5577 mCodec->mInputEOSResult = OK;
5579 mCodec->mDequeueCounter = 0;
5580 mCodec->mMetadataBuffersToSubmit = 0;
5581 mCodec->mRepeatFrameDelayUs = -1ll;
5582 mCodec->mInputFormat.clear();
5583 mCodec->mOutputFormat.clear();
5584 mCodec->mBaseOutputFormat.clear();
5586 if (mCodec->mShutdownInProgress) {
5587 bool keepComponentAllocated = mCodec->mKeepComponentAllocated;
5589 mCodec->mShutdownInProgress = false;
5590 mCodec->mKeepComponentAllocated = false;
5594 mCodec->mExplicitShutdown = false;
5596 mCodec->processDeferredMessages();
5601 (void)mCodec->mOMX->freeNode(mCodec->mNode);
5603 mCodec->changeState(mCodec->mUninitializedState);
5606 if (mCodec->mExplicitShutdown) {
5607 sp<AMessage> notify = mCodec->mNotify->dup();
5610 mCodec->mExplicitShutdown = false;
5652 mCodec->mExplicitShutdown = true;
5661 sp<AMessage> notify = mCodec->mNotify->dup();
5680 CHECK(mCodec->mNode != 0);
5687 err = mCodec->configureCodec(mime.c_str(), msg);
5691 mCodec->mComponentName.c_str(), err);
5693 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
5698 sp<AMessage> notify = mCodec->mNotify->dup();
5700 notify->setMessage("input-format", mCodec->mInputFormat);
5701 notify->setMessage("output-format", mCodec->mOutputFormat);
5711 if (mCodec->mRepeatFrameDelayUs > 0ll) {
5712 err = mCodec->mOMX->setInternalOption(
5713 mCodec->mNode,
5716 &mCodec->mRepeatFrameDelayUs,
5717 sizeof(mCodec->mRepeatFrameDelayUs));
5722 mCodec->mComponentName.c_str(),
5728 if (mCodec->mMaxPtsGapUs > 0ll) {
5729 err = mCodec->mOMX->setInternalOption(
5730 mCodec->mNode,
5733 &mCodec->mMaxPtsGapUs,
5734 sizeof(mCodec->mMaxPtsGapUs));
5738 mCodec->mComponentName.c_str(),
5744 if (mCodec->mMaxFps > 0) {
5745 err = mCodec->mOMX->setInternalOption(
5746 mCodec->mNode,
5749 &mCodec->mMaxFps,
5750 sizeof(mCodec->mMaxFps));
5754 mCodec->mComponentName.c_str(),
5760 if (mCodec->mTimePerCaptureUs > 0ll
5761 && mCodec->mTimePerFrameUs > 0ll) {
5763 timeLapse[0] = mCodec->mTimePerFrameUs;
5764 timeLapse[1] = mCodec->mTimePerCaptureUs;
5765 err = mCodec->mOMX->setInternalOption(
5766 mCodec->mNode,
5774 mCodec->mComponentName.c_str(),
5780 if (mCodec->mCreateInputBuffersSuspended) {
5782 err = mCodec->mOMX->setInternalOption(
5783 mCodec->mNode,
5791 mCodec->mComponentName.c_str(),
5798 if (mCodec->mOMX->getParameter(
5799 mCodec->mNode, (OMX_INDEXTYPE)OMX_IndexParamConsumerUsageBits,
5801 mCodec->mInputFormat->setInt32(
5812 sp<AMessage> notify = mCodec->mNotify->dup();
5816 status_t err = mCodec->mOMX->createInputSurface(
5817 mCodec->mNode, kPortIndexInput, &bufferProducer, &mCodec->mInputMetadataType);
5827 // Can't use mCodec->signalError() here -- MediaCodec won't forward
5831 mCodec->mComponentName.c_str(), err);
5841 sp<AMessage> notify = mCodec->mNotify->dup();
5848 status_t err = mCodec->mOMX->setInputSurface(
5849 mCodec->mNode, kPortIndexInput, surface->getBufferConsumer(),
5850 &mCodec->mInputMetadataType);
5857 // Can't use mCodec->signalError() here -- MediaCodec won't forward
5861 mCodec->mComponentName.c_str(), err);
5870 status_t err = mCodec->mOMX->sendCommand(mCodec->mNode, OMX_CommandStateSet, OMX_StateIdle);
5872 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
5874 mCodec->changeState(mCodec->mLoadedToIdleState);
5885 ALOGV("[%s] Now Loaded->Idle", mCodec->mComponentName.c_str());
5893 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
5895 mCodec->changeState(mCodec->mLoadedState);
5900 status_t err = mCodec->allocateBuffersOnPort(kPortIndexInput);
5906 return mCodec->allocateBuffersOnPort(kPortIndexOutput);
5914 mCodec->deferMessage(msg);
5920 mCodec->onSignalEndOfInputStream();
5933 sp<AMessage> notify = mCodec->mNotify->dup();
5959 err = mCodec->mOMX->sendCommand(
5960 mCodec->mNode, OMX_CommandStateSet, OMX_StateExecuting);
5964 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
5966 mCodec->changeState(mCodec->mIdleToExecutingState);
5984 ALOGV("[%s] Now Idle->Executing", mCodec->mComponentName.c_str());
5992 mCodec->deferMessage(msg);
6005 sp<AMessage> notify = mCodec->mNotify->dup();
6014 mCodec->onSignalEndOfInputStream();
6033 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
6037 mCodec->mExecutingState->resume();
6038 mCodec->changeState(mCodec->mExecutingState);
6063 for (size_t i = 0; i < mCodec->mBuffers[kPortIndexInput].size(); ++i) {
6064 BufferInfo *info = &mCodec->mBuffers[kPortIndexInput].editItemAt(i);
6067 if (mCodec->submitOutputMetadataBuffer() != OK)
6073 mCodec->signalSubmitOutputMetadataBufferIfEOS_workaround();
6078 for (size_t i = 0; i < mCodec->mBuffers[kPortIndexOutput].size(); ++i) {
6079 BufferInfo *info = &mCodec->mBuffers[kPortIndexOutput].editItemAt(i);
6081 if (mCodec->mNativeWindow != NULL) {
6100 ALOGV("[%s] calling fillBuffer %u", mCodec->mComponentName.c_str(), info->mBufferID);
6103 status_t err = mCodec->mOMX->fillBuffer(mCodec->mNode, info->mBufferID, info->mFenceFd);
6114 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
6120 if (mCodec->storingMetadataInDecodedBuffers()) {
6127 ALOGV("[%s] We're already active, no need to resume.", mCodec->mComponentName.c_str());
6134 if (mCodec->mBuffers[kPortIndexInput].size() == 0u) {
6135 ALOGW("[%s] we don't have any input buffers to resume", mCodec->mComponentName.c_str());
6138 for (size_t i = 0; i < mCodec->mBuffers[kPortIndexInput].size(); i++) {
6139 BufferInfo *info = &mCodec->mBuffers[kPortIndexInput].editItemAt(i);
6149 ALOGV("[%s] Now Executing", mCodec->mComponentName.c_str());
6151 mCodec->mRenderTracker.clear(systemTime(CLOCK_MONOTONIC));
6152 mCodec->processDeferredMessages();
6165 mCodec->mShutdownInProgress = true;
6166 mCodec->mExplicitShutdown = true;
6167 mCodec->mKeepComponentAllocated = keepComponentAllocated;
6171 status_t err = mCodec->mOMX->sendCommand(
6172 mCodec->mNode, OMX_CommandStateSet, OMX_StateIdle);
6175 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
6179 mCodec->changeState(mCodec->mExecutingToIdleState);
6190 mCodec->mComponentName.c_str(),
6191 mCodec->countBuffersOwnedByComponent(kPortIndexInput),
6192 mCodec->mBuffers[kPortIndexInput].size(),
6193 mCodec->countBuffersOwnedByComponent(kPortIndexOutput),
6194 mCodec->mBuffers[kPortIndexOutput].size());
6198 status_t err = mCodec->mOMX->sendCommand(mCodec->mNode, OMX_CommandFlush, OMX_ALL);
6200 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
6202 mCodec->changeState(mCodec->mFlushingState);
6219 status_t err = mCodec->requestIDRFrame();
6233 status_t err = mCodec->setParameters(params);
6247 mCodec->onSignalEndOfInputStream();
6255 if (mCodec->mPortEOS[kPortIndexInput] &&
6256 !mCodec->mPortEOS[kPortIndexOutput]) {
6257 status_t err = mCodec->submitOutputMetadataBuffer();
6259 mCodec->signalSubmitOutputMetadataBufferIfEOS_workaround();
6363 mCodec->onFrameRendered(mediaTimeUs, systemNano);
6375 mCodec->mMetadataBuffersToSubmit = 0;
6376 CHECK_EQ(mCodec->mOMX->sendCommand(
6377 mCodec->mNode,
6381 mCodec->freeOutputBuffersNotOwnedByComponent();
6383 mCodec->changeState(mCodec->mOutputPortSettingsChangedState);
6385 mCodec->mSentFormat = false;
6387 if (mCodec->mTunneled) {
6388 sp<AMessage> dummy = new AMessage(kWhatOutputBufferDrained, mCodec);
6389 mCodec->sendFormatChange(dummy);
6393 mCodec->mComponentName.c_str(), data2);
6438 ALOGV("[%s] Deferring resume", mCodec->mComponentName.c_str());
6441 mCodec->deferMessage(msg);
6456 mCodec->mComponentName.c_str());
6461 mCodec->onFrameRendered(mediaTimeUs, systemNano);
6476 ALOGV("[%s] Output port now disabled.", mCodec->mComponentName.c_str());
6479 if (!mCodec->mBuffers[kPortIndexOutput].isEmpty()) {
6481 mCodec->mBuffers[kPortIndexOutput].size());
6484 mCodec->mDealer[kPortIndexOutput].clear();
6488 err = mCodec->mOMX->sendCommand(
6489 mCodec->mNode, OMX_CommandPortEnable, kPortIndexOutput);
6493 err = mCodec->allocateBuffersOnPort(kPortIndexOutput);
6499 mCodec->signalError(OMX_ErrorUndefined, makeNoSideEffectStatus(err));
6506 mCodec->mShutdownInProgress = true;
6507 mCodec->mKeepComponentAllocated = false;
6508 mCodec->changeState(mCodec->mLoadedState);
6518 mCodec->mSentFormat = false;
6520 if (mCodec->mTunneled) {
6521 sp<AMessage> dummy = new AMessage(kWhatOutputBufferDrained, mCodec);
6522 mCodec->sendFormatChange(dummy);
6525 ALOGV("[%s] Output port now reenabled.", mCodec->mComponentName.c_str());
6527 if (mCodec->mExecutingState->active()) {
6528 mCodec->mExecutingState->submitOutputBuffers();
6531 mCodec->changeState(mCodec->mExecutingState);
6580 ALOGV("[%s] Now Executing->Idle", mCodec->mComponentName.c_str());
6583 mCodec->mSentFormat = false;
6596 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
6620 if (mComponentNowIdle && mCodec->allYourBuffersAreBelongToUs()) {
6621 status_t err = mCodec->mOMX->sendCommand(
6622 mCodec->mNode, OMX_CommandStateSet, OMX_StateLoaded);
6624 err = mCodec->freeBuffersOnPort(kPortIndexInput);
6625 status_t err2 = mCodec->freeBuffersOnPort(kPortIndexOutput);
6631 if ((mCodec->mFlags & kFlagPushBlankBuffersToNativeWindowOnShutdown)
6632 && mCodec->mNativeWindow != NULL) {
6637 pushBlankBuffersToNativeWindow(mCodec->mNativeWindow.get());
6641 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
6645 mCodec->changeState(mCodec->mIdleToLoadedState);
6698 ALOGV("[%s] Now Idle->Loaded", mCodec->mComponentName.c_str());
6711 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
6715 mCodec->changeState(mCodec->mLoadedState);
6732 ALOGV("[%s] Now Flushing", mCodec->mComponentName.c_str());
6743 mCodec->deferMessage(msg);
6765 mCodec->mComponentName.c_str(), event, (OMX_S32)data1);
6773 mCodec->signalError(OMX_ErrorUndefined, FAILED_TRANSACTION);
6806 sp<AMessage> msg = new AMessage(kWhatOMXMessage, mCodec);
6808 msg->setInt32("node", mCodec->mNode);
6814 mCodec->mComponentName.c_str());
6816 mCodec->deferMessage(msg);
6843 && mCodec->allYourBuffersAreBelongToUs()) {
6846 mCodec->waitUntilAllPossibleNativeWindowBuffersAreReturnedToUs();
6848 mCodec->mRenderTracker.clear(systemTime(CLOCK_MONOTONIC));
6850 sp<AMessage> notify = mCodec->mNotify->dup();
6854 mCodec->mPortEOS[kPortIndexInput] =
6855 mCodec->mPortEOS[kPortIndexOutput] = false;
6857 mCodec->mInputEOSResult = OK;
6859 if (mCodec->mSkipCutBuffer != NULL) {
6860 mCodec->mSkipCutBuffer->clear();
6863 mCodec->changeState(mCodec->mExecutingState);