From 63b4dd633c89827605461148682a5b987fcf922b Mon Sep 17 00:00:00 2001 From: Geoffrey McRae Date: Sat, 28 Jul 2018 07:23:51 +1000 Subject: [PATCH] [host] correct invalid copy size for U & V planes --- host/Capture/DXGI.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/host/Capture/DXGI.cpp b/host/Capture/DXGI.cpp index 6615f281..b536b95e 100644 --- a/host/Capture/DXGI.cpp +++ b/host/Capture/DXGI.cpp @@ -583,7 +583,9 @@ GrabStatus Capture::DXGI::GrabFrameYUV420(struct FrameInfo & frame, struct Curso { HRESULT status; D3D11_MAPPED_SUBRESOURCE mapping; + D3D11_TEXTURE2D_DESC desc; + m_texture[i]->GetDesc(&desc); status = m_deviceContext->Map(m_texture[i], 0, D3D11_MAP_READ, 0, &mapping); if (FAILED(status)) { @@ -592,7 +594,7 @@ GrabStatus Capture::DXGI::GrabFrameYUV420(struct FrameInfo & frame, struct Curso return GRAB_STATUS_ERROR; } - const unsigned int size = m_height * mapping.RowPitch; + const unsigned int size = desc.Height * mapping.RowPitch; if (size > remain) { m_deviceContext->Unmap(m_texture[i], 0);