@@ -98,6 +98,7 @@
int capture_cursor;
int capture_mouse_clicks;
int capture_raw_data;
+ int drop_late_frames;
int video_is_muxed;
int list_devices;
@@ -496,7 +497,7 @@ static int add_video_device(AVFormatContext *s, AVCaptureDevice *video_device)
[ctx->video_output setVideoSettings:capture_dict];
}
- [ctx->video_output setAlwaysDiscardsLateVideoFrames:YES];
+ [ctx->video_output setAlwaysDiscardsLateVideoFrames:ctx->drop_late_frames];
ctx->avf_delegate = [[AVFFrameReceiver alloc] initWithContext:ctx];
@@ -1135,6 +1136,7 @@ static int avf_close(AVFormatContext *s)
{ "capture_cursor", "capture the screen cursor", offsetof(AVFContext, capture_cursor), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, AV_OPT_FLAG_DECODING_PARAM },
{ "capture_mouse_clicks", "capture the screen mouse clicks", offsetof(AVFContext, capture_mouse_clicks), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, AV_OPT_FLAG_DECODING_PARAM },
{ "capture_raw_data", "capture the raw data from device connection", offsetof(AVFContext, capture_raw_data), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, AV_OPT_FLAG_DECODING_PARAM },
+ { "drop_late_frames", "drop frames that are available later than expected", offsetof(AVFContext, drop_late_frames), AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1, AV_OPT_FLAG_DECODING_PARAM },
{ NULL },
};
$subject If you record live sources like during screen capture, you want this enabled (current behavior). For the case you're capturing from etc you want the most possible frames captured no matter a possible delay. Was fixed behavior before, so make it an option with enabled to be default. -Thilo From 57782e804bf5026fc1991551090e8c52ed9027e6 Mon Sep 17 00:00:00 2001 From: Thilo Borgmann <thilo.borgmann@mail.de> Date: Sun, 19 Jan 2020 17:36:21 +0100 Subject: [PATCH] lavd/avfoundation.m: Add an option to drop late frames. Retains current behaviour by the default value. --- libavdevice/avfoundation.m | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)