summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MediaCodecSource.cpp
diff options
context:
space:
mode:
authorDhanalakshmi Siddani <dsiddani@codeaurora.org>2015-07-01 14:34:44 +0530
committerLinux Build Service Account <lnxbuild@localhost>2015-10-06 03:24:36 -0600
commit1ea539f4af155d3acc635e59cbdafab255b06c54 (patch)
treef55aab4c1c4181889d6349424ac42760ebc20f8d /media/libstagefright/MediaCodecSource.cpp
parent390aa8dd83078bad748582ce275bded14868d1ac (diff)
downloadframeworks_av-1ea539f4af155d3acc635e59cbdafab255b06c54.zip
frameworks_av-1ea539f4af155d3acc635e59cbdafab255b06c54.tar.gz
frameworks_av-1ea539f4af155d3acc635e59cbdafab255b06c54.tar.bz2
Audio: post error to client during SSR
- Add support to post error to client if SSR is triggered during NT mode encoding Change-Id: Idf10939f1eb0c719a692e4f53f6e3040633fab40
Diffstat (limited to 'media/libstagefright/MediaCodecSource.cpp')
-rw-r--r--media/libstagefright/MediaCodecSource.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/media/libstagefright/MediaCodecSource.cpp b/media/libstagefright/MediaCodecSource.cpp
index 7f9f824..16a1931 100644
--- a/media/libstagefright/MediaCodecSource.cpp
+++ b/media/libstagefright/MediaCodecSource.cpp
@@ -36,6 +36,7 @@
#include <media/stagefright/MetaData.h>
#include <media/stagefright/PersistentSurface.h>
#include <media/stagefright/Utils.h>
+#include <OMX_Core.h>
namespace android {
@@ -514,6 +515,9 @@ void MediaCodecSource::signalEOS(status_t err) {
mOutputBufferQueue.clear();
mEncoderReachedEOS = true;
mErrorCode = err;
+ if (err == OMX_ErrorHardware) {
+ mErrorCode = ERROR_IO;
+ }
mOutputBufferCond.signal();
}
@@ -591,7 +595,7 @@ status_t MediaCodecSource::feedEncoderInputBuffers() {
status_t err = mEncoder->getInputBuffer(bufferIndex, &inbuf);
if (err != OK || inbuf == NULL) {
mbuf->release();
- signalEOS();
+ signalEOS(err);
break;
}
@@ -738,7 +742,7 @@ void MediaCodecSource::onMessageReceived(const sp<AMessage> &msg) {
sp<ABuffer> outbuf;
status_t err = mEncoder->getOutputBuffer(index, &outbuf);
if (err != OK || outbuf == NULL) {
- signalEOS();
+ signalEOS(err);
break;
}
@@ -799,7 +803,7 @@ void MediaCodecSource::onMessageReceived(const sp<AMessage> &msg) {
CHECK(msg->findInt32("err", &err));
ALOGE("Encoder (%s) reported error : 0x%x",
mIsVideo ? "video" : "audio", err);
- signalEOS();
+ signalEOS(err);
}
break;
}