Showing the changes to codec/decoder/core/src/decoder_core.cpp (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 | 1856 | HandleReferenceLost (pCtx, pNalCur); |
| 1857 | 1857 | WelsLog (pCtx, WELS_LOG_WARNING, "reference picture introduced by this frame is lost during transmission! uiTId: %d\n", |
| 1858 | 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 | 1869 | WelsLog (pCtx, WELS_LOG_WARNING, "DecodeCurrentAccessUnit() failed (%d) in frame: %d uiDId: %d uiQId: %d\n", |
| 1868 | 1870 | iRet, pSh->iFrameNum, iCurrIdD, iCurrIdQ); |
| 1869 | 1871 | HandleReferenceLostL0 (pCtx, pNalCur); |
| 1870 | − return iRet; | |
| 1872 | + if (pCtx->iErrorConMethod == ERROR_CON_DISABLE) { | |
| 1873 | + return iRet; | |
| 1874 | + } | |
| 1871 | 1875 | } |
| 1872 | 1876 | if (bReconstructSlice) { |
| 1873 | 1877 | if (WelsDecodeConstructSlice (pCtx, pNalCur)) { |
| @@ -1923,8 +1927,10 @@ int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, int3 · 49 unmodified lines | ||
| 1923 | 1927 | if (uiNalRefIdc > 0) { |
| 1924 | 1928 | iRet = WelsMarkAsRef (pCtx); |
| 1925 | 1929 | if (iRet != ERR_NONE) { |
| 1926 | − pCtx->pDec = NULL; | |
| 1927 | − return iRet; | |
| 1930 | + if (pCtx->iErrorConMethod == ERROR_CON_DISABLE) { | |
| 1931 | + pCtx->pDec = NULL; | |
| 1932 | + return iRet; | |
| 1933 | + } | |
| 1928 | 1934 | } |
| 1929 | 1935 | ExpandReferencingPicture (pCtx->pDec, pCtx->sExpandPicFunc.pExpandLumaPicture, |
| 1930 | 1936 | pCtx->sExpandPicFunc.pExpandChromaPicture); |