From 8b0e1c7fcb6814acbcddb6f9effb4a1799952488 Mon Sep 17 00:00:00 2001 From: Peter Jozsa Date: Mon, 3 Sep 2018 14:56:38 +0200 Subject: [PATCH] Fix https://github.com/opencv/opencv/issues/12301 --- modules/videoio/src/cap_msmf.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/videoio/src/cap_msmf.cpp b/modules/videoio/src/cap_msmf.cpp index 863f46bc89..a540238d23 100644 --- a/modules/videoio/src/cap_msmf.cpp +++ b/modules/videoio/src/cap_msmf.cpp @@ -616,7 +616,7 @@ class SourceReaderCB : public IMFSourceReaderCallback { public: SourceReaderCB() : - m_nRefCount(1), m_hEvent(CreateEvent(NULL, FALSE, FALSE, NULL)), m_bEOS(FALSE), m_hrStatus(S_OK), m_dwStreamIndex(0) + m_nRefCount(0), m_hEvent(CreateEvent(NULL, FALSE, FALSE, NULL)), m_bEOS(FALSE), m_hrStatus(S_OK), m_reader(NULL), m_dwStreamIndex(0) { } @@ -677,7 +677,7 @@ public: BOOL m_bEOS; HRESULT m_hrStatus; - _ComPtr m_reader; + IMFSourceReader *m_reader; DWORD m_dwStreamIndex; _ComPtr m_lastSample; }; @@ -1140,7 +1140,7 @@ bool CvCapture_MSMF::grabFrame() if (!reader->m_reader) { // Initiate capturing with async callback - reader->m_reader = videoFileSource; + reader->m_reader = videoFileSource.Get(); reader->m_dwStreamIndex = dwStreamIndex; if (FAILED(hr = videoFileSource->ReadSample(dwStreamIndex, 0, NULL, NULL, NULL, NULL))) {