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 0FCF445274 for ; Mon, 16 Jan 2023 04:35:06 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0B94868BD51; Mon, 16 Jan 2023 06:35:04 +0200 (EET) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0638368B7FA for ; Mon, 16 Jan 2023 06:34:57 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1673843703; x=1705379703; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=iHJorgRQwCL/nrki15C9ZpkQnFn6xqGJRwPjG0dmb0w=; b=L8hou6TlkvWFQBgzhDs3MPobE60+/xSGjPLLi8I+LsThD4rgh1dmlEI6 JtH38ON1ex3PCfRPpBj2Mkm6IDRBcEQCKsxivkDLvP3BAv3qPzQDIM1PW gLNgusR4uPZRq2aw86k0FbT5afhFPEKIpQB/JS819J+ulvWNH8XN0a0kF HTZvb+keBjwMh3ZQC525mvN7I8OO9hxyA/cMRm0o2VNWG4ajryETScvaY gk9nbP1uDVA5LzNQCvFqxv94Me+uylBmvq5nt7CixRrPQC70/zUDSNxxM A7d6NroxzlxWH6s6wKXzJyOfsv/jgm8XvJbPHooESFuAOLubeUJBnnXss w==; X-IronPort-AV: E=McAfee;i="6500,9779,10591"; a="388879195" X-IronPort-AV: E=Sophos;i="5.97,219,1669104000"; d="scan'208";a="388879195" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Jan 2023 20:34:55 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10591"; a="660850081" X-IronPort-AV: E=Sophos;i="5.97,219,1669104000"; d="scan'208";a="660850081" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga007.fm.intel.com with ESMTP; 15 Jan 2023 20:34:55 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Sun, 15 Jan 2023 20:34:55 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Sun, 15 Jan 2023 20:34:54 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Sun, 15 Jan 2023 20:34:54 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.104) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Sun, 15 Jan 2023 20:34:54 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gQK8Lt2r5cVKbYbG+wGjVRaFiEgFSXrd7oLXM9jHRJhb2mTvIDhKX90/n5SFwt541ZEkL6YRfrYdaZAgMCG9uDMZls5DXYF9URxxtPhGsfCVxY2g3Ki9mm1murvjxPvCxBG/pavpk9HMFfMAew/CqFe4VJn4bosnJ3tRdFWh+EzH3Zu7Ajj61iIhcywIpzasx4dqT0uES0JXVyp5Js3nmOwP+OeVEoPNtd0+kpoEbx86TOsyGbP8tJ84XPoeZzCOSB9JlhzKDdw+UNqaXpKT3vSGiZzY6O3V9xuP3L0obVPcg4WL0dXHqx3RYqrOllYoqvG5nJrMG204v1wbcUdRVA== 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=iHJorgRQwCL/nrki15C9ZpkQnFn6xqGJRwPjG0dmb0w=; b=D76BTCCc2yBDqnIopVIQwHRchXj+FE8oXc3GAaDOi8MTtRJHpdTcMy2LTZt8BTcTM8QQn2nXDLXhw4S1Xec0w0DrSD4xALiMcS1uDh2Ln5Xli+DD5LK/01KHmCagZr8Kx1VXO9QM/O2nQuAEvp5mD+uOvKS7KRH6KzZRcfsQEaFzdgw8uarxb0jIoQhyDy4ezXbyimbqq+uDgxJ4qxl5idGY1o/EKV21ecakNeU/OqHS0Eksv8I5ms606uaheMzKNojMudcq1Xv+AoL0UjpBj4R62veeovRX7AxisN490eziC0dxxt6CIBHalRV78F+5nONl4tZujTup1ZsulyDchA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BN9PR11MB5515.namprd11.prod.outlook.com (2603:10b6:408:104::8) by DS0PR11MB6328.namprd11.prod.outlook.com (2603:10b6:8:cc::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.19; Mon, 16 Jan 2023 04:34:52 +0000 Received: from BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::e3ef:177c:4008:7ee9]) by BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::e3ef:177c:4008:7ee9%5]) with mapi id 15.20.5986.023; Mon, 16 Jan 2023 04:34:52 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH 2/8] lavfi/vf_vpp_qsv: handle NULL pointer when evaluating an expression Thread-Index: AQHZJjqRt4i9GcIaFEiARF3MP+pWvq6aT4qAgAYrvgA= Date: Mon, 16 Jan 2023 04:34:52 +0000 Message-ID: <0e08ddcbedf5766ad5a87089be5c65b469a68216.camel@intel.com> References: <20230109071210.1829699-1-haihao.xiang@intel.com> <20230109071210.1829699-2-haihao.xiang@intel.com> <34b9ffc17012a752a69c9874dc31c68b86d30aac.camel@intel.com> In-Reply-To: <34b9ffc17012a752a69c9874dc31c68b86d30aac.camel@intel.com> Accept-Language: en-AS, zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR11MB5515:EE_|DS0PR11MB6328:EE_ x-ms-office365-filtering-correlation-id: 1e16c272-62a7-4b1f-3ab2-08daf77b027e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: N1E/TZS5ZPnS970EtIPR2EkM2NSdRDslYAkD6RNsFevYWB36cr/ZUPJDai8jf101Q6y0BRMMOzkV2cSe3dDX+9JoR7vnwXVZPgNQfNaDqHWZMKqH04xRDCKMkOY8UCjNekb99qS0Bw8EU1G9UHGXHrcS9dPjOHd4VoscXeU2tbjn7q72FRCR4DgbTCim15zQh04pmKvIapgP3amGHZK+eVlPUgGI2GA+0x4q62Kon8U5+vEk84FG/mGDMkmt5AcCPOLefV+nQdXrtUaHrGBKJlmbo+DajEqk7LFtOowOK17q7iTDSpjzA+IxOwLOgvO3NZILiIL7EkBE2UQNxvk8axfBNcQEaXHSWgV3PaU7rWk2ZKBTqlxj02Pxg/gY3uliD05TM4exMp0cwMrb8IhfZCv45u8rcFVueccmzYv8+VWeTBlOlkGj7+6rjmHnHa8xxtFXdnXo/2tXMujY038vUsDh42Y4P56lN+yRsz/cTRG8Qiwco+X5LMtxcwnHsvdvWZ5U2JTkTtvydBJEU+RpnEXgCsg2JpXce6lBJG3fiIQwupGO89iMY28o6EbEL4u3wI+B1c8wZgb8vVgpYBBZ6W9q2g8XTSAgr+2n2AXB5J00Av0b9ygFRSqNoOc0BNXzo8EZuL7HxbfE2Wz0LwatSetyMMADA40RZAo3sRGxHQFPY6buEpKKWAgO4KLnhLdZgJOHjf3LhkBXW2Fjw/ljxA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5515.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(376002)(346002)(396003)(366004)(136003)(39860400002)(451199015)(316002)(71200400001)(41300700001)(8676002)(66946007)(76116006)(6916009)(64756008)(66556008)(36756003)(66476007)(66446008)(86362001)(83380400001)(91956017)(82960400001)(38100700002)(38070700005)(122000001)(478600001)(6486002)(2616005)(26005)(6512007)(6506007)(186003)(2906002)(8936002)(5660300002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dHVIbFZ5Z2lRVzNQOGhqeTV5YlIvM0tzdk5pOVcyQkVBWGk4V0JWZnpISW9P?= =?utf-8?B?eFVCaWZhSmtId1pUck03UTgxYUhwMU5xZWRabWR2MTFoeStNTDZ3MmhSUkNF?= =?utf-8?B?YnAyRzRtMzAzeGxlVHdVbE55Tzg3VklEcE8rNmFlOGdVaWF1RnBXTmZOQyt1?= =?utf-8?B?MnJtdC8wN0RyNFlOY1ZOd1hSS01PS1ZRKzNJcENlNnJGVGxTYllKUkp1bWcx?= =?utf-8?B?M1hDcE4zS3hYRVY3ZE5NQ1gyc1FmQ3RxbmFXUVBZb1htMHU3UWEwS2NaTDV2?= =?utf-8?B?bWZxTytpWVhiTnkwMkR6OG9ZaERCalNSNmM0WWhLQk40S2t4YVd0ZWtpWDZw?= =?utf-8?B?eTl1VjdFc1FjdnByMlk1U2FOUUFoNWN2ZEY1TFJiL1pkQkI3UmxqalVlaFc2?= =?utf-8?B?aUszdU41MG4xK2pYYlFxK3BmSklISkpaNmdyYWZUTjNBcGtZZU8rQjdvVStW?= =?utf-8?B?MXVucGRvZURZNWZTTUQrTkM0VGZWT2lXOUlZOFJCdGc5NDhNbWppLzdFeTJ5?= =?utf-8?B?RFI1NEo2Q21iSEoyOXFWRWxwdXVCc2ViajdQaU5XQ3JEdVZlcVR3ck5oaStW?= =?utf-8?B?SURabHRLOXVtM0Rnb2ZDSzU4b08wZDhVMjdGUm9UY1hpcndGbDFmOE9YdWQ0?= =?utf-8?B?Qi8xanVEOEVWVWRISkkzQVprZEtTcDJGeTRRblA2RWVDSVJqZExmK1VnL3lr?= =?utf-8?B?ZGthRmJFMHQ3ajFJNForTWFEcGhRUXZOMDN3ZHNiN1lxeFdOMzFFZG8vYVBh?= =?utf-8?B?eWFMdXBvSmowMG0yWTFWSytmbXN3aXMwSlFVMHhPS050QkJhN2ZCVzZVM3ND?= =?utf-8?B?SnNvV1JuT2FVZmhEY2JSUE9VR244RlUyWVNQejJVTDFIOVZISEtHMU1zbFpV?= =?utf-8?B?Y0VqSTdsR2E0Kyt2aURlVFdOMnpWNkNaNk10ZVJUSHZyMFhaaG96T3V3cnRw?= =?utf-8?B?eWtTdysvak9VcnFZK0thZGpTLzFuTnlPNGkva09uNGc2aEpXZlVMSWtZRnIw?= =?utf-8?B?U29aTFBpbDZjclB1TUdKKzVLaGJ0eEk5ZmIxZ3IwcDVWcmowTXppOERBRUhC?= =?utf-8?B?OWFvY2dCaFN0Q2FPTnQ0aWQ0cUI1YncwaWVpUHdUd1BCRXRSUUlBNGs4b09o?= =?utf-8?B?c2tET0JSN1AyTU1mWmJDQXRvdk5WZnFtSVZYTFVDNHFSTXV0TEJOdEU0NWtK?= =?utf-8?B?R09BK2lQc1ptL1YrWExteEhNQUN6dWFBVG1lVko0OHZweVRzMGFpVml6cTI1?= =?utf-8?B?UjJKc05JR25vVGo0R1VLWll4Rjd6MG56ZnNXMzNacDhBVHBLeTA5SHdpMFRN?= =?utf-8?B?TGFTdG5ScmVGbEs3VXpNTUUrdlErb2tSNGhvTGlrSHVxNCtlUWxzSUg2bFdr?= =?utf-8?B?d2s4RndFRnc5UGFQZC8xWEtMNEo3cmtxTEFkOEIvY2tmMVVrZG1QSW5CTXdX?= =?utf-8?B?aE5JTVVGanAxVkFEczJ4TURrcTR5MTNwVmFWbnpoQ25yRXhab0xnTFF2UmVp?= =?utf-8?B?azE0aHhrcG9vZVVMcTVOanVBbHVDTlpoS3NKMWV4U1dremMyVE1RNlZhRHoy?= =?utf-8?B?YUN2cG5BTGVpZ1BRM2ZHR0MxUUl5VVF6NWlNeTR1UGVPM3YzT3JSK3M0NTcz?= =?utf-8?B?bmZXOVpHUTNvMlBPRyt2bTR4U3g4b3dIRnREaWx5eVFKTHBxWTlOQ2RQd2I3?= =?utf-8?B?eG9MZFQ2MjUwWUJSSndNd2tIU2ptYTdkdzNGNzVJeXA5cXZ2TFo2dFV5Tjd1?= =?utf-8?B?dWxUenRHVWxFZ0xGSkVXTEZtc2NxRGM0ZEpZZ1dGZW04aEZNa3dFS0JqbmNw?= =?utf-8?B?a29HV3U1QVBsblNkeC9XNlVPQkJUdW1MZnhoQnowYzhtY1Vyd3J3MlcrOU1x?= =?utf-8?B?RmJINXpDMytEYzczRmZxM3ZuZmhSVm5jY25IaVhweVVWaXdvN0FJTHBHblZi?= =?utf-8?B?VXhYUWtZaGlGUkNHSFJiL2d5NW5TYTNWYmdLRzErREQ0VDJEYWZ5aHhDSEt0?= =?utf-8?B?cW5tSmN1cDhRcjV1N29DU1ZHT0RvUXlCaGFXcUorZXRwODRtMWQ1RzlCelJ0?= =?utf-8?B?Y2J5Nm5NZjUxRzZqUS9pdFVZc1pQOEZzWFNWdzFSWE94d252TWw2TUYxc01w?= =?utf-8?B?YVBoTXo5aTRxYjNYQkpIdHdLcmR1S3drdEVJajFpSEtndzBUbmN5bDhNMW1x?= =?utf-8?B?Y2c9PQ==?= Content-ID: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5515.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1e16c272-62a7-4b1f-3ab2-08daf77b027e X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jan 2023 04:34:52.0742 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 887Enjkg1GY9wjjtwZtuCaBP0nQ7mbKHdwQSx12YiQ3FNh/wIYt85rM3SinHLVPmFcZFziWggFlrSqnFvFuTrA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR11MB6328 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH 2/8] lavfi/vf_vpp_qsv: handle NULL pointer when evaluating an expression 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: On Do, 2023-01-12 at 06:20 +0000, Xiang, Haihao wrote: > On Do, 2023-01-12 at 05:01 +0100, Andreas Rheinhardt wrote: > > Xiang, Haihao: > > > From: Haihao Xiang > > > > > > This patch provides default value if the expression is NULL. > > > > > > This is in preparation for reusing the code for other QSV filters. > > > > > > Signed-off-by: Haihao Xiang > > > --- > > > libavfilter/vf_vpp_qsv.c | 36 ++++++++++++++++++++---------------- > > > 1 file changed, 20 insertions(+), 16 deletions(-) > > > > > > diff --git a/libavfilter/vf_vpp_qsv.c b/libavfilter/vf_vpp_qsv.c > > > index 8d4227f841..3a0a395732 100644 > > > --- a/libavfilter/vf_vpp_qsv.c > > > +++ b/libavfilter/vf_vpp_qsv.c > > > @@ -172,14 +172,19 @@ enum var_name { > > > static int eval_expr(AVFilterContext *ctx) > > > { > > > #define PASS_EXPR(e, s) {\ > > > - ret = av_expr_parse(&e, s, var_names, NULL, NULL, NULL, NULL, 0, > > > ctx); > > > \ > > > - if (ret < 0) {\ > > > - av_log(ctx, AV_LOG_ERROR, "Error when passing '%s'.\n", s);\ > > > - goto release;\ > > > + if (s) {\ > > > + ret = av_expr_parse(&e, s, var_names, NULL, NULL, NULL, NULL, 0, > > > ctx); \ > > > + if (ret < 0) { \ > > > + av_log(ctx, AV_LOG_ERROR, "Error when passing '%s'.\n", s); \ > > > + goto release; \ > > > + } \ > > > }\ > > > } > > > -#define CALC_EXPR(e, v, i) {\ > > > - i = v = av_expr_eval(e, var_values, NULL); \ > > > +#define CALC_EXPR(e, v, i, d) {\ > > > + if (e)\ > > > + i = v = av_expr_eval(e, var_values, NULL); \ > > > + else\ > > > + i = v = d;\ > > > } > > > VPPContext *vpp = ctx->priv; > > > double var_values[VAR_VARS_NB] = { NAN }; > > > @@ -209,30 +214,29 @@ static int eval_expr(AVFilterContext *ctx) > > > var_values[VAR_DAR] = var_values[VAR_A] * var_values[VAR_SAR]; > > > > > > /* crop params */ > > > - CALC_EXPR(cw_expr, var_values[VAR_CW], vpp->crop_w); > > > - CALC_EXPR(ch_expr, var_values[VAR_CH], vpp->crop_h); > > > + CALC_EXPR(cw_expr, var_values[VAR_CW], vpp->crop_w, > > > var_values[VAR_IW]); > > > + CALC_EXPR(ch_expr, var_values[VAR_CH], vpp->crop_h, > > > var_values[VAR_IH]); > > > > > > /* calc again in case cw is relative to ch */ > > > - CALC_EXPR(cw_expr, var_values[VAR_CW], vpp->crop_w); > > > + CALC_EXPR(cw_expr, var_values[VAR_CW], vpp->crop_w, > > > var_values[VAR_IW]); > > > > > > CALC_EXPR(w_expr, > > > var_values[VAR_OUT_W] = var_values[VAR_OW] = > > > var_values[VAR_W], > > > - vpp->out_width); > > > + vpp->out_width, var_values[VAR_CW]); > > > CALC_EXPR(h_expr, > > > var_values[VAR_OUT_H] = var_values[VAR_OH] = > > > var_values[VAR_H], > > > - vpp->out_height); > > > + vpp->out_height, var_values[VAR_CH]); > > > > > > /* calc again in case ow is relative to oh */ > > > CALC_EXPR(w_expr, > > > var_values[VAR_OUT_W] = var_values[VAR_OW] = > > > var_values[VAR_W], > > > - vpp->out_width); > > > + vpp->out_width, var_values[VAR_CW]); > > > > > > - > > > - CALC_EXPR(cx_expr, var_values[VAR_CX], vpp->crop_x); > > > - CALC_EXPR(cy_expr, var_values[VAR_CY], vpp->crop_y); > > > + CALC_EXPR(cx_expr, var_values[VAR_CX], vpp->crop_x, > > > (var_values[VAR_IW] > > > - var_values[VAR_OW]) / 2); > > > + CALC_EXPR(cy_expr, var_values[VAR_CY], vpp->crop_y, > > > (var_values[VAR_IH] > > > - var_values[VAR_OH]) / 2); > > > > > > /* calc again in case cx is relative to cy */ > > > - CALC_EXPR(cx_expr, var_values[VAR_CX], vpp->crop_x); > > > + CALC_EXPR(cx_expr, var_values[VAR_CX], vpp->crop_x, > > > (var_values[VAR_IW] > > > - var_values[VAR_OW]) / 2); > > > > > > if ((vpp->crop_w != var_values[VAR_IW]) || (vpp->crop_h != > > > var_values[VAR_IH])) > > > vpp->use_crop = 1; > > > > Does this add runtime checks to cases where there are not necessary? > > No. It is irrelated to runtime check. It is used to make sure each variable > have > a right default value even if the corresponding expression is NULL. > > E.g. vpp->cw is NULL when we re-use functions and data structures in > vf_vpp_qsv.c and qsvvpp.c for deinterlace_qsv filter. > Will apply this patchset if no more comment. -Haihao _______________________________________________ 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".