summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2010-09-16 11:36:12 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-09-16 11:36:12 -0700
commit62d4ebc0423831dfd8165d359e5b809f00f60656 (patch)
treee32b1eba0ce86a84faf2f26ba05cd8ff51605285
parenta85c4f165137ab360879bd9129259690ab6ac05d (diff)
parent49e1ae22801f5f9e620552ffd205b05a0d89f65f (diff)
downloadframeworks_base-62d4ebc0423831dfd8165d359e5b809f00f60656.zip
frameworks_base-62d4ebc0423831dfd8165d359e5b809f00f60656.tar.gz
frameworks_base-62d4ebc0423831dfd8165d359e5b809f00f60656.tar.bz2
am 49e1ae22: Merge "Sometimes the avc software decoder will signal that a frame is ready but then unexpectedly fail to return the frame... stop asserting on that and return an error instead." into gingerbread
Merge commit '49e1ae22801f5f9e620552ffd205b05a0d89f65f' into gingerbread-plus-aosp * commit '49e1ae22801f5f9e620552ffd205b05a0d89f65f': Sometimes the avc software decoder will signal that a frame is ready but then unexpectedly fail to return the frame... stop asserting on that and return an error instead.
-rw-r--r--media/libstagefright/codecs/avc/dec/AVCDecoder.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/media/libstagefright/codecs/avc/dec/AVCDecoder.cpp b/media/libstagefright/codecs/avc/dec/AVCDecoder.cpp
index 7154ba5..7483d60 100644
--- a/media/libstagefright/codecs/avc/dec/AVCDecoder.cpp
+++ b/media/libstagefright/codecs/avc/dec/AVCDecoder.cpp
@@ -317,7 +317,7 @@ status_t AVCDecoder::read(
&nalType, &nalRefIdc);
if (res != AVCDEC_SUCCESS) {
- LOGE("cannot determine nal type");
+ LOGV("cannot determine nal type");
} else if (nalType == AVC_NALTYPE_SPS || nalType == AVC_NALTYPE_PPS
|| (mSPSSeen && mPPSSeen)) {
switch (nalType) {
@@ -330,6 +330,7 @@ status_t AVCDecoder::read(
fragSize);
if (res != AVCDEC_SUCCESS) {
+ LOGV("PVAVCDecSeqParamSet returned error %d", res);
break;
}
@@ -396,6 +397,7 @@ status_t AVCDecoder::read(
fragSize);
if (res != AVCDEC_SUCCESS) {
+ LOGV("PVAVCDecPicParamSet returned error %d", res);
break;
}
@@ -418,8 +420,13 @@ status_t AVCDecoder::read(
AVCFrameIO Output;
Output.YCbCr[0] = Output.YCbCr[1] = Output.YCbCr[2] = NULL;
- CHECK_EQ(PVAVCDecGetOutput(mHandle, &index, &Release, &Output),
- AVCDEC_SUCCESS);
+ AVCDec_Status status =
+ PVAVCDecGetOutput(mHandle, &index, &Release, &Output);
+
+ if (status != AVCDEC_SUCCESS) {
+ LOGV("PVAVCDecGetOutput returned error %d", status);
+ break;
+ }
CHECK(index >= 0);
CHECK(index < (int32_t)mFrames.size());
@@ -466,7 +473,7 @@ status_t AVCDecoder::read(
err = OK;
} else {
- LOGV("failed to decode frame (res = %d)", res);
+ LOGV("PVAVCDecodeSlice returned error %d", res);
}
break;
}