diff options
| -rw-r--r-- | media/libstagefright/codecs/m4v_h263/dec/SoftMPEG4.cpp | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/media/libstagefright/codecs/m4v_h263/dec/SoftMPEG4.cpp b/media/libstagefright/codecs/m4v_h263/dec/SoftMPEG4.cpp index ddced5f..aa07e57 100644 --- a/media/libstagefright/codecs/m4v_h263/dec/SoftMPEG4.cpp +++ b/media/libstagefright/codecs/m4v_h263/dec/SoftMPEG4.cpp @@ -421,8 +421,13 @@ void SoftMPEG4::onQueueFilled(OMX_U32 portIndex) {          int32_t bufferSize = inHeader->nFilledLen; +        // The PV decoder is lying to us, sometimes it'll claim to only have +        // consumed a subset of the buffer when it clearly consumed all of it. +        // ignore whatever it says... +        int32_t tmp = bufferSize; +          if (PVDecodeVideoFrame( -                    mHandle, &bitstream, ×tamp, &bufferSize, +                    mHandle, &bitstream, ×tamp, &tmp,                      &useExtTimestamp,                      outHeader->pBuffer) != PV_TRUE) {              LOGE("failed to decode video frame.");  | 
