From 25dc55faaccff0feeb72023f3203ba6250bd812c Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Mon, 2 Nov 2020 11:42:52 +0100 Subject: [PATCH] Dshow: compute data len Screen capture returns wrong buffer length so we override it with the expected value. --- src/video_capture/DirectShowGrabber.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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);