The crash is caused by trying to flush out previous removed (decoded) picture. Decoder has no idea needs to keep this frame.
Showing the changes to codec/decoder/plus/src/welsDecoderExt.cpp (1 of 1 file). Show all
Unified · Split
| @@ -754,14 +754,23 @@ void CWelsDecoder::OutputStatisticsLog (SDecoderStatistics& sDecoderStatistics) · 753 unmodified lines | ||
| 754 | 754 | |
| 755 | 755 | DECODING_STATE CWelsDecoder::ReorderPicturesInDisplay (unsigned char** ppDst, SBufferInfo* pDstInfo) { |
| 756 | 756 | DECODING_STATE iRet = dsErrorFree; |
| 757 | − if (pDstInfo->iBufferStatus == 1 && m_pDecContext->pSps->uiProfileIdc != 66) { | |
| 758 | − if (m_pDecContext->pSliceHeader->iPicOrderCntLsb == 0) { | |
| 759 | − if (m_iNumOfPicts > 0) { | |
| 760 | − m_iLastGOPRemainPicts = m_iNumOfPicts; | |
| 761 | − for (int32_t i = 0; i <= m_iLargestBufferedPicIndex; ++i) { | |
| 762 | − if (m_sPictInfoList[i].iPOC > sIMinInt32) { | |
| 763 | − m_sPictInfoList[i].bLastGOP = true; | |
| 764 | − } | |
| 757 | + if (pDstInfo->iBufferStatus == 1 && m_pDecContext->pSps->uiProfileIdc != 66 | |
| 758 | + && m_pDecContext->pSps->uiProfileIdc != 83) { | |
| 759 | + /*if (m_pDecContext->pSliceHeader->iPicOrderCntLsb == 0) { | |
| 760 | + m_LastWrittenPOC = 0; | |
| 761 | + return dsErrorFree; | |
| 762 | + } | |
| 763 | + if (m_iNumOfPicts == 0 && m_pDecContext->pPreviousDecodedPictureInDpb->bNewSeqBegin | |
| 764 | + && m_pDecContext->eSliceType != I_SLICE) { | |
| 765 | + m_LastWrittenPOC = m_pDecContext->pSliceHeader->iPicOrderCntLsb; | |
| 766 | + return dsErrorFree; | |
| 767 | + }*/ | |
| 768 | + if (m_iNumOfPicts && m_pDecContext->pPreviousDecodedPictureInDpb | |
| 769 | + && m_pDecContext->pPreviousDecodedPictureInDpb->bNewSeqBegin) { | |
| 770 | + m_iLastGOPRemainPicts = m_iNumOfPicts; | |
| 771 | + for (int32_t i = 0; i <= m_iLargestBufferedPicIndex; ++i) { | |
| 772 | + if (m_sPictInfoList[i].iPOC > sIMinInt32) { | |
| 773 | + m_sPictInfoList[i].bLastGOP = true; | |
| 765 | 774 | } |
| 766 | 775 | } |
| 767 | 776 | } else { |