From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 03F034089E for ; Fri, 24 Dec 2021 03:08:57 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7288D68B1E3; Fri, 24 Dec 2021 05:08:55 +0200 (EET) Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-oln040092069100.outbound.protection.outlook.com [40.92.69.100]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2229168B1CE for ; Fri, 24 Dec 2021 05:08:48 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xr4a7Hvo5a61DNmns8psOdF1iVX0v+LPcvBckMyU0I0x9wnukRuDNXN+K3CqMnHtH/w829TCe/jLPkE0gX8X+tUSwVIQyrgModxTknE1sqiEXPWt/Knymvl+OLPQLF0Q3fPsMCQFEVuvLzJSB+K9v8k8vhQKHyEYiAnwHxIaUYrIcmLW/0tGgbugBrRLzzSS7qh/c7R8gtRTubjPPJJCxBH1ObfHEUMKHDLzMxdML54cwEQdFKMu+iWbEOdr0qQ3z1aDedGovaavnKlFcRtE0TzShg5cVogk5VmKTSfw9d2pxR3LPQCU2WyfHvVL6drA/Y8uim9HfGFAuXgxs0B2TA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pB8jy2ner0QAWiFkO675YBa1huECwUsRasE4cTQQJ7s=; b=Sb9Yy741cYNxmLvf13j1Prtv5LTGFQmzVgwCtNTfMqJ0WgMAuuSX65munkv79FsiyAtKJ3jCmZn8Y4e1fuW0UGHn2H6g3zXbjRc2uBPbF14Dh/3Gn8doUZ+JDitxG0rNGEQ44ovo5xb4pmvikwuW6dCPUy/iiJZfuwLHI8p+GSOeu2YY0PzrSAN4KlMdtt46n9cYSqzlk9cWNm5QLUB01v/gfFKC/UHqeee83pG2oWYvraQzs31Was3KvS5BVcQjCey1T0M9e7mC6cv92LHRtnChYpUHdyGrLbWSKRG4ofZLCi/JHMmOC5+46JBLMUZTKAQxZIaCdDCr0yCp5VqfVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pB8jy2ner0QAWiFkO675YBa1huECwUsRasE4cTQQJ7s=; b=Ng35fV5MFrfxctABNcBQwXk5m/CmEIIux4vMr3ncew12tpfE3JfMeInZuVblK347Psr1RWmf+jrREnAXEngFBMrgYgYGlVJz3y/NevN+k12BmGY560H6aPG1q8iiBvB+ttJ0rdct+b3l9CsTENNmHl07CyzF48oSGT/7BJgJDGJnVvPH9AjOl/utQcUXgNkvGbHX9q19SfSuWsbAH3mT2tLnpGzfZZ8S6VlI/IyofJIWWgFPmH293LnH4uT5ugiIZKeYT1F/v5iO8k5eOpPeG5sTM9RvFEFDuSl/W/dovsvrqAim424Ya+ssbvtsWOLtOL7Vd2LCtajYQDw3G85kZQ== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AS8PR03MB6886.eurprd03.prod.outlook.com (2603:10a6:20b:23c::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Fri, 24 Dec 2021 03:08:46 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca%5]) with mapi id 15.20.4823.019; Fri, 24 Dec 2021 03:08:46 +0000 Message-ID: Date: Fri, 24 Dec 2021 04:08:40 +0100 Content-Language: en-US To: "Xiang, Haihao" , "ffmpeg-devel@ffmpeg.org" References: <420d12e0288d42515f1f8dae75c2a70e561084da.camel@intel.com> From: Andreas Rheinhardt In-Reply-To: X-TMN: [w4bofteYorE2qBwQxd4SNOD/378Ykdsg] X-ClientProxiedBy: AS9PR04CA0059.eurprd04.prod.outlook.com (2603:10a6:20b:46a::9) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <495624ea-3aab-9a97-36f5-557e8477d948@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 899ac9f7-7cc5-4fea-0426-08d9c68ab339 X-MS-TrafficTypeDiagnostic: AS8PR03MB6886:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: S3m1falvMdBKDOzuERQX4w+qdzSLg7Axmv30sLkBrdS96CU6ZGbJy7rHYBYsCr52hv1UZhWf1PiIKvwaDCWYGQHGX+3XIpL5qvhOnx91toph4yHJSQheY+jYcDUqkp/hqVg6q7a7MVtxJkUNd67tqFW0xepbN4WUPL8aczzJghIRTGGuVCYe1Qwq52hroiv+4SoEyfz7D2L0PgkbvUZ8F4XNVLmhdZAxAPh4BgDh9uqpVtd6bvZaijHvqqGJO3mOPahS10chRn5L15o27qALt3yBNHdGU29yAVjuBRbftLwu0SVSGpygNH8QvVxYfp1k6znRpTn03I2J+4Lxb39NA3bFG05lNhStsGk+bYddA7sE7Kl6RDTJFHv1Ld0tZALrNmaKN9Mtaa0WAwrYce0c6xJAOWj1i1MEoLKqoWkpqK3Nw77d66Tu4yLNNOUQDdgcgkjOBK+FqRnSKqniifscuoXyIeBTZSp8NnCF4wdAU5adU1RMmUbe3LLgVRtJmwaOnNlwvW7eo//fVZLCemmA93YOcbeeW3MO8TUVlyqESgvPb1R3F4/3NNr6bIkSLOwtcsnLxZK/KNhwpj9mrK/DTfcdeAgxgqUcW3WDIIX9SSLwptLXBQDwZj9nmaImgJPlMkgPM22X3O55anyivqegpL+zrz4JU1cC3pyMJmOnxiA= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?U3cycXNUSWJyTFArYmFuNTJTV2s3WmNmcnkxOFZUN2JuT0YyNnU1aFNXcW5B?= =?utf-8?B?eXpCby9GVVVmdVhpK2NMUDVpR05Za0RXQ2hYaTF3QTl5RkpvNDFRZ0VYMTdY?= =?utf-8?B?cUFycnZpemR4RzNMaFp6U1d1azdmTW9ZWDVEeTJvdHN3WExOWUtNVUxVdktD?= =?utf-8?B?Qm9tcFllWTExcXh5c2Q2Q0JTL3gxa2pFOWJzbmtxVjlacXQ1NHVyNitlRnZl?= =?utf-8?B?bVhZL0hDU3ZiVlpYM0NMelZjcGxsQm9WZjh4QVAvVHlZUVVFVEhKd3BUS2N5?= =?utf-8?B?YUduTFZEV0FzdndYV1V3a2RrdUI2VjdmdTBFRERqZWZGZW5aR2JZVEMrVXMx?= =?utf-8?B?SkhQMjN6OURNa0dwdmRHOGJXMHJKVmNuZ3BtUXJXUHppQkg4K1pjeWpjbmc2?= =?utf-8?B?UU4vSWdyK3VIRTZ5WTkyZlJSb2wwQzhPTmJXWS9sTCt6WTdOL3A5eXBWaThw?= =?utf-8?B?b3lWWE1NVWUwWDh2Qkg1SVFkRGJOMVVJMUhpOWQ1akJsdEF2NGsxUDNuODQx?= =?utf-8?B?b2htalQ1MDBIR2lUMitZQmhXdjFiQ1ZxNDA1NndINGo0THcwSExCTUIwVzd3?= =?utf-8?B?WVBmY1B4VHFDRmlEODdFNVRZYWhFMTM2WExoU1Y3WWx4WVV5QXRudDZ4U2ln?= =?utf-8?B?d0xzM2paU1Jidmd4bkRCMVhNMmp0NWYyZUdIWGc4VUZ6Z1lPVWUyd2xvalA3?= =?utf-8?B?T1RsV3dFeFFvTDU2T0tFQWdXcm9DRitlbFFQNzV4TCs1K0NhTGt0UmNUZmZs?= =?utf-8?B?cnVCbEJKYTF2c3JNUHRPTXhsY0FseDZydWtoeVlGMkNtZFhFVzFjR0F4NUpI?= =?utf-8?B?UGNvZUt2MHVpbkd1a2I0a2ZlTXA1QVZBdDN4NG90NzhrTHRGUjJ3dzhkS1Ft?= =?utf-8?B?WUh6aXhGelRsMURnTWFSK0pVb1AzbmMvWkw4aUZKREd3dEJaNlVBbWx4d2k0?= =?utf-8?B?SVZOL1lTUituOGRiZDMvc0tIUVJWeGdIRGVtR3craHZxdFRMNkQwUzRjazAy?= =?utf-8?B?aTVRdTJVYzBWdnVOZHIvdURPa3Q0Uzdib0VDSENZb0hFZHMvWThJUHZLc0dt?= =?utf-8?B?aUZIZ2t4UkpqOXF3ZGNRUCtkb085T1BFKzMvNHNncEpVbVRiTWVFRVg0aWtr?= =?utf-8?B?ZjJCU2szRlpNV3A3MCtxKzhkQTk3NDkxdGV2VHQ4NmRXQkF5a3BuZ2ZDOGpL?= =?utf-8?B?QzkwaGhUNXA2TUVBY1dLNk1FUzhIMWFqdzNDQ2VEandkZjNsRjk3aGpvZzZp?= =?utf-8?B?MVVBR1VnakdBSEJ0aHFwU3pQU2hIVUs1V2Zrb2oxZVZ1VjJpUT09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 899ac9f7-7cc5-4fea-0426-08d9c68ab339 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Dec 2021 03:08:46.6155 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB6886 Subject: Re: [FFmpeg-devel] [PATCH 08/11] avcodec/tests/avcodec: Check codec caps for consistency X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Xiang, Haihao: > On Fri, 2021-12-24 at 03:20 +0100, Andreas Rheinhardt wrote: >> Xiang, Haihao: >>> On Fri, 2021-09-24 at 18:37 +0200, Andreas Rheinhardt wrote: >>>> Signed-off-by: Andreas Rheinhardt >>>> --- >>>> libavcodec/tests/avcodec.c | 38 ++++++++++++++++++++++++++++++++++++++ >>>> 1 file changed, 38 insertions(+) >>>> >>>> diff --git a/libavcodec/tests/avcodec.c b/libavcodec/tests/avcodec.c >>>> index 5512ae99f7..e26315c368 100644 >>>> --- a/libavcodec/tests/avcodec.c >>>> +++ b/libavcodec/tests/avcodec.c >>>> @@ -19,6 +19,7 @@ >>>> #include "libavutil/opt.h" >>>> #include "libavcodec/codec.h" >>>> #include "libavcodec/codec_desc.h" >>>> +#include "libavcodec/internal.h" >>>> >>>> static const char *get_type_string(enum AVMediaType type) >>>> { >>>> @@ -78,11 +79,26 @@ int main(void){ >>>> if (codec->channel_layouts || codec->sample_fmts || >>>> codec->supported_samplerates) >>>> ERR("Non-audio codec %s has audio-only fields set\n"); >>>> + if (codec->capabilities & (AV_CODEC_CAP_SMALL_LAST_FRAME | >>>> + AV_CODEC_CAP_CHANNEL_CONF | >>>> + AV_CODEC_CAP_VARIABLE_FRAME_SIZE)) >>>> + ERR("Non-audio codec %s has audio-only capabilities >>>> set\n"); >>>> } >>>> if (codec->type != AVMEDIA_TYPE_VIDEO) { >>>> if (codec->pix_fmts || codec->supported_framerates) >>>> ERR("Non-video codec %s has audio-only fields set\n"); >>>> + if (codec->caps_internal & FF_CODEC_CAP_EXPORTS_CROPPING) >>>> + ERR("Non-video codec %s exports cropping\n"); >>>> } >>>> + if (codec->caps_internal & FF_CODEC_CAP_SLICE_THREAD_HAS_MF && >>>> + !(codec->capabilities & AV_CODEC_CAP_SLICE_THREADS)) >>>> + ERR("Codec %s wants mainfunction despite not being " >>>> + "slice-threading capable"); >>>> + if (codec->caps_internal & FF_CODEC_CAP_AUTO_THREADS && >>>> + !(codec->capabilities & (AV_CODEC_CAP_FRAME_THREADS | >>>> + AV_CODEC_CAP_SLICE_THREADS | >>>> + AV_CODEC_CAP_OTHER_THREADS))) >>>> + ERR("Codec %s has private-only threading support\n"); >>>> >>>> is_decoder = av_codec_is_decoder(codec); >>>> is_encoder = av_codec_is_encoder(codec); >>>> @@ -103,6 +119,19 @@ int main(void){ >>>> ret = 1; >>>> } >>>> } >>>> + if (codec->caps_internal & (FF_CODEC_CAP_ALLOCATE_PROGRESS | >>>> + FF_CODEC_CAP_SETS_PKT_DTS | >>>> + FF_CODEC_CAP_SKIP_FRAME_FILL_PARA >>>> M | >>>> + FF_CODEC_CAP_EXPORTS_CROPPING | >>>> + FF_CODEC_CAP_SETS_FRAME_PROPS) || >>>> + codec->capabilities & (AV_CODEC_CAP_AVOID_PROBING | >>>> + AV_CODEC_CAP_CHANNEL_CONF | >>>> + AV_CODEC_CAP_DRAW_HORIZ_BAND | >>>> + AV_CODEC_CAP_SUBFRAMES)) >>>> + ERR("Encoder %s has decoder-only capabilities set\n"); >>>> + if (codec->capabilities & AV_CODEC_CAP_FRAME_THREADS && >>>> + codec->capabilities & AV_CODEC_CAP_ENCODER_FLUSH) >>>> + ERR("Frame-threaded encoder %s claims to support >>>> flushing\n"); >>> >>> I didn't see such requirement in codec.h and wonder why the two flags can't >>> coexist, could you please provide a little more explanation ? >>> >> >> The only reason for this is that it is not implemented to flush an >> encoder that uses frame threads. >> (Do you have any specific encoder in mind?) > > Thanks for the answer. > > ( There is a patch ( > https://patchwork.ffmpeg.org/project/ffmpeg/patch/1564549538-25724-1-git-send-email-linjie.fu@intel.com/ > ) to support variable resolution encode, and the revised version ( > https://github.com/intel-media-ci/cartwheel-ffmpeg/blob/master/patches/0011-fftools-ffmpeg-support-variable-resolution-encode.patch > , which is not sent to ML yet) added AV_CODEC_CAP_ENCODER_FLUSH to > ff_rawvideo_encoder, and recently AV_CODEC_CAP_FRAME_THREADS was added to > ff_rawvideo_encoder in FFmpeg, so this error was triggered in testing) > > BRs > Haihao > 1. AV_CODEC_CAP_ENCODER_FLUSH has actually been added for encoders for which closing and reopening is prohibitively expensive; the rawvideo encoder is the exact opposite of this. 2. The unimplemented frame-threaded part of flushing an encoder is roughly as follows: Wait until all the worker threads have finished encoding what they have and discard the result. 3. I don't know whether it is desired to update the values set during init based upon the new parameters. If so, the update_thread_context would need to be repurposed, but this is probably more complicated than simply adding flushing to frame threaded encoders. - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".