diff options
Diffstat (limited to 'media/libstagefright/codecs/avc')
-rw-r--r-- | media/libstagefright/codecs/avc/dec/AVCDecoder.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/media/libstagefright/codecs/avc/dec/AVCDecoder.cpp b/media/libstagefright/codecs/avc/dec/AVCDecoder.cpp index 484c742..22e6188 100644 --- a/media/libstagefright/codecs/avc/dec/AVCDecoder.cpp +++ b/media/libstagefright/codecs/avc/dec/AVCDecoder.cpp @@ -262,6 +262,8 @@ status_t AVCDecoder::read( &nalType, &nalRefIdc); if (res != AVCDEC_SUCCESS) { + LOGE("cannot determine nal type"); + mInputBuffer->release(); mInputBuffer = NULL; @@ -375,18 +377,19 @@ status_t AVCDecoder::read( mInputBuffer->release(); mInputBuffer = NULL; - if (res == AVCDEC_PICTURE_READY) { + if (res == AVCDEC_PICTURE_READY || res == AVCDEC_SUCCESS) { *out = new MediaBuffer(0); return OK; } else { + LOGE("failed to decode frame (res = %d)", res); return UNKNOWN_ERROR; } } case AVC_NALTYPE_SEI: { - res = PVAVCDecodeSlice( + res = PVAVCDecSEI( mHandle, const_cast<uint8_t *>(inPtr), mInputBuffer->range_length()); @@ -404,6 +407,9 @@ status_t AVCDecoder::read( case AVC_NALTYPE_AUD: { + mInputBuffer->release(); + mInputBuffer = NULL; + *out = new MediaBuffer(0); return OK; |