diff options
| author | Andreas Huber <andih@google.com> | 2010-09-16 11:36:12 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2010-09-16 11:36:12 -0700 |
| commit | 62d4ebc0423831dfd8165d359e5b809f00f60656 (patch) | |
| tree | e32b1eba0ce86a84faf2f26ba05cd8ff51605285 | |
| parent | a85c4f165137ab360879bd9129259690ab6ac05d (diff) | |
| parent | 49e1ae22801f5f9e620552ffd205b05a0d89f65f (diff) | |
| download | frameworks_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.cpp | 15 |
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; } |
