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 10 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( hr = MFCopyImage(
pData, // Destination buffer. pData, // Destination buffer.
cbWidth, // Destination stride. cbWidth, // Destination stride.
(BYTE*)videoFrameBuffer, // First row in source image. ((BYTE*)videoFrameBuffer) + (videoHeight-1)*cbWidth, // First row in source image.
cbWidth, // Source stride. -cbWidth, // Source stride.
cbWidth, // Image width in bytes. cbWidth, // Image width in bytes.
videoHeight // Image height in pixels. videoHeight // Image height in pixels.
); );

Loading…
Cancel
Save