Fixed selecting media type in DShow video capture.

Set correct value of sample size when calling IAMStreamConfig::SetFormat function. For non-RGB media type it can be set to zero value.
(See http://msdn.microsoft.com/en-us/library/windows/desktop/dd373477%28v=vs.85%29.aspx)
pull/3325/head
Artur Wieczorek 10 years ago
parent ca5e73a9d0
commit de0b46a765
  1. 10
      modules/videoio/src/cap_dshow.cpp

@ -2416,7 +2416,15 @@ static bool setSizeAndSubtype(videoDevice * VD, int attemptWidth, int attemptHei
VD->pAmMediaType->subtype = mediatype;
//buffer size
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.
VD->pAmMediaType->lSampleSize = 0;
}
//set fps if requested
if( VD->requestedFrameTime != -1){

Loading…
Cancel
Save