diff --git a/src/video_capture/DirectShowGrabber.cpp b/src/video_capture/DirectShowGrabber.cpp index 4739dac17..1c234d229 100644 --- a/src/video_capture/DirectShowGrabber.cpp +++ b/src/video_capture/DirectShowGrabber.cpp @@ -1317,7 +1317,8 @@ static struct video_frame * vidcap_dshow_grab(void *state, struct audio_frame ** s->frame->tiles[0].data = (char *) s->returnBuffer; //fprintf(stderr, "[dshow] s: %p\n", s); //s->tile->data_len = s->width * s->height * 3; - s->frame->tiles[0].data_len = s->returnBufferLen; + s->frame->tiles[0].data_len = is_codec_opaque(s->frame->color_spec) ? s->returnBufferLen : + vc_get_datalen(s->frame->tiles[0].width, s->frame->tiles[0].height, s->frame->color_spec); /* fprintf(stderr, "[dshow] s5: %p\n", s);