prevent from return if slice decoding error for EC
Showing the changes to codec/decoder (1 of 1 file). Show all
Unified · Split
| @@ -1856,7 +1856,9 @@ int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, int3 · 1855 unmodified lines | |||
| 1856 | HandleReferenceLost (pCtx, pNalCur); | 1856 | HandleReferenceLost (pCtx, pNalCur); |
| 1857 | WelsLog (pCtx, WELS_LOG_WARNING, "reference picture introduced by this frame is lost during transmission! uiTId: %d\n", | 1857 | WelsLog (pCtx, WELS_LOG_WARNING, "reference picture introduced by this frame is lost during transmission! uiTId: %d\n", |
| 1858 | pNalCur->sNalHeaderExt.uiTemporalId); | 1858 | pNalCur->sNalHeaderExt.uiTemporalId); |
| 1859 | return iRet; | 1859 | if (pCtx->iErrorConMethod == ERROR_CON_DISABLE) { |
| 1860 | return iRet; | ||
| 1861 | } | ||
| 1860 | } | 1862 | } |
| 1861 | } | 1863 | } |
| 1862 | 1864 | ||
| @@ -1867,7 +1869,9 @@ int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, int3 · 4 unmodified lines | |||
| 1867 | WelsLog (pCtx, WELS_LOG_WARNING, "DecodeCurrentAccessUnit() failed (%d) in frame: %d uiDId: %d uiQId: %d\n", | 1869 | WelsLog (pCtx, WELS_LOG_WARNING, "DecodeCurrentAccessUnit() failed (%d) in frame: %d uiDId: %d uiQId: %d\n", |
| 1868 | iRet, pSh->iFrameNum, iCurrIdD, iCurrIdQ); | 1870 | iRet, pSh->iFrameNum, iCurrIdD, iCurrIdQ); |
| 1869 | HandleReferenceLostL0 (pCtx, pNalCur); | 1871 | HandleReferenceLostL0 (pCtx, pNalCur); |
| 1870 | return iRet; | 1872 | if (pCtx->iErrorConMethod == ERROR_CON_DISABLE) { |
| 1873 | return iRet; | ||
| 1874 | } | ||
| 1871 | } | 1875 | } |
| 1872 | if (bReconstructSlice) { | 1876 | if (bReconstructSlice) { |
| 1873 | if (WelsDecodeConstructSlice (pCtx, pNalCur)) { | 1877 | if (WelsDecodeConstructSlice (pCtx, pNalCur)) { |
| @@ -1923,8 +1927,10 @@ int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, int3 · 49 unmodified lines | |||
| 1923 | if (uiNalRefIdc > 0) { | 1927 | if (uiNalRefIdc > 0) { |
| 1924 | iRet = WelsMarkAsRef (pCtx); | 1928 | iRet = WelsMarkAsRef (pCtx); |
| 1925 | if (iRet != ERR_NONE) { | 1929 | if (iRet != ERR_NONE) { |
| 1926 | pCtx->pDec = NULL; | 1930 | if (pCtx->iErrorConMethod == ERROR_CON_DISABLE) { |
| 1927 | return iRet; | 1931 | pCtx->pDec = NULL; |
| 1932 | return iRet; | ||
| 1933 | } | ||
| 1928 | } | 1934 | } |
| 1929 | ExpandReferencingPicture (pCtx->pDec, pCtx->sExpandPicFunc.pExpandLumaPicture, | 1935 | ExpandReferencingPicture (pCtx->pDec, pCtx->sExpandPicFunc.pExpandLumaPicture, |
| 1930 | pCtx->sExpandPicFunc.pExpandChromaPicture); | 1936 | pCtx->sExpandPicFunc.pExpandChromaPicture); |