From 3f2ab5d3b5dec3f45331267995766241516a8d4f Mon Sep 17 00:00:00 2001 From: Michael Shtutman Date: Fri, 1 Jul 2016 22:00:15 +0300 Subject: [PATCH] Fix bug #6682 (Can't change resolution for YUY2 camera with DShow) --- modules/videoio/src/cap_dshow.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/videoio/src/cap_dshow.cpp b/modules/videoio/src/cap_dshow.cpp index 4380b9b2c1..8b793ac202 100644 --- a/modules/videoio/src/cap_dshow.cpp +++ b/modules/videoio/src/cap_dshow.cpp @@ -2447,13 +2447,15 @@ static bool setSizeAndSubtype(videoDevice * VD, int attemptWidth, int attemptHei VD->pAmMediaType->subtype = mediatype; //buffer size - if (mediatype == MEDIASUBTYPE_RGB24) - { - VD->pAmMediaType->lSampleSize = attemptWidth*attemptHeight*3; + if (mediatype == MEDIASUBTYPE_RGB24){ + VD->pAmMediaType->lSampleSize = attemptWidth*attemptHeight * 3; } - else - { - // For compressed data, the value can be zero. + else if ((mediatype == MEDIASUBTYPE_YUY2) || (mediatype == MEDIASUBTYPE_YVYU) || + (mediatype == MEDIASUBTYPE_UYVY)){ + + VD->pAmMediaType->lSampleSize = attemptWidth*attemptHeight * 2; + } + else{ VD->pAmMediaType->lSampleSize = 0; }