| 924 | } |
| 925 | |
| 926 | DECODING_STATE CWelsDecoder::FlushFrame (unsigned char** ppDst, |
| 927 | SBufferInfo* pDstInfo) { |
| 928 | bool bEndOfStreamFlag = true; |
| 929 | if (m_iThreadCount <= 1) { |
| 930 | for (int32_t j = 0; j < m_iCtxCount; ++j) { |
| 931 | if (!m_pDecThrCtx[j].pCtx->bEndOfStreamFlag) { |
| 932 | bEndOfStreamFlag = false; |
| 933 | } |
| 934 | } |
| 935 | } |
| 936 | if (bEndOfStreamFlag && m_sReoderingStatus.iNumOfPicts > 0) { |
| 937 | if (!m_sReoderingStatus.bHasBSlice) { |
| 938 | ReleaseBufferedReadyPictureNoReorder (NULL, ppDst, pDstInfo); |
| 939 | } |
| 940 | else { |
| 941 | ReleaseBufferedReadyPictureReorder (NULL, ppDst, pDstInfo, true); |
| 942 | } |
| 943 | } |
| 944 | return dsErrorFree; |
| 945 | } |
| 946 | |
| 947 | void CWelsDecoder::OutputStatisticsLog (SDecoderStatistics& sDecoderStatistics) { |
| 948 | if ((sDecoderStatistics.uiDecodedFrameCount > 0) && (sDecoderStatistics.iStatisticsLogInterval > 0) |