diff --git a/modules/videoio/src/cap_msmf.cpp b/modules/videoio/src/cap_msmf.cpp index 8e1a60a00b..35026bc440 100644 --- a/modules/videoio/src/cap_msmf.cpp +++ b/modules/videoio/src/cap_msmf.cpp @@ -1056,17 +1056,14 @@ HRESULT SourceReaderCB::Wait(DWORD dwMilliseconds, _ComPtr& videoSamp return HRESULT_FROM_WIN32(GetLastError()); } + bEOS = m_bEOS; if (!bEOS) { cv::AutoLock lock(m_mutex); - bEOS = m_bEOS; - if (!bEOS) - { - videoSample = m_lastSample; - CV_Assert(videoSample); - m_lastSample.Release(); - ResetEvent(m_hEvent); // event is auto-reset, but we need this forced reset due time gap between wait() and mutex hold. - } + videoSample = m_lastSample; + CV_Assert(videoSample); + m_lastSample.Release(); + ResetEvent(m_hEvent); // event is auto-reset, but we need this forced reset due time gap between wait() and mutex hold. } return m_hrStatus;