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 3C10E436EC for ; Wed, 27 Jul 2022 09:35:32 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5683568B9AD; Wed, 27 Jul 2022 12:31:22 +0300 (EEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2020.outbound.protection.outlook.com [40.92.90.20]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E229668B914 for ; Wed, 27 Jul 2022 12:31:05 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i7WOBISKizh88Rspz5+FJevC2h07aZjGq8+RsnsHZv4Rza3ry5mACIdZedtsUJI1wnmTyCrlJwqUQpzLTeDmNOXQdc6SvPF1q35b/cZM8EItNaSqUSAcw7lhLKNW+EqwAsuiEy/+ifj1XpkaLi5NzyUNfoqp5TtM1BfblT4bE2iCLfWW2WSC5K4PTr1y8gsyuDEEt4i2/oIeD06oAXzYlhSNxWgIeYkDFo/ba1cCh8w1M8OAvnDaHdsrlwPnEuLwxjNTI3nWa7dXjjDVNn2borqh7oWT27ELr8AqbvHyFDE/1gQbbw0A/E1Z0afAXmNQv/3qvhkoSj54V2kknIUQ8g== 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=FkX/mMZnRgvK18s+BPwnxSPY4W7Pkqa5fI9lALPql+g=; b=LhkEtbPWPPhU+YrA0rgTK3RWpc8grpl55pBygZgaDSjv8zST2abJ2wax1YpVK/Qhte3RXwFtAul48NXIclBNhdgxY7x4puV4xyOP34C8emyFOrPXiMsRpEgVuch6z2lvLS0K3fzV+BWIR15Qx9dmu2Hz3ujHqsdIgGIaC1GtxhARb9sPheBYXZpcTkqVWJC+yb3/jMlPPuOYk6IMwXngCPQI2JYqJqmY+b5nbpx/rzrqMRXf5Wtp/28Ndzg6K9STUjJi5/LKmCb60yP2js3xgUIZ6SbXw+WtMnZS9fxHU2R+YnNcItClow/jxW+H2u/lRZgV0Vf2qAlzEhxflBE33w== 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=FkX/mMZnRgvK18s+BPwnxSPY4W7Pkqa5fI9lALPql+g=; b=oZjEW2/FImh0qOet+XYiMpW/6xXQFFMeI1rkeTPWizJY1kEUpofnIm26NcFEX3nQ2hvKA45UdN1thgy3IriP41z9YJf5w7J1voQjfy0IbTy9HTtkMYgzXGKVGsFbywkF6FGqMfhE9y/eEZ9inkHddV6MsD03QmovGMqFEg8zXRJbyKrEGmT0NgzbTSKG+eejOtjGcJv1TPsHGFBSCy/kR6mB5hvE6YDTR7DAL9XAIRhEn+VLRz4obp7j8Vtx7asoJD1YHdnusLIOicX6nWFafGhcrgM+vsRO/IX+FGx2b5zftP4oA4ZCgsPc09LXwBADpiztOxgxkGDFl9bBKrUaag== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB9PR01MB9174.eurprd01.prod.exchangelabs.com (2603:10a6:10:366::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.25; Tue, 26 Jul 2022 22:09:26 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5458.025; Tue, 26 Jul 2022 22:09:26 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 Jul 2022 00:07:58 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [aGAVAFYTlQR+O75il8AWSUajM7/JYETy] X-ClientProxiedBy: FR3P281CA0157.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a2::13) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220726220814.695563-22-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bf149001-a08d-4bd7-fd12-08da6f538107 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiQG9fQ4e5wexDZEKzsZPbgBvqq+p2G+DEkM0mNflI0PsE+oDcK2GhyFZ1fT2PkeBNKGEHYEXw0FBL2taNscTYwiqbAUYsq6LtvwDGqQQ896rwwnVEmJFZxcd5xhrglExrOFnr0Cd9ppkl9CVsNN6DlQ7yqOdGAsLpwDL7lA0ioeeCKrtBdEg4hUEyTn+PnXqFJxQr3E+I7DGvmlDgzpc0jg3BWMH3LXvq/J30Tq78S6mw4tU8GwsMatRjMNTPVDzXA8dpkEZV34mlVa20Cv7iWGGWSD+Ki2XrfkEaZGBhgz4Ie2kMjwpxTqQeKExHSFZ0TcBzWNywrsq9V943usAgnR9G45xmuuhBmOMfk/eI/u1fEh1o83TEorX6qv/m4NFaGTYKzo88PMJVf1VpYSlYzIdHNZMJ6e/p2BCZEpt6wYR7m4n8SuIa78j2TSBNoZqdmnTI3KvlZ4gIF0m0Fk4CCq+3RgrWVuhCf9kCOavKl3tApO/dyBVtuAvJEVvExgXFu5u7OpaT4hhif3u5pof9IhXxgeOF1rvAtIKfNVseoAHo1jK2xaJbRqhpxNlmN0Q7jBMdx9v7j5TyFNgUmGvLUVsONCWw1zhxWHAQdZ8fbS+1byH+hDtL5NZ2oQ7jnX7O7l3diQ36BeNzW6bPO7Z8zC8Y2IYsIANl5WtKKEivDi7WMXHwfyb3gLVa81fHh9aWq0LXI7mRsksvyLQLrPNFBZx/S2YEMWbXFw0PqPHP0YXZi7rr3rhYqSNnaXkpPgILc= X-MS-TrafficTypeDiagnostic: DB9PR01MB9174:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VaH1OKF6K9FMBKZO2iftFFuUAGOKyPyCpsKasccn09gD1CTe4xbaaXOQYmOtHPgMMcMBnVb8Ec7NAc+RwZ9bPUyK+tgANRukVqqdWfMlI/AabVTOnzZi16aejZwYIb5rEu6KIAW3/i8lIorXrTe6d9pk3+HRs1VTwniamifT4yL5zwCGAjQJPeelxUxJoEqOyPo9ejmwEVdPV9iOhzmNJ/U8q/Y4kaCTiWRfz2+/TvD1l4nYDnBBttq5TfZYaYflwIp1Uwh76U48XsVS8RqPQD17R8RO6+oyLKejydmB4LBjuJ7ou7r2g2OK9O7/P5xB/hK21ExRvU96AwlTR7dXMjd76MY6HtTI1WwP/6i/klx5qOf1YGGFZiQ38FoyN1ry4dFbn9uq5RCA50Ic4GFPWFVwaoT9MniTohEPXXAIKaHfY68IUO5LxW53gROS9q/u69by0eh8JGj51yNa8K3hbvsCqbfTOuIE5sCtNmXKIfOVpUbTD+dgMKV7cKSfuMFs6zZuhY/N6QK4UeEc/KdIJp8U2fHiR9TR/kJmfJnKhD/m8Z1zTD1kFJi3smb6D6zMO/5Fa8vKC58qFLms8LantJ3qYgmeks3C3TgVfBunyCjPFMOgENf4BddZhCiqWine0t+YcvSh4EE6T9rB49VHlg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ti+yTck4ap84sRBQTuzOb04aQB2rz4wZx9cUVDGYOc39nKj2nk+mmRiIMZN0?= =?us-ascii?Q?gknT4uyoVAux2qtNcguFwcvEYPQoQNjX0NLhE0Rtd7vBIm1oKXwedwPGcoNb?= =?us-ascii?Q?q67N63/n4Dk3J/filZSqig6NX6a/JV3HCDSATU9Coj0yVvuGYYoYRZCFMAFp?= =?us-ascii?Q?jR8L8wzVyVe4qhr6HjOJWcr3TJph5hKhniJtc4XnsCGbGg/DhGlblHs/7V+L?= =?us-ascii?Q?CB5ZlTosVaBloj60aBC5eJmrIr9jtb2D61J0t2sPR8TQUpH0N6Xyj9PNdxvt?= =?us-ascii?Q?hiuNiE4TrTZkjey9LbF/qnWTdnTmi3Mi0I/sUUnMcp0Ih63Eepk3UmfLD0d0?= =?us-ascii?Q?Y/cMMFecH8LMJUuRGh8lMCWIn7r0CwjfU2y1C0AhRD3bWX0xOwORCfjPhX5R?= =?us-ascii?Q?ZexbdPtJY4h377A1dS73OvchjAik6ciX0SKkW6UbSpEzHq+MBqCmw2zjRdmv?= =?us-ascii?Q?PJAXa3k61zSb3WX19w1u+aFvofHdJcX50ehMU6Rr/JD+zcVMDIh8GvAcglLl?= =?us-ascii?Q?fZRLm75AwUnhFhrJr71ywFSDvZNj8zuZkA7t68xdNnUcEgFVnEnGwFgsd8Xn?= =?us-ascii?Q?CHxKLZP6srr29BnWKBW4k110Y13Mrks2qleC+im1f8u8yYRhI9Wgp48Q5Nvs?= =?us-ascii?Q?rPdmA4S7WkLDB4M9zS+X4zoQksRz70CobotPvRQV3iyrWxZW/KHhBglhVeJp?= =?us-ascii?Q?93u5e+DC+Zv+7XUm2c88uOjTT9CEJPHAHHCLM3fZRAEWivDpL+oqRcv0d15y?= =?us-ascii?Q?VRX9o+yHSkUGPNsAc7/VXNgmsItWKaYBSKZPJLKZm+WuVGjbbHNfmazfxX4m?= =?us-ascii?Q?ejGEWNsqnvOTQZ+arBIzlVRgcQiJs5vdSLeUUMbP+VCC5XRAFRaCvGaJ4LPI?= =?us-ascii?Q?QOLoaowo4HIAP3I+y3iSk3LX1uquelJXNDQ2i4A38KlgnI+lc8un9nV2n2K7?= =?us-ascii?Q?vIvdhtYSUvl8VZ/fbiTE8K3WokJ40LA+2Kz4VlRGQyAojEMbm3o/PeDX8lc7?= =?us-ascii?Q?/YKa6OQ42rukcMTGv53+NKyZea/dJHNDJ7/oiXvTmKj8eZ2jhZW1Qe+sCadV?= =?us-ascii?Q?Wb1J9R1pXhTUMlGkvXfiXECtaljGGGEHZrnbJhqAErVFb+vMJMW3cUuzo0tC?= =?us-ascii?Q?12Y9OliHd/tmes+PjI7PUXnbXT34QhedpgatSxQ9N7iYk6lGU3PKV9JPSO2V?= =?us-ascii?Q?ObZgJJTFxeKEbsKJOJUxQ5D9+oBxEc4DB6nq8SDT82KhsjUP8gOS533qgbJV?= =?us-ascii?Q?betGu+GRQtjyJzc27NEWcSfPH8d42QWqu3TNbhhq3bxTPk8x015xYlzBevp7?= =?us-ascii?Q?9bI=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bf149001-a08d-4bd7-fd12-08da6f538107 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jul 2022 22:09:26.7068 (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: DB9PR01MB9174 Subject: [FFmpeg-devel] [PATCH 23/39] avcodec/ilbcdec: Fix const correctness 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 Cc: Andreas Rheinhardt 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: Also constify everything that can be constified. Signed-off-by: Andreas Rheinhardt --- libavcodec/ilbcdec.c | 66 +++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/libavcodec/ilbcdec.c b/libavcodec/ilbcdec.c index 4c82631c34..4905ee4145 100644 --- a/libavcodec/ilbcdec.c +++ b/libavcodec/ilbcdec.c @@ -331,8 +331,8 @@ static void lsf_check_stability(int16_t *lsf, int dim, int nb_vectors) } } -static void lsf_interpolate(int16_t *out, int16_t *in1, - int16_t *in2, int16_t coef, +static void lsf_interpolate(int16_t *out, const int16_t *in1, + const int16_t *in2, int16_t coef, int size) { int invcoef = 16384 - coef, i; @@ -341,7 +341,7 @@ static void lsf_interpolate(int16_t *out, int16_t *in1, out[i] = (coef * in1[i] + invcoef * in2[i] + 8192) >> 14; } -static void lsf2lsp(int16_t *lsf, int16_t *lsp, int order) +static void lsf2lsp(const int16_t *lsf, int16_t *lsp, int order) { int16_t diff, freq; int32_t tmp; @@ -364,7 +364,7 @@ static void lsf2lsp(int16_t *lsf, int16_t *lsp, int order) } } -static void get_lsp_poly(int16_t *lsp, int32_t *f) +static void get_lsp_poly(const int16_t *lsp, int32_t *f) { int16_t high, low; int i, j, k, l; @@ -391,7 +391,7 @@ static void get_lsp_poly(int16_t *lsp, int32_t *f) } } -static void lsf2poly(int16_t *a, int16_t *lsf) +static void lsf2poly(int16_t *a, const int16_t *lsf) { int32_t f[2][6]; int16_t lsp[10]; @@ -418,8 +418,8 @@ static void lsf2poly(int16_t *a, int16_t *lsf) } } -static void lsp_interpolate2polydec(int16_t *a, int16_t *lsf1, - int16_t *lsf2, int coef, int length) +static void lsp_interpolate2polydec(int16_t *a, const int16_t *lsf1, + const int16_t *lsf2, int coef, int length) { int16_t lsftmp[LPC_FILTERORDER]; @@ -437,13 +437,13 @@ static void bw_expand(int16_t *out, const int16_t *in, const int16_t *coef, int } static void lsp_interpolate(int16_t *syntdenum, int16_t *weightdenum, - int16_t *lsfdeq, int16_t length, + const int16_t *lsfdeq, int16_t length, ILBCContext *s) { - int16_t lp[LPC_FILTERORDER + 1], *lsfdeq2; + int16_t lp[LPC_FILTERORDER + 1]; + const int16_t *const lsfdeq2 = lsfdeq + length; int i, pos, lp_length; - lsfdeq2 = lsfdeq + length; lp_length = length + 1; if (s->mode == 30) { @@ -478,8 +478,8 @@ static void lsp_interpolate(int16_t *syntdenum, int16_t *weightdenum, } } -static void filter_mafq12(int16_t *in_ptr, int16_t *out_ptr, - int16_t *B, int16_t B_length, +static void filter_mafq12(const int16_t *in_ptr, int16_t *out_ptr, + const int16_t *B, int16_t B_length, int16_t length) { int o, i, j; @@ -520,13 +520,14 @@ static void filter_arfq12(const int16_t *data_in, } } -static void state_construct(int16_t ifm, int16_t *idx, - int16_t *synt_denum, int16_t *Out_fix, +static void state_construct(int16_t ifm, const int16_t *idx, + const int16_t *synt_denum, int16_t *Out_fix, int16_t len) { int k; int16_t maxVal; - int16_t *tmp1, *tmp2, *tmp3; + int16_t *tmp1, *tmp3; + const int16_t *tmp2; /* Stack based */ int16_t numerator[1 + LPC_FILTERORDER]; int16_t sampleValVec[2 * STATE_SHORT_LEN_30MS + LPC_FILTERORDER]; @@ -630,7 +631,7 @@ static void add_vector_and_shift(int16_t *out, const int16_t *in1, out[i] = (in1[i] + in2[i]) >> shift; } -static void create_augmented_vector(int index, int16_t *buffer, int16_t *cbVec) +static void create_augmented_vector(int index, const int16_t *buffer, int16_t *cbVec) { int16_t cbVecTmp[4]; int interpolation_length = FFMIN(4, index); @@ -696,7 +697,7 @@ static void get_codebook(int16_t * cbvec, /* (o) Constructed codebook vector * /* do filtering to get the codebook vector */ - filter_mafq12(&mem[memIndTest + 4], cbvec, (int16_t *) kCbFiltersRev, CB_FILTERLEN, cbveclen); + filter_mafq12(&mem[memIndTest + 4], cbvec, kCbFiltersRev, CB_FILTERLEN, cbveclen); } else { /* interpolated vectors */ /* Stuff zeros outside memory buffer */ @@ -704,7 +705,7 @@ static void get_codebook(int16_t * cbvec, /* (o) Constructed codebook vector * memset(mem + lMem, 0, CB_HALFFILTERLEN * 2); /* do filtering */ - filter_mafq12(&mem[memIndTest + 7], tempbuff2, (int16_t *) kCbFiltersRev, CB_FILTERLEN, (int16_t) (cbveclen + 5)); + filter_mafq12(&mem[memIndTest + 7], tempbuff2, kCbFiltersRev, CB_FILTERLEN, (int16_t) (cbveclen + 5)); /* Calculate lag index */ lag = (cbveclen << 1) - 20 + index - base_size - lMem - 1; @@ -716,8 +717,8 @@ static void get_codebook(int16_t * cbvec, /* (o) Constructed codebook vector * static void construct_vector ( int16_t *decvector, /* (o) Decoded vector */ - int16_t *index, /* (i) Codebook indices */ - int16_t *gain_index, /* (i) Gain quantization indices */ + const int16_t *index, /* (i) Codebook indices */ + const int16_t *gain_index, /* (i) Gain quantization indices */ int16_t *mem, /* (i) Buffer for codevector construction */ int16_t lMem, /* (i) Length of buffer */ int16_t veclen) @@ -753,10 +754,10 @@ static void construct_vector ( } } -static void reverse_memcpy(int16_t *dest, int16_t *source, int length) +static void reverse_memcpy(int16_t *dest, const int16_t *source, int length) { int16_t* destPtr = dest; - int16_t* sourcePtr = source; + const int16_t *sourcePtr = source; int j; for (j = 0; j < length; j++) @@ -766,7 +767,7 @@ static void reverse_memcpy(int16_t *dest, int16_t *source, int length) static void decode_residual(ILBCContext *s, ILBCFrame *encbits, int16_t *decresidual, - int16_t *syntdenum) + const int16_t *syntdenum) { int16_t meml_gotten, Nfor, Nback, diff, start_pos; int16_t subcount, subframe; @@ -911,12 +912,10 @@ static int32_t scale_dot_product(const int16_t *v1, const int16_t *v2, int lengt return av_clipl_int32(sum); } -static void correlation(int32_t *corr, int32_t *ener, int16_t *buffer, +static void correlation(int32_t *corr, int32_t *ener, const int16_t *buffer, int16_t lag, int16_t blen, int16_t srange, int16_t scale) { - int16_t *w16ptr; - - w16ptr = &buffer[blen - srange - lag]; + const int16_t *w16ptr = &buffer[blen - srange - lag]; *corr = scale_dot_product(&buffer[blen - srange], w16ptr, srange, scale); *ener = scale_dot_product(w16ptr, w16ptr, srange, scale); @@ -952,8 +951,8 @@ static void do_plc(int16_t *plc_residual, /* (o) concealed residual */ int16_t *plc_lpc, /* (o) concealed LP parameters */ int16_t PLI, /* (i) packet loss indicator 0 - no PL, 1 = PL */ - int16_t *decresidual, /* (i) decoded residual */ - int16_t *lpc, /* (i) decoded LPC (only used for no PL) */ + const int16_t *decresidual, /* (i) decoded residual */ + const int16_t *lpc, /* (i) decoded LPC (only used for no PL) */ int16_t inlag, /* (i) pitch lag */ ILBCContext *s) /* (i/o) decoder instance */ { @@ -1202,7 +1201,7 @@ static void do_plc(int16_t *plc_residual, /* (o) concealed residual */ return; } -static int xcorr_coeff(int16_t *target, int16_t *regressor, +static int xcorr_coeff(const int16_t *target, const int16_t *regressor, int16_t subl, int16_t searchLen, int16_t offset, int16_t step) { @@ -1213,8 +1212,8 @@ static int xcorr_coeff(int16_t *target, int16_t *regressor, int16_t cross_corr_sg_mod, cross_corr_sg_mod_max; int32_t cross_corr, energy; int16_t cross_corr_mod, energy_mod, enery_mod_max; - int16_t *tp, *rp; - int16_t *rp_beg, *rp_end; + const int16_t *rp; + const int16_t *rp_beg, *rp_end; int16_t totscale, totscale_max; int16_t scalediff; int32_t new_crit, max_crit; @@ -1253,10 +1252,9 @@ static int xcorr_coeff(int16_t *target, int16_t *regressor, energy = scale_dot_product(regressor, regressor, subl, shifts); for (k = 0; k < searchLen; k++) { - tp = target; rp = ®ressor[pos]; - cross_corr = scale_dot_product(tp, rp, subl, shifts); + cross_corr = scale_dot_product(target, rp, subl, shifts); if ((energy > 0) && (cross_corr > 0)) { /* Put cross correlation and energy on 16 bit word */ -- 2.34.1 _______________________________________________ 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".