Debug for (1) decoder crash when delay decoding (2) no output when EC off
Showing the changes to codec/decoder/core/src/decoder_core.cpp (1 of 5 files). Show all
Unified · Split
| @@ -156,13 +156,6 @@ inline void HandleReferenceLostL0 (PWelsDecoderContext pCtx, PNalUnit pCurNal · 155 unmodified lines | |||
| 156 | if (0 == pCurNal->sNalHeaderExt.uiTemporalId) { | 156 | if (0 == pCurNal->sNalHeaderExt.uiTemporalId) { |
| 157 | pCtx->bReferenceLostAtT0Flag = true; | 157 | pCtx->bReferenceLostAtT0Flag = true; |
| 158 | } | 158 | } |
| 159 | if (pCtx->eErrorConMethod == ERROR_CON_DISABLE) { | ||
| 160 | #ifndef LONG_TERM_REF | ||
| 161 | if (pCtx->bReferenceLostAtT0Flag) { | ||
| 162 | ResetParameterSetsState (pCtx); | ||
| 163 | } | ||
| 164 | #endif | ||
| 165 | } | ||
| 166 | pCtx->iErrorCode |= dsBitstreamError; | 159 | pCtx->iErrorCode |= dsBitstreamError; |
| 167 | } | 160 | } |
| 168 | 161 | ||
| @@ -170,13 +163,6 @@ inline void HandleReferenceLost (PWelsDecoderContext pCtx, PNalUnit pCurNal) · 1 unmodified line | |||
| 170 | if ((0 == pCurNal->sNalHeaderExt.uiTemporalId) || (1 == pCurNal->sNalHeaderExt.uiTemporalId)) { | 163 | if ((0 == pCurNal->sNalHeaderExt.uiTemporalId) || (1 == pCurNal->sNalHeaderExt.uiTemporalId)) { |
| 171 | pCtx->bReferenceLostAtT0Flag = true; | 164 | pCtx->bReferenceLostAtT0Flag = true; |
| 172 | } | 165 | } |
| 173 | if (pCtx->eErrorConMethod == ERROR_CON_DISABLE) { | ||
| 174 | #ifndef LONG_TERM_REF | ||
| 175 | if (pCtx->bReferenceLostAtT0Flag) { | ||
| 176 | ResetParameterSetsState (pCtx); | ||
| 177 | } | ||
| 178 | #endif | ||
| 179 | } | ||
| 180 | pCtx->iErrorCode |= dsRefLost; | 166 | pCtx->iErrorCode |= dsRefLost; |
| 181 | } | 167 | } |
| 182 | 168 | ||
| @@ -1883,14 +1869,6 @@ void InitCurDqLayerData (PWelsDecoderContext pCtx, PDqLayer pCurDq) { · 1700 unmodified lines | |||
| 1883 | } | 1869 | } |
| 1884 | } | 1870 | } |
| 1885 | 1871 | ||
| 1886 | // added to reset state of parameter sets to waiting successive incoming IDR, 6/4/2010 | ||
| 1887 | // It will be called in case packets lost/ broken and decoded failed at temporal level 0 | ||
| 1888 | void ResetParameterSetsState (PWelsDecoderContext pCtx) { | ||
| 1889 | pCtx->bSpsExistAheadFlag = false; | ||
| 1890 | pCtx->bSubspsExistAheadFlag = false; | ||
| 1891 | pCtx->bPpsExistAheadFlag = false; | ||
| 1892 | } | ||
| 1893 | |||
| 1894 | /* | 1872 | /* |
| 1895 | * DecodeCurrentAccessUnit | 1873 | * DecodeCurrentAccessUnit |
| 1896 | * Decode current access unit when current AU is completed. | 1874 | * Decode current access unit when current AU is completed. |
| @@ -2028,7 +2006,6 @@ int32_t DecodeCurrentAccessUnit (PWelsDecoderContext pCtx, uint8_t** ppDst, SBuf · 131 unmodified lines | |||
| 2028 | #else | 2006 | #else |
| 2029 | pCtx->bReferenceLostAtT0Flag = true; | 2007 | pCtx->bReferenceLostAtT0Flag = true; |
| 2030 | #endif | 2008 | #endif |
| 2031 | ResetParameterSetsState (pCtx); | ||
| 2032 | return ERR_INFO_REFERENCE_PIC_LOST; | 2009 | return ERR_INFO_REFERENCE_PIC_LOST; |
| 2033 | } | 2010 | } |
| 2034 | } | 2011 | } |