MCPcopy Create free account
hub / github.com/cisco/openh264 / DecodeFrameNoDelay

Method DecodeFrameNoDelay

codec/decoder/plus/src/welsDecoderExt.cpp:695–733  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

693}
694
695DECODING_STATE CWelsDecoder::DecodeFrameNoDelay (const unsigned char* kpSrc,
696 const int kiSrcLen,
697 unsigned char** ppDst,
698 SBufferInfo* pDstInfo) {
699 int iRet = dsErrorFree;
700 if (m_iThreadCount >= 1) {
701 SET_EVENT (&m_sReleaseBufferEvent);
702 iRet = ThreadDecodeFrameInternal (kpSrc, kiSrcLen, ppDst, pDstInfo);
703 if (m_sReoderingStatus.iNumOfPicts) {
704 WAIT_EVENT (&m_sBufferingEvent, WELS_DEC_THREAD_WAIT_INFINITE);
705 RESET_EVENT (&m_sBufferingEvent);
706 RESET_EVENT (&m_sReleaseBufferEvent);
707 if (!m_sReoderingStatus.bHasBSlice) {
708 if (m_sReoderingStatus.iNumOfPicts > 1) {
709 ReleaseBufferedReadyPictureNoReorder (NULL, ppDst, pDstInfo);
710 }
711 }
712 else {
713 ReleaseBufferedReadyPictureReorder (NULL, ppDst, pDstInfo);
714 }
715 }
716 return (DECODING_STATE)iRet;
717 }
718 //SBufferInfo sTmpBufferInfo;
719 //unsigned char* ppTmpDst[3] = {NULL, NULL, NULL};
720 iRet = (int)DecodeFrame2 (kpSrc, kiSrcLen, ppDst, pDstInfo);
721 //memcpy (&sTmpBufferInfo, pDstInfo, sizeof (SBufferInfo));
722 //ppTmpDst[0] = ppDst[0];
723 //ppTmpDst[1] = ppDst[1];
724 //ppTmpDst[2] = ppDst[2];
725 iRet |= DecodeFrame2 (NULL, 0, ppDst, pDstInfo);
726 //if ((pDstInfo->iBufferStatus == 0) && (sTmpBufferInfo.iBufferStatus == 1)) {
727 //memcpy (pDstInfo, &sTmpBufferInfo, sizeof (SBufferInfo));
728 //ppDst[0] = ppTmpDst[0];
729 //ppDst[1] = ppTmpDst[1];
730 //ppDst[2] = ppTmpDst[2];
731 //}
732 return (DECODING_STATE)iRet;
733}
734
735DECODING_STATE CWelsDecoder::DecodeFrame2WithCtx (PWelsDecoderContext pDecContext, const unsigned char* kpSrc,
736 const int kiSrcLen,

Callers 2

Decode_wMethod · 0.45
H264DecodeInstanceFunction · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected