MSMF expects a bottom-up video frame, so the buffer pointer must point to the end of the data and the stride needs to be negative

pull/5661/head
mbarann 9 years ago
parent b4112a5878
commit b48b2d43b0
  1. 4
      modules/videoio/src/cap_msmf.cpp

@ -4372,8 +4372,8 @@ HRESULT CvVideoWriter_MSMF::WriteFrame(DWORD *videoFrameBuffer, const LONGLONG&
hr = MFCopyImage(
pData, // Destination buffer.
cbWidth, // Destination stride.
(BYTE*)videoFrameBuffer, // First row in source image.
cbWidth, // Source stride.
((BYTE*)videoFrameBuffer) + (videoHeight-1)*cbWidth, // First row in source image.
-cbWidth, // Source stride.
cbWidth, // Image width in bytes.
videoHeight // Image height in pixels.
);

Loading…
Cancel
Save