diff options
author | Aleksoid <aleksoid@users.sourceforge.net> | 2012-04-08 12:11:54 +0400 |
---|---|---|
committer | Aleksoid <aleksoid@users.sourceforge.net> | 2012-04-08 12:11:54 +0400 |
commit | 30067f9222c5313683bcae7ccbe3b28ede70141c (patch) | |
tree | 762c2376ac2907bc02fdb270f281451568270696 | |
parent | cb5c8bee3a1fc14c93b31670c927e8e549a2668a (diff) |
Fix : MPCVideoDec - crash on RV30/40 when no input data from splitter; thanks v0lt for sample and test;
git-svn-id: https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk@4290 10f7b99b-c216-0410-bff0-8a66a9350fd8
-rw-r--r-- | src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp b/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp index 177c54b8e..1934bf317 100644 --- a/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp +++ b/src/filters/transform/MPCVideoDec/MPCVideoDecFilter.cpp @@ -1757,7 +1757,7 @@ HRESULT CMPCVideoDecFilter::SoftwareDecode(IMediaSample* pIn, BYTE* pDataIn, int } else if ((m_nCodecId == CODEC_ID_RV10 || m_nCodecId == CODEC_ID_RV20) && m_pFrame->pict_type == AV_PICTURE_TYPE_B) {
rtStart = m_rtPrevStop;
rtStop = rtStart + m_rtAvrTimePerFrame;
- } else if (m_nCodecId == CODEC_ID_RV30 || m_nCodecId == CODEC_ID_RV40) {
+ } else if ((m_nCodecId == CODEC_ID_RV30 || m_nCodecId == CODEC_ID_RV40) && avpkt.data) {
rtStart = (rtStart == _I64_MIN) ? m_rtPrevStop : (10000i64*process_rv_timestamp(&rm, m_nCodecId, avpkt.data, (rtStart + m_rtStart)/10000) - m_rtStart);
rtStop = rtStart + m_rtAvrTimePerFrame;
} else if (!(m_nCodecId == CODEC_ID_VC1 && m_bFrame_repeat_pict && m_rtAvrTimePerFrame == 333666)) {
|