Loading media/libstagefright/codecs/m4v_h263/dec/SoftMPEG4.cpp +19 −4 Original line number Original line Diff line number Diff line Loading @@ -255,13 +255,28 @@ void SoftMPEG4::onQueueFilled(OMX_U32 /* portIndex */) { mSignalledError = true; mSignalledError = true; return; return; } } // Need to check if header contains new info, e.g., width/height, etc. VopHeaderInfo header_info; uint8_t *bitstreamTmp = bitstream; if (PVDecodeVopHeader( mHandle, &bitstreamTmp, ×tamp, &tmp, &header_info, &useExtTimestamp, outHeader->pBuffer) != PV_TRUE) { ALOGE("failed to decode vop header."); notify(OMX_EventError, OMX_ErrorUndefined, 0, NULL); mSignalledError = true; return; } if (handlePortSettingsChange()) { return; } // The PV decoder is lying to us, sometimes it'll claim to only have // 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. // consumed a subset of the buffer when it clearly consumed all of it. // ignore whatever it says... // ignore whatever it says... if (PVDecodeVideoFrame( if (PVDecodeVopBody(mHandle, &tmp) != PV_TRUE) { mHandle, &bitstream, ×tamp, &tmp, &useExtTimestamp, outHeader->pBuffer) != PV_TRUE) { ALOGE("failed to decode video frame."); ALOGE("failed to decode video frame."); notify(OMX_EventError, OMX_ErrorUndefined, 0, NULL); notify(OMX_EventError, OMX_ErrorUndefined, 0, NULL); Loading Loading
media/libstagefright/codecs/m4v_h263/dec/SoftMPEG4.cpp +19 −4 Original line number Original line Diff line number Diff line Loading @@ -255,13 +255,28 @@ void SoftMPEG4::onQueueFilled(OMX_U32 /* portIndex */) { mSignalledError = true; mSignalledError = true; return; return; } } // Need to check if header contains new info, e.g., width/height, etc. VopHeaderInfo header_info; uint8_t *bitstreamTmp = bitstream; if (PVDecodeVopHeader( mHandle, &bitstreamTmp, ×tamp, &tmp, &header_info, &useExtTimestamp, outHeader->pBuffer) != PV_TRUE) { ALOGE("failed to decode vop header."); notify(OMX_EventError, OMX_ErrorUndefined, 0, NULL); mSignalledError = true; return; } if (handlePortSettingsChange()) { return; } // The PV decoder is lying to us, sometimes it'll claim to only have // 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. // consumed a subset of the buffer when it clearly consumed all of it. // ignore whatever it says... // ignore whatever it says... if (PVDecodeVideoFrame( if (PVDecodeVopBody(mHandle, &tmp) != PV_TRUE) { mHandle, &bitstream, ×tamp, &tmp, &useExtTimestamp, outHeader->pBuffer) != PV_TRUE) { ALOGE("failed to decode video frame."); ALOGE("failed to decode video frame."); notify(OMX_EventError, OMX_ErrorUndefined, 0, NULL); notify(OMX_EventError, OMX_ErrorUndefined, 0, NULL); Loading