Showing the changes to codec/decoder/plus/src/welsDecoderExt.cpp (1 of 1 file). Show all
Unified · Split
| @@ -400,11 +400,19 @@ DECODING_STATE CWelsDecoder::DecodeFrameNoDelay (const unsigned char* kpSrc, · 399 unmodified lines | |||
| 400 | SBufferInfo* pDstInfo) { | 400 | SBufferInfo* pDstInfo) { |
| 401 | int iRet; | 401 | int iRet; |
| 402 | SBufferInfo sTmpBufferInfo; | 402 | SBufferInfo sTmpBufferInfo; |
| 403 | unsigned char* ppTmpDst[3] = {NULL, NULL, NULL}; | ||
| 404 | |||
| 403 | iRet = (int) DecodeFrame2 (kpSrc, kiSrcLen, ppDst, pDstInfo); | 405 | iRet = (int) DecodeFrame2 (kpSrc, kiSrcLen, ppDst, pDstInfo); |
| 404 | memcpy (&sTmpBufferInfo, pDstInfo, sizeof (SBufferInfo)); | 406 | memcpy (&sTmpBufferInfo, pDstInfo, sizeof (SBufferInfo)); |
| 407 | ppTmpDst[0] = ppDst[0]; | ||
| 408 | ppTmpDst[1] = ppDst[1]; | ||
| 409 | ppTmpDst[2] = ppDst[2]; | ||
| 405 | iRet |= DecodeFrame2 (NULL, 0, ppDst, pDstInfo); | 410 | iRet |= DecodeFrame2 (NULL, 0, ppDst, pDstInfo); |
| 406 | if ((pDstInfo->iBufferStatus == 0) && (sTmpBufferInfo.iBufferStatus == 1)) { | 411 | if ((pDstInfo->iBufferStatus == 0) && (sTmpBufferInfo.iBufferStatus == 1)) { |
| 407 | memcpy (pDstInfo, &sTmpBufferInfo, sizeof (SBufferInfo)); | 412 | memcpy (pDstInfo, &sTmpBufferInfo, sizeof (SBufferInfo)); |
| 413 | ppDst[0] = ppTmpDst[0]; | ||
| 414 | ppDst[1] = ppTmpDst[1]; | ||
| 415 | ppDst[2] = ppTmpDst[2]; | ||
| 408 | } | 416 | } |
| 409 | 417 | ||
| 410 | return (DECODING_STATE) iRet; | 418 | return (DECODING_STATE) iRet; |