X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=ffmpeg_capture.cpp;h=b8010d08219b52e30479b299822550ac8a850519;hb=e284d1c7a2e18ee7e4aea082c4a57a3504a0f5e8;hp=42bdb2f765d65b18e69a2543793a08ad38590cfc;hpb=54171389c54dea3caf19ffb3abec1e72ae0531e2;p=nageru diff --git a/ffmpeg_capture.cpp b/ffmpeg_capture.cpp index 42bdb2f..b8010d0 100644 --- a/ffmpeg_capture.cpp +++ b/ffmpeg_capture.cpp @@ -313,12 +313,20 @@ void FFmpegCapture::send_disconnected_frame() VideoFormat video_format; video_format.width = width; video_format.height = height; - video_format.stride = width * 4; video_format.frame_rate_nom = 60; video_format.frame_rate_den = 1; video_format.is_connected = false; - - video_frame.len = width * height * 4; + if (pixel_format == bmusb::PixelFormat_8BitBGRA) { + video_format.stride = width * 4; + video_frame.len = width * height * 4; + } else { + video_format.stride = width; + current_frame_ycbcr_format.full_range = true; + current_frame_ycbcr_format.num_levels = 256; + current_frame_ycbcr_format.chroma_subsampling_x = 2; + current_frame_ycbcr_format.chroma_subsampling_y = 2; + video_frame.len = width * height * 2; + } memset(video_frame.data, 0, video_frame.len); frame_callback(-1, AVRational{1, TIMEBASE}, -1, AVRational{1, TIMEBASE}, timecode++,