Loading media/libstagefright/codecs/on2/dec/SoftVPX.cpp +14 −9 Original line number Diff line number Diff line Loading @@ -150,15 +150,20 @@ void SoftVPX::onQueueFilled(OMX_U32 /* portIndex */) { outHeader->nFilledLen = (outputBufferWidth() * outputBufferHeight() * 3) / 2; outHeader->nFlags = EOSseen ? OMX_BUFFERFLAG_EOS : 0; outHeader->nTimeStamp = inHeader->nTimeStamp; if (outHeader->nAllocLen >= outHeader->nFilledLen) { uint8_t *dst = outHeader->pBuffer; const uint8_t *srcY = (const uint8_t *)mImg->planes[PLANE_Y]; const uint8_t *srcU = (const uint8_t *)mImg->planes[PLANE_U]; const uint8_t *srcV = (const uint8_t *)mImg->planes[PLANE_V]; size_t srcYStride = mImg->stride[PLANE_Y]; size_t srcUStride = mImg->stride[PLANE_U]; size_t srcVStride = mImg->stride[PLANE_V]; const uint8_t *srcY = (const uint8_t *)mImg->planes[VPX_PLANE_Y]; const uint8_t *srcU = (const uint8_t *)mImg->planes[VPX_PLANE_U]; const uint8_t *srcV = (const uint8_t *)mImg->planes[VPX_PLANE_V]; size_t srcYStride = mImg->stride[VPX_PLANE_Y]; size_t srcUStride = mImg->stride[VPX_PLANE_U]; size_t srcVStride = mImg->stride[VPX_PLANE_V]; copyYV12FrameToOutputBuffer(dst, srcY, srcU, srcV, srcYStride, srcUStride, srcVStride); } else { ALOGE("b/27597103, buffer too small"); android_errorWriteLog(0x534e4554, "27597103"); outHeader->nFilledLen = 0; } mImg = NULL; outInfo->mOwnedByUs = false; Loading media/libstagefright/omx/OMX.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -172,7 +172,12 @@ void OMX::binderDied(const wp<IBinder> &the_late_who) { Mutex::Autolock autoLock(mLock); ssize_t index = mLiveNodes.indexOfKey(the_late_who); CHECK(index >= 0); if (index < 0) { ALOGE("b/27597103, nonexistent observer on binderDied"); android_errorWriteLog(0x534e4554, "27597103"); return; } instance = mLiveNodes.editValueAt(index); mLiveNodes.removeItemsAt(index); Loading Loading
media/libstagefright/codecs/on2/dec/SoftVPX.cpp +14 −9 Original line number Diff line number Diff line Loading @@ -150,15 +150,20 @@ void SoftVPX::onQueueFilled(OMX_U32 /* portIndex */) { outHeader->nFilledLen = (outputBufferWidth() * outputBufferHeight() * 3) / 2; outHeader->nFlags = EOSseen ? OMX_BUFFERFLAG_EOS : 0; outHeader->nTimeStamp = inHeader->nTimeStamp; if (outHeader->nAllocLen >= outHeader->nFilledLen) { uint8_t *dst = outHeader->pBuffer; const uint8_t *srcY = (const uint8_t *)mImg->planes[PLANE_Y]; const uint8_t *srcU = (const uint8_t *)mImg->planes[PLANE_U]; const uint8_t *srcV = (const uint8_t *)mImg->planes[PLANE_V]; size_t srcYStride = mImg->stride[PLANE_Y]; size_t srcUStride = mImg->stride[PLANE_U]; size_t srcVStride = mImg->stride[PLANE_V]; const uint8_t *srcY = (const uint8_t *)mImg->planes[VPX_PLANE_Y]; const uint8_t *srcU = (const uint8_t *)mImg->planes[VPX_PLANE_U]; const uint8_t *srcV = (const uint8_t *)mImg->planes[VPX_PLANE_V]; size_t srcYStride = mImg->stride[VPX_PLANE_Y]; size_t srcUStride = mImg->stride[VPX_PLANE_U]; size_t srcVStride = mImg->stride[VPX_PLANE_V]; copyYV12FrameToOutputBuffer(dst, srcY, srcU, srcV, srcYStride, srcUStride, srcVStride); } else { ALOGE("b/27597103, buffer too small"); android_errorWriteLog(0x534e4554, "27597103"); outHeader->nFilledLen = 0; } mImg = NULL; outInfo->mOwnedByUs = false; Loading
media/libstagefright/omx/OMX.cpp +6 −1 Original line number Diff line number Diff line Loading @@ -172,7 +172,12 @@ void OMX::binderDied(const wp<IBinder> &the_late_who) { Mutex::Autolock autoLock(mLock); ssize_t index = mLiveNodes.indexOfKey(the_late_who); CHECK(index >= 0); if (index < 0) { ALOGE("b/27597103, nonexistent observer on binderDied"); android_errorWriteLog(0x534e4554, "27597103"); return; } instance = mLiveNodes.editValueAt(index); mLiveNodes.removeItemsAt(index); Loading