From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id B00A64E8E8 for ; Mon, 9 Feb 2026 01:32:50 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'v2C9p+sk2LV/CNyPwZ30ijJT9UO5JWKtRCzF51kZPoY=', expected b'9D2EnHIB+bLPgDtPQEnTdpc/f76YxNgj8Ku9/146Tus=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1770600753; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=v2C9p+sk2LV/CNyPwZ30ijJT9UO5JWKtRCzF51kZPoY=; b=STRjC8WaUpWndJpdqNBLnpRmXdj8ib2+9B79DLcY/dqTqLuWwm7buhdsAVXk0fFhkZxLf /i261QeVwnfuUUxhG199aC8h0I9wcWtGD8luyllX+OWTjUcuwCrqiGNmBwOio1h7MXDWGfg 5oJdf34Aht5Q2UbjmjqFAQUXrJ2Cgwj3HbDHZa/NwRs1zCvoiWl8flEmzdzZ8hLunANRyXH PdCrlobmFCb8TRHsq7hmBCAnfq174w6hnF2iPi/mr3P8nbwRIaWWcl96e7Tc/PZq6WkStx6 0ayTBW9XagTz1uvmvjiGBCgjx1kyDReaj7Ralu40Fi1zskdevZihIxO2grkA== Received: from [172.20.0.4] (unknown [172.20.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 2B145690DE4; Mon, 9 Feb 2026 03:32:33 +0200 (EET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1770600736; b=LQTEuLJVVR/AWIjFCzY/ESuLN2X5kisuhaXkFsm3NuYUVe5eAse74TpiBg0rRSWUIEZIX ftWLesmJ5BgGULZRsbqGoBjk9ZRtCfUaVr0s6VHK0v+UbwVmPNk58ds+iFc5U2S3vuIvKLo 7lKXbxx0PG5zVp6gBgrrz+Dn+es2Ty9dRpFqXfWhsC/AEaKNYIr635XIBIdC4KCq6surEQH mH8iaB83W4PtWp3hrYZarRWVZxZGqxLfMYnPfMVDFurFRBC1TaKZVCymUrtRHwZflNqfdMs a/0Rpq3j5eoEIZZnVfDco45K1yiNKvRShptr9PlSVAh56qT9YXWhOHJCwvqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1770600736; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=/Q4BqpFEoiQ/CnnRYxgQBQVC3v9BvmNKW1nqC6hiYdw=; b=TpdQZMK8RMIFB6zIDjNit5FFWnZTyXxX0rs2y5wCkpVSIvzT9jCbX8BeAkGxHoEREAiaH pZDQdNghnMVmpm9gOd2cHzLNhUpk1J00J49HiXIc7VUAAepnmFfdwxt2dpwB9SujxwXJC/4 QuUqY0L3XsTBoUKXObhwDDsMQiCKukWWk2kPERWX4DfJrqj3gNg7NMzcdbrYokv/sIWNQbB phNkeK4tpqkyxTYdO0aiGlBU3MW7Y1GHDCLOn2DbyrXz2+p5Kd9LWouDIMc5pjSV9n+sMex Xj6IPgVXyLcfBm1YfLg6MpwwwaO65kOOHCCvdY8BQl31LxyLn9wP9fleFdKg== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1770600727; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=9D2EnHIB+bLPgDtPQEnTdpc/f76YxNgj8Ku9/146Tus=; b=VXz7Su0Fq1Xukd/CACdao9G1mg1NHbYMN8ZQlAMIhCQPtOkAZdeg3IVP85zGdE/Ku58mm tarBr7XoGVlT+ip1MeZG1WLXcQyWDUW817M3fOtH6wiGsEUH9dhH8SIRf2DEbDcGU6ZIDbt c6cqmmX+2WhfsYEYn1tHfpRUONU/BPr484mH7VkVabhkuN3q180/cZm/nCfYd2TR9PNfaBk 3ZN2H3koOF0hb8dBrJtO9WGbb1OxLEzb7yR1SlFI7nGTfyngnrxGzXQ0llf7Eni2UuOCcrZ T3wwKVX9JC8P+J53tNGL71bYquun+6y91ExGwdWmFnE3IVnXOzZ1LGLz/ZrA== Received: from c8d966988b92 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 45737690DE7 for ; Mon, 9 Feb 2026 03:32:07 +0200 (EET) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Mon, 09 Feb 2026 01:32:06 -0000 Message-ID: <177060072747.25.6258509712362504382@4457048688e7> Message-ID-Hash: 7HRCNTETVDBZF3ADT7245LXPQEWR3PG6 X-Message-ID-Hash: 7HRCNTETVDBZF3ADT7245LXPQEWR3PG6 X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Hits: nonmember-moderation X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PR] avcodec/adpcmenc: Don't advertise ineffective options (PR #21689) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: mkver via ffmpeg-devel Cc: mkver Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #21689 opened by mkver URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21689 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21689.patch >>From cb307dc3524bee47775b44f609e5a8eb8d4372ed Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Mon, 9 Feb 2026 01:37:21 +0100 Subject: [PATCH 1/3] avcodec/adpcmenc: Mark unreachable code as such Signed-off-by: Andreas Rheinhardt --- libavcodec/adpcmenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c index 96a053351d..232496b281 100644 --- a/libavcodec/adpcmenc.c +++ b/libavcodec/adpcmenc.c @@ -210,7 +210,7 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) avctx->block_align = s->block_size; ) /* End of CASE */ default: - return AVERROR(EINVAL); + av_unreachable("there is a case for every codec using adpcm_encode_init()"); } return 0; -- 2.52.0 >>From 223d05a0a081494cd9aebd63c4e6c3f326771ce6 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Mon, 9 Feb 2026 02:12:43 +0100 Subject: [PATCH 2/3] avcodec/adpcmenc: Check sample rates, ch layouts generically This also advertises the supported sample rates/channel layouts. For ADPCM_IMA_AMV, it actually fixes the advertised channel layouts. Signed-off-by: Andreas Rheinhardt --- libavcodec/adpcmenc.c | 61 ++++++++++++++++--------------------------- 1 file changed, 23 insertions(+), 38 deletions(-) diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c index 232496b281..b2c3474de7 100644 --- a/libavcodec/adpcmenc.c +++ b/libavcodec/adpcmenc.c @@ -163,13 +163,6 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) avctx->block_align = s->block_size; ) /* End of CASE */ CASE(ADPCM_SWF, - if (avctx->sample_rate != 11025 && - avctx->sample_rate != 22050 && - avctx->sample_rate != 44100) { - av_log(avctx, AV_LOG_ERROR, "Sample rate must be 11025, " - "22050 or 44100\n"); - return AVERROR(EINVAL); - } avctx->frame_size = 4096; /* Hardcoded according to the SWF spec. */ avctx->block_align = (2 + channels * (22 + 4 * (avctx->frame_size - 1)) + 7) / 8; ) /* End of CASE */ @@ -179,16 +172,6 @@ static av_cold int adpcm_encode_init(AVCodecContext *avctx) avctx->block_align = s->block_size; break; CASE(ADPCM_IMA_AMV, - if (avctx->sample_rate != 22050) { - av_log(avctx, AV_LOG_ERROR, "Sample rate must be 22050\n"); - return AVERROR(EINVAL); - } - - if (channels != 1) { - av_log(avctx, AV_LOG_ERROR, "Only mono is supported\n"); - return AVERROR(EINVAL); - } - avctx->frame_size = s->block_size; avctx->block_align = 8 + (FFALIGN(avctx->frame_size, 2) / 2); ) /* End of CASE */ @@ -968,7 +951,7 @@ static const enum AVSampleFormat sample_fmts_p[] = { AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_NONE }; -static const AVChannelLayout ch_layouts[] = { +static const AVChannelLayout ch_layouts_mono_stereo[] = { AV_CHANNEL_LAYOUT_MONO, AV_CHANNEL_LAYOUT_STEREO, { 0 }, @@ -995,8 +978,8 @@ static const AVClass adpcm_encoder_class = { .version = LIBAVUTIL_VERSION_INT, }; -#define ADPCM_ENCODER_0(id_, name_, sample_fmts_, capabilities_, long_name_) -#define ADPCM_ENCODER_1(id_, name_, sample_fmts_, capabilities_, long_name_) \ +#define ADPCM_ENCODER_0(id_, name_, sample_fmts_, capabilities_, long_name_, ...) +#define ADPCM_ENCODER_1(id_, name_, sample_fmts_, capabilities_, long_name_, ...) \ const FFCodec ff_ ## name_ ## _encoder = { \ .p.name = #name_, \ CODEC_LONG_NAME(long_name_), \ @@ -1005,30 +988,32 @@ const FFCodec ff_ ## name_ ## _encoder = { \ .p.capabilities = capabilities_ | AV_CODEC_CAP_DR1 | \ AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, \ .p.priv_class = &adpcm_encoder_class, \ - CODEC_CH_LAYOUTS_ARRAY(ch_layouts), \ CODEC_SAMPLEFMTS_ARRAY(sample_fmts_), \ .priv_data_size = sizeof(ADPCMEncodeContext), \ .init = adpcm_encode_init, \ FF_CODEC_ENCODE_CB(adpcm_encode_frame), \ .close = adpcm_encode_close, \ .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, \ + __VA_ARGS__, \ }; -#define ADPCM_ENCODER_2(enabled, codec_id, name, sample_fmts, capabilities, long_name) \ - ADPCM_ENCODER_ ## enabled(codec_id, name, sample_fmts, capabilities, long_name) -#define ADPCM_ENCODER_3(config, codec_id, name, sample_fmts, capabilities, long_name) \ - ADPCM_ENCODER_2(config, codec_id, name, sample_fmts, capabilities, long_name) -#define ADPCM_ENCODER(codec, name, sample_fmts, capabilities, long_name) \ +#define ADPCM_ENCODER_2(enabled, codec_id, name, sample_fmts, capabilities, long_name, ...) \ + ADPCM_ENCODER_ ## enabled(codec_id, name, sample_fmts, capabilities, long_name, __VA_ARGS__) +#define ADPCM_ENCODER_3(config, codec_id, name, sample_fmts, capabilities, long_name, ...) \ + ADPCM_ENCODER_2(config, codec_id, name, sample_fmts, capabilities, long_name, __VA_ARGS__) +#define ADPCM_ENCODER(codec, name, sample_fmts, capabilities, long_name, ...) \ ADPCM_ENCODER_3(CONFIG_ ## codec ## _ENCODER, AV_CODEC_ID_ ## codec, \ - name, sample_fmts, capabilities, long_name) + name, sample_fmts, capabilities, long_name, __VA_ARGS__) -ADPCM_ENCODER(ADPCM_ARGO, adpcm_argo, sample_fmts_p, 0, "ADPCM Argonaut Games") -ADPCM_ENCODER(ADPCM_IMA_AMV, adpcm_ima_amv, sample_fmts, 0, "ADPCM IMA AMV") -ADPCM_ENCODER(ADPCM_IMA_APM, adpcm_ima_apm, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA Ubisoft APM") -ADPCM_ENCODER(ADPCM_IMA_ALP, adpcm_ima_alp, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA High Voltage Software ALP") -ADPCM_ENCODER(ADPCM_IMA_QT, adpcm_ima_qt, sample_fmts_p, 0, "ADPCM IMA QuickTime") -ADPCM_ENCODER(ADPCM_IMA_SSI, adpcm_ima_ssi, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA Simon & Schuster Interactive") -ADPCM_ENCODER(ADPCM_IMA_WAV, adpcm_ima_wav, sample_fmts_p, 0, "ADPCM IMA WAV") -ADPCM_ENCODER(ADPCM_IMA_WS, adpcm_ima_ws, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA Westwood") -ADPCM_ENCODER(ADPCM_MS, adpcm_ms, sample_fmts, 0, "ADPCM Microsoft") -ADPCM_ENCODER(ADPCM_SWF, adpcm_swf, sample_fmts, 0, "ADPCM Shockwave Flash") -ADPCM_ENCODER(ADPCM_YAMAHA, adpcm_yamaha, sample_fmts, 0, "ADPCM Yamaha") +#define MONO_STEREO CODEC_CH_LAYOUTS_ARRAY(ch_layouts_mono_stereo) + +ADPCM_ENCODER(ADPCM_ARGO, adpcm_argo, sample_fmts_p, 0, "ADPCM Argonaut Games", MONO_STEREO) +ADPCM_ENCODER(ADPCM_IMA_AMV, adpcm_ima_amv, sample_fmts, 0, "ADPCM IMA AMV", CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO), CODEC_SAMPLERATES(22050)) +ADPCM_ENCODER(ADPCM_IMA_APM, adpcm_ima_apm, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA Ubisoft APM", MONO_STEREO) +ADPCM_ENCODER(ADPCM_IMA_ALP, adpcm_ima_alp, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA High Voltage Software ALP", MONO_STEREO) +ADPCM_ENCODER(ADPCM_IMA_QT, adpcm_ima_qt, sample_fmts_p, 0, "ADPCM IMA QuickTime", MONO_STEREO) +ADPCM_ENCODER(ADPCM_IMA_SSI, adpcm_ima_ssi, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA Simon & Schuster Interactive", MONO_STEREO) +ADPCM_ENCODER(ADPCM_IMA_WAV, adpcm_ima_wav, sample_fmts_p, 0, "ADPCM IMA WAV", MONO_STEREO) +ADPCM_ENCODER(ADPCM_IMA_WS, adpcm_ima_ws, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA Westwood", MONO_STEREO) +ADPCM_ENCODER(ADPCM_MS, adpcm_ms, sample_fmts, 0, "ADPCM Microsoft", MONO_STEREO) +ADPCM_ENCODER(ADPCM_SWF, adpcm_swf, sample_fmts, 0, "ADPCM Shockwave Flash", MONO_STEREO, CODEC_SAMPLERATES(11025, 22050, 44100)) +ADPCM_ENCODER(ADPCM_YAMAHA, adpcm_yamaha, sample_fmts, 0, "ADPCM Yamaha", MONO_STEREO) -- 2.52.0 >>From bad5e92bc8488225a5b34a3cf712c6a8d72ff241 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Mon, 9 Feb 2026 02:21:50 +0100 Subject: [PATCH 3/3] avcodec/adpcmenc: Don't advertise ineffective options ADPCM_ARGO, ADPCM_IMA_QT and ADPCM_SWF don't use the block_size option at all. Signed-off-by: Andreas Rheinhardt --- libavcodec/adpcmenc.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libavcodec/adpcmenc.c b/libavcodec/adpcmenc.c index b2c3474de7..e350c41130 100644 --- a/libavcodec/adpcmenc.c +++ b/libavcodec/adpcmenc.c @@ -987,7 +987,6 @@ const FFCodec ff_ ## name_ ## _encoder = { \ .p.id = id_, \ .p.capabilities = capabilities_ | AV_CODEC_CAP_DR1 | \ AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, \ - .p.priv_class = &adpcm_encoder_class, \ CODEC_SAMPLEFMTS_ARRAY(sample_fmts_), \ .priv_data_size = sizeof(ADPCMEncodeContext), \ .init = adpcm_encode_init, \ @@ -1005,15 +1004,16 @@ const FFCodec ff_ ## name_ ## _encoder = { \ name, sample_fmts, capabilities, long_name, __VA_ARGS__) #define MONO_STEREO CODEC_CH_LAYOUTS_ARRAY(ch_layouts_mono_stereo) +#define AVCLASS .p.priv_class = &adpcm_encoder_class ADPCM_ENCODER(ADPCM_ARGO, adpcm_argo, sample_fmts_p, 0, "ADPCM Argonaut Games", MONO_STEREO) -ADPCM_ENCODER(ADPCM_IMA_AMV, adpcm_ima_amv, sample_fmts, 0, "ADPCM IMA AMV", CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO), CODEC_SAMPLERATES(22050)) -ADPCM_ENCODER(ADPCM_IMA_APM, adpcm_ima_apm, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA Ubisoft APM", MONO_STEREO) -ADPCM_ENCODER(ADPCM_IMA_ALP, adpcm_ima_alp, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA High Voltage Software ALP", MONO_STEREO) +ADPCM_ENCODER(ADPCM_IMA_AMV, adpcm_ima_amv, sample_fmts, 0, "ADPCM IMA AMV", CODEC_CH_LAYOUTS(AV_CHANNEL_LAYOUT_MONO), CODEC_SAMPLERATES(22050), AVCLASS) +ADPCM_ENCODER(ADPCM_IMA_APM, adpcm_ima_apm, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA Ubisoft APM", MONO_STEREO, AVCLASS) +ADPCM_ENCODER(ADPCM_IMA_ALP, adpcm_ima_alp, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA High Voltage Software ALP", MONO_STEREO, AVCLASS) ADPCM_ENCODER(ADPCM_IMA_QT, adpcm_ima_qt, sample_fmts_p, 0, "ADPCM IMA QuickTime", MONO_STEREO) -ADPCM_ENCODER(ADPCM_IMA_SSI, adpcm_ima_ssi, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA Simon & Schuster Interactive", MONO_STEREO) -ADPCM_ENCODER(ADPCM_IMA_WAV, adpcm_ima_wav, sample_fmts_p, 0, "ADPCM IMA WAV", MONO_STEREO) -ADPCM_ENCODER(ADPCM_IMA_WS, adpcm_ima_ws, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA Westwood", MONO_STEREO) -ADPCM_ENCODER(ADPCM_MS, adpcm_ms, sample_fmts, 0, "ADPCM Microsoft", MONO_STEREO) +ADPCM_ENCODER(ADPCM_IMA_SSI, adpcm_ima_ssi, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA Simon & Schuster Interactive", MONO_STEREO, AVCLASS) +ADPCM_ENCODER(ADPCM_IMA_WAV, adpcm_ima_wav, sample_fmts_p, 0, "ADPCM IMA WAV", MONO_STEREO, AVCLASS) +ADPCM_ENCODER(ADPCM_IMA_WS, adpcm_ima_ws, sample_fmts, AV_CODEC_CAP_SMALL_LAST_FRAME, "ADPCM IMA Westwood", MONO_STEREO, AVCLASS) +ADPCM_ENCODER(ADPCM_MS, adpcm_ms, sample_fmts, 0, "ADPCM Microsoft", MONO_STEREO, AVCLASS) ADPCM_ENCODER(ADPCM_SWF, adpcm_swf, sample_fmts, 0, "ADPCM Shockwave Flash", MONO_STEREO, CODEC_SAMPLERATES(11025, 22050, 44100)) -ADPCM_ENCODER(ADPCM_YAMAHA, adpcm_yamaha, sample_fmts, 0, "ADPCM Yamaha", MONO_STEREO) +ADPCM_ENCODER(ADPCM_YAMAHA, adpcm_yamaha, sample_fmts, 0, "ADPCM Yamaha", MONO_STEREO, AVCLASS) -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org