Loading include/media/stagefright/ACodec.h +1 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,7 @@ private: Vector<BufferInfo> mBuffers[2]; bool mPortEOS[2]; status_t mInputEOSResult; List<sp<AMessage> > mDeferredQueue; Loading media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,11 @@ bool NuPlayer::HTTPLiveSource::feedMoreTSData() { if (n == -EWOULDBLOCK) { break; } else if (n < 0) { if (n != ERROR_END_OF_STREAM) { LOGI("input data EOS reached, error %d", n); } else { LOGI("input data EOS reached."); } mTSParser->signalEOS(n); mEOS = true; break; Loading media/libmediaplayerservice/nuplayer/NuPlayer.cpp +13 −2 Original line number Diff line number Diff line Loading @@ -272,7 +272,18 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { } } } else if (what == ACodec::kWhatEOS) { mRenderer->queueEOS(audio, ERROR_END_OF_STREAM); int32_t err; CHECK(codecRequest->findInt32("err", &err)); if (err == ERROR_END_OF_STREAM) { LOGV("got %s decoder EOS", audio ? "audio" : "video"); } else { LOGV("got %s decoder EOS w/ error %d", audio ? "audio" : "video", err); } mRenderer->queueEOS(audio, err); } else if (what == ACodec::kWhatFlushCompleted) { bool needShutdown; Loading Loading @@ -397,7 +408,7 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { if (finalResult == ERROR_END_OF_STREAM) { LOGV("reached %s EOS", audio ? "audio" : "video"); } else { LOGE("%s track encountered an error (0x%08x)", LOGE("%s track encountered an error (%d)", audio ? "audio" : "video", finalResult); notifyListener( Loading media/libstagefright/ACodec.cpp +19 −3 Original line number Diff line number Diff line Loading @@ -323,6 +323,7 @@ ACodec::ACodec() mFlushingState = new FlushingState(this); mPortEOS[kPortIndexInput] = mPortEOS[kPortIndexOutput] = false; mInputEOSResult = OK; changeState(mUninitializedState); } Loading Loading @@ -1347,7 +1348,10 @@ void ACodec::BaseState::onInputBufferFilled(const sp<AMessage> &msg) { case KEEP_BUFFERS: { if (buffer == NULL) { if (!mCodec->mPortEOS[kPortIndexInput]) { mCodec->mPortEOS[kPortIndexInput] = true; mCodec->mInputEOSResult = err; } } break; } Loading Loading @@ -1398,8 +1402,14 @@ void ACodec::BaseState::onInputBufferFilled(const sp<AMessage> &msg) { getMoreInputDataIfPossible(); } else if (!mCodec->mPortEOS[kPortIndexInput]) { if (err != ERROR_END_OF_STREAM) { LOGV("[%s] Signalling EOS on the input port " "due to error %d", mCodec->mComponentName.c_str(), err); } else { LOGV("[%s] Signalling EOS on the input port", mCodec->mComponentName.c_str()); } LOGV("[%s] calling emptyBuffer %p signalling EOS", mCodec->mComponentName.c_str(), bufferID); Loading @@ -1416,6 +1426,7 @@ void ACodec::BaseState::onInputBufferFilled(const sp<AMessage> &msg) { info->mStatus = BufferInfo::OWNED_BY_COMPONENT; mCodec->mPortEOS[kPortIndexInput] = true; mCodec->mInputEOSResult = err; } break; Loading Loading @@ -1523,6 +1534,7 @@ bool ACodec::BaseState::onOMXFillBufferDone( if (flags & OMX_BUFFERFLAG_EOS) { sp<AMessage> notify = mCodec->mNotify->dup(); notify->setInt32("what", ACodec::kWhatEOS); notify->setInt32("err", mCodec->mInputEOSResult); notify->post(); mCodec->mPortEOS[kPortIndexOutput] = true; Loading Loading @@ -1721,6 +1733,8 @@ void ACodec::UninitializedState::onSetup( mCodec->mPortEOS[kPortIndexInput] = mCodec->mPortEOS[kPortIndexOutput] = false; mCodec->mInputEOSResult = OK; mCodec->configureCodec(mime.c_str(), msg); sp<RefBase> obj; Loading Loading @@ -2371,6 +2385,8 @@ void ACodec::FlushingState::changeStateIfWeOwnAllBuffers() { mCodec->mPortEOS[kPortIndexInput] = mCodec->mPortEOS[kPortIndexOutput] = false; mCodec->mInputEOSResult = OK; mCodec->changeState(mCodec->mExecutingState); } } Loading Loading
include/media/stagefright/ACodec.h +1 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,7 @@ private: Vector<BufferInfo> mBuffers[2]; bool mPortEOS[2]; status_t mInputEOSResult; List<sp<AMessage> > mDeferredQueue; Loading
media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -110,7 +110,11 @@ bool NuPlayer::HTTPLiveSource::feedMoreTSData() { if (n == -EWOULDBLOCK) { break; } else if (n < 0) { if (n != ERROR_END_OF_STREAM) { LOGI("input data EOS reached, error %d", n); } else { LOGI("input data EOS reached."); } mTSParser->signalEOS(n); mEOS = true; break; Loading
media/libmediaplayerservice/nuplayer/NuPlayer.cpp +13 −2 Original line number Diff line number Diff line Loading @@ -272,7 +272,18 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { } } } else if (what == ACodec::kWhatEOS) { mRenderer->queueEOS(audio, ERROR_END_OF_STREAM); int32_t err; CHECK(codecRequest->findInt32("err", &err)); if (err == ERROR_END_OF_STREAM) { LOGV("got %s decoder EOS", audio ? "audio" : "video"); } else { LOGV("got %s decoder EOS w/ error %d", audio ? "audio" : "video", err); } mRenderer->queueEOS(audio, err); } else if (what == ACodec::kWhatFlushCompleted) { bool needShutdown; Loading Loading @@ -397,7 +408,7 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { if (finalResult == ERROR_END_OF_STREAM) { LOGV("reached %s EOS", audio ? "audio" : "video"); } else { LOGE("%s track encountered an error (0x%08x)", LOGE("%s track encountered an error (%d)", audio ? "audio" : "video", finalResult); notifyListener( Loading
media/libstagefright/ACodec.cpp +19 −3 Original line number Diff line number Diff line Loading @@ -323,6 +323,7 @@ ACodec::ACodec() mFlushingState = new FlushingState(this); mPortEOS[kPortIndexInput] = mPortEOS[kPortIndexOutput] = false; mInputEOSResult = OK; changeState(mUninitializedState); } Loading Loading @@ -1347,7 +1348,10 @@ void ACodec::BaseState::onInputBufferFilled(const sp<AMessage> &msg) { case KEEP_BUFFERS: { if (buffer == NULL) { if (!mCodec->mPortEOS[kPortIndexInput]) { mCodec->mPortEOS[kPortIndexInput] = true; mCodec->mInputEOSResult = err; } } break; } Loading Loading @@ -1398,8 +1402,14 @@ void ACodec::BaseState::onInputBufferFilled(const sp<AMessage> &msg) { getMoreInputDataIfPossible(); } else if (!mCodec->mPortEOS[kPortIndexInput]) { if (err != ERROR_END_OF_STREAM) { LOGV("[%s] Signalling EOS on the input port " "due to error %d", mCodec->mComponentName.c_str(), err); } else { LOGV("[%s] Signalling EOS on the input port", mCodec->mComponentName.c_str()); } LOGV("[%s] calling emptyBuffer %p signalling EOS", mCodec->mComponentName.c_str(), bufferID); Loading @@ -1416,6 +1426,7 @@ void ACodec::BaseState::onInputBufferFilled(const sp<AMessage> &msg) { info->mStatus = BufferInfo::OWNED_BY_COMPONENT; mCodec->mPortEOS[kPortIndexInput] = true; mCodec->mInputEOSResult = err; } break; Loading Loading @@ -1523,6 +1534,7 @@ bool ACodec::BaseState::onOMXFillBufferDone( if (flags & OMX_BUFFERFLAG_EOS) { sp<AMessage> notify = mCodec->mNotify->dup(); notify->setInt32("what", ACodec::kWhatEOS); notify->setInt32("err", mCodec->mInputEOSResult); notify->post(); mCodec->mPortEOS[kPortIndexOutput] = true; Loading Loading @@ -1721,6 +1733,8 @@ void ACodec::UninitializedState::onSetup( mCodec->mPortEOS[kPortIndexInput] = mCodec->mPortEOS[kPortIndexOutput] = false; mCodec->mInputEOSResult = OK; mCodec->configureCodec(mime.c_str(), msg); sp<RefBase> obj; Loading Loading @@ -2371,6 +2385,8 @@ void ACodec::FlushingState::changeStateIfWeOwnAllBuffers() { mCodec->mPortEOS[kPortIndexInput] = mCodec->mPortEOS[kPortIndexOutput] = false; mCodec->mInputEOSResult = OK; mCodec->changeState(mCodec->mExecutingState); } } Loading