From c60bc4a7e25f6784644b8f6acf07bae2c58863b3 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Mon, 4 Jan 2010 14:48:21 -0800 Subject: Fix avc software decoder to properly handle SEI nalType and access unit delimiter. --- media/libstagefright/codecs/avc/dec/AVCDecoder.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'media') 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(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; -- cgit v1.1