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)
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){