diff options
author | Lajos Molnar <lajos@google.com> | 2013-11-04 21:59:11 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-11-04 21:59:11 -0800 |
commit | 21264c4f0de2e2e74a62290a4aaafea4cc865528 (patch) | |
tree | 5b7d6564e7241c0c7d6a07e3bf7df6a5470d9c8e /media | |
parent | 1c7258b3c34b5656de92d845f6366a0f3ac1e0c6 (diff) | |
parent | 2922d230155cb1be7acc0c11bef6f0ca0345bdb7 (diff) | |
download | frameworks_av-21264c4f0de2e2e74a62290a4aaafea4cc865528.zip frameworks_av-21264c4f0de2e2e74a62290a4aaafea4cc865528.tar.gz frameworks_av-21264c4f0de2e2e74a62290a4aaafea4cc865528.tar.bz2 |
am 2922d230: am 065789f2: Merge "Restore NuPlayer error and EOS handling" into klp-dev
* commit '2922d230155cb1be7acc0c11bef6f0ca0345bdb7':
Restore NuPlayer error and EOS handling
Diffstat (limited to 'media')
-rw-r--r-- | media/libstagefright/ACodec.cpp | 11 | ||||
-rw-r--r-- | media/libstagefright/MediaCodec.cpp | 3 |
2 files changed, 10 insertions, 4 deletions
diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp index 901533c..a63a692 100644 --- a/media/libstagefright/ACodec.cpp +++ b/media/libstagefright/ACodec.cpp @@ -3074,11 +3074,16 @@ void ACodec::BaseState::onInputBufferFilled(const sp<AMessage> &msg) { /* these are unfilled buffers returned by client */ CHECK(msg->findInt32("err", &err)); - ALOGV("[%s] saw error %d instead of an input buffer", - mCodec->mComponentName.c_str(), err); + if (err == OK) { + /* buffers with no errors are returned on MediaCodec.flush */ + mode = KEEP_BUFFERS; + } else { + ALOGV("[%s] saw error %d instead of an input buffer", + mCodec->mComponentName.c_str(), err); + eos = true; + } buffer.clear(); - mode = KEEP_BUFFERS; } int32_t tmp; diff --git a/media/libstagefright/MediaCodec.cpp b/media/libstagefright/MediaCodec.cpp index e299caf..8af1aaf 100644 --- a/media/libstagefright/MediaCodec.cpp +++ b/media/libstagefright/MediaCodec.cpp @@ -1506,7 +1506,8 @@ void MediaCodec::returnBuffersToCodecOnPort(int32_t portIndex) { info->mOwnedByClient = false; if (portIndex == kPortIndexInput) { - msg->setInt32("err", ERROR_END_OF_STREAM); + /* no error, just returning buffers */ + msg->setInt32("err", OK); } msg->post(); } |