diff -r a5ac35ca6d81 -r 91f50911ea81 multimediacommscontroller/mmccfilesourcesink/src/mccfilevideo.cpp --- a/multimediacommscontroller/mmccfilesourcesink/src/mccfilevideo.cpp Tue May 11 16:34:40 2010 +0300 +++ b/multimediacommscontroller/mmccfilesourcesink/src/mccfilevideo.cpp Tue May 25 13:07:26 2010 +0300 @@ -402,11 +402,27 @@ { __FILESOURCE_CONTROLL( "CMccFileVideo::ReadFrameL, reading frame, NOT OK" ) CleanupStack::PopAndDestroy( mediaBuffer ); + if( !iSendReadFrameFailEvent ) + { + iReadFrameFailCount++; + if( iReadFrameFailCount >= KMccReadFrameFailCountMax ) + { + iSendReadFrameFailEvent = ETrue; + iSource.InvalidVideoFrame( ETrue ); + } + } } else { __FILESOURCE_CONTROLL_INT1( "CMccFileVideo::ReadFrameL, reading frame, OK, position", iPosition ) + + if( iSendReadFrameFailEvent ) + { + iSendReadFrameFailEvent = EFalse; + iReadFrameFailCount = 0; + iSource.InvalidVideoFrame( EFalse ); + } DoTimingCorrection( iPosition );