From patchwork Sun Jan 19 16:41:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thilo Borgmann X-Patchwork-Id: 17424 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 7854844A8CE for ; Sun, 19 Jan 2020 18:41:59 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3E28768B0DD; Sun, 19 Jan 2020 18:41:59 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from shout02.mail.de (shout02.mail.de [62.201.172.25]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F25CB68ADCD for ; Sun, 19 Jan 2020 18:41:52 +0200 (EET) Received: from postfix01.mail.de (postfix03.bt.mail.de [10.0.121.127]) by shout02.mail.de (Postfix) with ESMTP id 7B61BC0013 for ; Sun, 19 Jan 2020 17:41:52 +0100 (CET) Received: from smtp03.mail.de (smtp03.bt.mail.de [10.0.121.213]) by postfix01.mail.de (Postfix) with ESMTP id 633B58033F for ; Sun, 19 Jan 2020 17:41:52 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mail.de; s=mailde201610; t=1579452112; bh=ISAXVNvxbo9GdA8lIrFzYoWB3e/8nZjQc50d/0KRM6M=; h=To:From:Subject:Date:From; b=ELUdXOmwhPyS3KG6rqBMt3xHEbG6dw/uSg3sAUFsew0q20ByG1igUoSOXU04zpOpm GQV75vDgdkD6ZlpGA+4Lq0UrjfvRRzzn3qMZ9V3BfaYI8c2avyC20q2JH5nKGSpnCL I2NXhp05IO4MY7ofLC+mdWhLFvvN3NNQhAdF0ct8= Received: from [127.0.0.1] (localhost [127.0.0.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp03.mail.de (Postfix) with ESMTPSA id F0FD78049D for ; Sun, 19 Jan 2020 17:41:51 +0100 (CET) To: FFmpeg development discussions and patches From: Thilo Borgmann Autocrypt: addr=thilo.borgmann@mail.de; prefer-encrypt=mutual; keydata= xsBNBF1NyqgBCAC/eJ7l/Ic+5bhj3N4eTyLRMCQVyxPF6sIDu0RqZCsLYx6GjH6BBrPcewbG wLfWNqWPWpcHLbOwDE2FWSBgDbc7Zwrmtkxt4+RNj2/JYRyCiV1uIRm1rlcf80pqDEYM+1O8 23b/JrONn7pQpX8alrYfhP3tLR2PKO/wHmG4AlSEG5T8angmGMvfKVSzxq7E07MIdUqiHHj/ t/F+6WFkpaec++CWcU+9s9IWRV+HskgihqZBqvzRYptvFi81con+VqpYjtpqoYAj4XwqM6j4 /8kTobgPo0n/QRCFcpZYRA7SCT4LbwOvy+qZ1e5372rzOcIF6PGdVzH4CCRT1Ypg1D6TABEB AAHNJ1RoaWxvIEJvcmdtYW5uIDx0aGlsby5ib3JnbWFubkBtYWlsLmRlPsLAqwQTAQoAPhYh BM4dt/RNIPw63Z/+WiV8W48dILkvBQJdTcqoAhsDBQkDwmcABQsJCAcDBRUKCQgLBRYCAwEA Ah4BAheAACEJECV8W48dILkvFiEEzh239E0g/Drdn/5aJXxbjx0guS/UtAf+JkEY+fQ29Gcv 509tfZW+uvTEmXzvIWmMP7TGYHGnHc/swhB8IY25J7/Z88qUxD0tTjnTHlNEEk4ZYAwHrgfv G/epK/AccKmPTj/FsmoUp4cRLwq17rQv2nc8L7i/Yg6syYTHaRF0SCQ8TPvcSoC4hP3IBWZj t23R0TyDeSnvK/+IeIsNejgz37Q+bWBtWsvUl6EBB0y51T6dp1RjsBS3Ot4FkFOqzMqCc3y1 808khhLgBnU24LnA62RMcUfvgMIRx0w8ioj1xJyp3U6c/JFhHxlLW5uVnOZ/odhuf+Hnel2u wyRCQxI2dLhBDZ9LVbospxZQok2GgRJIK6cnX23afc7ATQRdTcqoAQgAxQIqcXiQTaIFAWXc 9YEGuhrQF+TmKF7Jt1IGFmvfdmofnoFZ/8teZB03XP1VSVI/IXM7CTsEfQlBMgGcc9Tj3c9Z v+De/FfjBLJYOYKJIleIfhIZBLr6Hxru2qGma+piKXjbJCBJabSIu4YDM6iH3D2GJwanSspc ee3yvTSR7we1hcoavemw3pseurg6Y4dWsKEJLNP2xZ0C7fyidQsIh7RtNuzKsSVqqx1YbBwO 4cek4gQfJ9UC0nvt9X/pX1COhDeNAsTI8h2iC13Gi14a+EWF8ppvK0V3i5VDaxWrreUDY1Nt L6qGiQte/X4tvzRLEIe1gpT5wRK/QVXARlF8lQARAQABwsCTBBgBCgAmFiEEzh239E0g/Drd n/5aJXxbjx0guS8FAl1NyqgCGwwFCQPCZwAAIQkQJXxbjx0guS8WIQTOHbf0TSD8Ot2f/lol fFuPHSC5L+GLCACkU8DKD+HOEPvxTftn3pQ6YE+yfwSeS1uBjH6D2SsXdTrAZEE9KNjqYExr PuMy1GxAH3CeD+Kqc0sra5I9s3AdNAM1YeHQbY4zWaHfcaeU/cF/c2MxyhnRbr/UF382PUY5 yoWAmIBomSZdaifXXuU/CosZkpk01LDfl5fx5SfF13TrZ1FtPbXmP5S0n2HzxLM64hF0RzVz zR8xEofnP7jWJGcO7KcUCqSy64KGgNlYzyCWso+Tf0AJOtWYkfRvI/MyruItQ31jRs7VRh67 /lX38m5iqqjjwQ2GNZq29qGCNmjmsBjgzMmoy+5jUuoy233waGIGRFt1g9pLiMmchdWR Message-ID: <5427a5da-3bc6-5abb-ac9d-6b8bba5bb81a@mail.de> Date: Sun, 19 Jan 2020 17:41:51 +0100 MIME-Version: 1.0 Content-Language: en-US X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate: clean X-purgate-size: 3589 X-purgate-ID: 154282::1579452112-0000390B-81798F9C/0/0 Subject: [FFmpeg-devel] [PATCH] lavd/avfoundation: Add an option to drop late frames. X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" $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 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(-) diff --git a/libavdevice/avfoundation.m b/libavdevice/avfoundation.m index af8fe31367..0d854a18a3 100644 --- a/libavdevice/avfoundation.m +++ b/libavdevice/avfoundation.m @@ -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 }, };