Showing the changes to codec/decoder/plus/src/welsDecoderExt.cpp (1 of 2 files). Show all
Unified · Split
| @@ -592,6 +592,12 @@ DECODING_STATE CWelsDecoder::DecodeFrame2 (const unsigned char* kpSrc, · 591 unmodified lines | |||
| 592 | } | 592 | } |
| 593 | return dsErrorFree; | 593 | return dsErrorFree; |
| 594 | } | 594 | } |
| 595 | if ((m_pDecContext->iErrorCode == (dsBitstreamError | dsDataErrorConcealed)) && m_pDecContext->eSliceType == B_SLICE) { | ||
| 596 | if (ResetDecoder()) { | ||
| 597 | return DECODING_STATE (dsBitstreamError | dsDataErrorConcealed); | ||
| 598 | } | ||
| 599 | return dsErrorFree; | ||
| 600 | } | ||
| 595 | //for AVC bitstream (excluding AVC with temporal scalability, including TP), as long as error occur, SHOULD notify upper layer key frame loss. | 601 | //for AVC bitstream (excluding AVC with temporal scalability, including TP), as long as error occur, SHOULD notify upper layer key frame loss. |
| 596 | if ((IS_PARAM_SETS_NALS (eNalType) || NAL_UNIT_CODED_SLICE_IDR == eNalType) || | 602 | if ((IS_PARAM_SETS_NALS (eNalType) || NAL_UNIT_CODED_SLICE_IDR == eNalType) || |
| 597 | (VIDEO_BITSTREAM_AVC == m_pDecContext->eVideoType)) { | 603 | (VIDEO_BITSTREAM_AVC == m_pDecContext->eVideoType)) { |