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 815DE427F0 for ; Wed, 30 Mar 2022 21:05:17 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A984868B2A0; Thu, 31 Mar 2022 00:05:14 +0300 (EEST) Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BFDA868A927 for ; Thu, 31 Mar 2022 00:05:08 +0300 (EEST) Received: by mail-yb1-f202.google.com with SMTP id a12-20020a25938c000000b0063467614126so16469686ybm.13 for ; Wed, 30 Mar 2022 14:05:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=3510JcoMbwf/yOUF55raKdvZlhbkXxhvTpERB2/WvPo=; b=agPlGc2H/uXgzEJFNJkMUIwQg1W9ul4JnBoZTR3d1tUp64iOcyVHPKa2b7tH9iPzZJ aW4K50tzkXL5rnFTqm9hbtGy+u0eupRAZ8u2OSKunVXRTvlwq29Ov1Ovz3M95whyFRhT Y98T8bRmxdaxNbYZGijwBlLKo0LYO4JeUubnp1lJCypcp4RGnxnnuQ6GAQ+9GCGy0eBY QTNEv8SbkkS3rIpF8VZLtbUCy39lADBT0DfpwnwlrYjvlc++/XNgfo6efOahz4Pr/628 i7ByrpfOcGUfq1WUJdAq0k7dK1Rtc+scp8oeGTb+IyW5n6zQ8HlDmQKS7P03msOoOMqy Kztg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=3510JcoMbwf/yOUF55raKdvZlhbkXxhvTpERB2/WvPo=; b=zeIBjwoupNHLGPlWLA6JhHwAbAUMizVzlye8sYZtF1GevGPIwFnvpuz9EBmW8llMpB FRAPvRxjtS9EuOr2/LOP9wMU2Z/E0IuhK1fvcWdMCdeoZSo3Ef0+ULJ8bJ8F/3C7l1iS YtadWPzw0mwO516C7VDS8On/fNmmXb6Vac319tclvJI/mK5lIJpyMWqVu9hHEAb4cNTN NQLqSrS3aIXa94gk4MwWMo2BxtcWp7rQZp5Fckc3jc9aAxCVQzAFCMTfgWpLzUFYc179 X40lUpZ3XKOjodXVB28pB+7kNwVct74QV+9fk1g1/erpjVlF9BzFwojtzs+zXcmzz4WM g20g== X-Gm-Message-State: AOAM531if5MJVGOTlzSu4ZDFDXNn3uNk8UP90IYc5MUs9vHAJygjZvm1 QvS8QBzSZiUvI6B2leMZ9HN1tTCToLg6/5JzXQwlopfy3ZbtRbY/ClKGnOntnDxoNxL5TH45FnB 7egGClqe1NveGQyIfpH4o32t3KAj9+Gph1Xe8hmrFTy457F/nrjkqAPA9qLG+sceafQ== X-Google-Smtp-Source: ABdhPJwyLmS/sXoOCMxfhCsDWsI5bsW7jhgvfSd52WdsbLpBTh6qt4qNxAjNAy4TxnEj1QCzWI8wwVlHjZQI X-Received: from wangcao.mtv.corp.google.com ([2620:0:1000:4011:24d8:aaf:bb7c:4f04]) (user=wangcao job=sendgmr) by 2002:a5b:d02:0:b0:634:728e:aaad with SMTP id y2-20020a5b0d02000000b00634728eaaadmr1634760ybp.340.1648674307164; Wed, 30 Mar 2022 14:05:07 -0700 (PDT) Date: Wed, 30 Mar 2022 14:03:15 -0700 In-Reply-To: <2ec3971d-f698-1369-1ace-eac613afc980@passwd.hu> Message-Id: <20220330210314.2055201-1-wangcao@google.com> Mime-Version: 1.0 References: <2ec3971d-f698-1369-1ace-eac613afc980@passwd.hu> X-Mailer: git-send-email 2.35.1.1094.g7c7d902a7c-goog From: Wang Cao To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH] avfilter/alimiter: Remove the delay introduced by lookahead buffer 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: Wang Cao 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: The change essentially removes the delay introduces by lookahead buffer. The valid audio data in the internal buffer is also flushed to ensure the integrity of output. Signed-off-by: Wang Cao --- doc/filters.texi | 2 - libavfilter/af_alimiter.c | 97 +++++- tests/ref/fate/filter-alimiter | 518 ++++++++++++++++----------------- 3 files changed, 344 insertions(+), 273 deletions(-) Thanks a lot for your time to review my patch. I have made "zero_delay" option to default. Now the output samples will only be written after the lookahead buffer is full. We also uses "request_frame" to flush the internal buffers so that all valid input audio samples are written. diff --git a/doc/filters.texi b/doc/filters.texi index d70ac3e237..5d1adf88e1 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -1943,8 +1943,6 @@ aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d The limiter prevents an input signal from rising over a desired threshold. This limiter uses lookahead technology to prevent your signal from distorting. -It means that there is a small delay after the signal is processed. Keep in mind -that the delay it produces is the attack time you set. The filter accepts the following options: diff --git a/libavfilter/af_alimiter.c b/libavfilter/af_alimiter.c index 133f98f165..e1fcf98574 100644 --- a/libavfilter/af_alimiter.c +++ b/libavfilter/af_alimiter.c @@ -30,6 +30,7 @@ #include "audio.h" #include "avfilter.h" +#include "bufferqueue.h" #include "formats.h" #include "internal.h" @@ -55,6 +56,13 @@ typedef struct AudioLimiterContext { int *nextpos; double *nextdelta; + int total_samples_to_flush; + int lookahead_buffer_full; + + struct FFBufQueue output_frame_queue; + int output_sample_pos; + int output_frame_pos; + double delta; int nextiter; int nextlen; @@ -129,6 +137,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) AVFrame *out; double *buf; int n, c, i; + int can_free_input_frame = 0; + double peak = 0; if (av_frame_is_writable(in)) { out = in; @@ -138,12 +148,23 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) av_frame_free(&in); return AVERROR(ENOMEM); } + can_free_input_frame = 1; av_frame_copy_props(out, in); } - dst = (double *)out->data[0]; + + if (ff_bufqueue_is_full(&s->output_frame_queue)) { + // In the runtime, the total number of frames in the queue is bounded by + // attack_time, sample rate and frame size. + return AVERROR_BUG; + } + + ff_bufqueue_add(ctx, &s->output_frame_queue, out); for (n = 0; n < in->nb_samples; n++) { - double peak = 0; + out = ff_bufqueue_peek(&s->output_frame_queue, s->output_frame_pos); + dst = (double *)out->data[0]; + dst += s->output_sample_pos * channels; + peak = 0; for (c = 0; c < channels; c++) { double sample = src[c] * level_in; @@ -213,8 +234,21 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) s->att += s->delta; - for (c = 0; c < channels; c++) - dst[c] = buf[c] * s->att; + // Checks lookahead buffer (s->buffer) has been filled + if (!s->lookahead_buffer_full && (s->pos + channels) % buffer_size == 0) { + s->lookahead_buffer_full = 1; + } + if (s->lookahead_buffer_full) { + for (c = 0; c < channels; c++) { + dst[c] = buf[c] * s->att; + dst[c] = av_clipd(dst[c], -limit, limit) * level * level_out; + } + s->output_sample_pos++; + if (s->output_sample_pos == out->nb_samples) { + s->output_frame_pos++; + s->output_sample_pos = 0; + } + } if ((s->pos + channels) % buffer_size == nextpos[s->nextiter]) { if (s->auto_release) { @@ -261,18 +295,55 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) if (s->delta != 0. && fabs(s->delta) < 0.00000000000001) s->delta = 0.; - for (c = 0; c < channels; c++) - dst[c] = av_clipd(dst[c], -limit, limit) * level * level_out; - s->pos = (s->pos + channels) % buffer_size; src += channels; - dst += channels; } - - if (in != out) + if (can_free_input_frame) { av_frame_free(&in); + } - return ff_filter_frame(outlink, out); + if (s->output_frame_pos > 0) { + s->output_frame_pos--; + out = ff_bufqueue_get(&s->output_frame_queue); + return ff_filter_frame(outlink, out); + } + return 0; +} + +static int request_frame(AVFilterLink* outlink) +{ + AVFilterContext *ctx = outlink->src; + AudioLimiterContext *s = (AudioLimiterContext*)ctx->priv; + int ret; + AVFilterLink *inlink; + AVFrame *out; + AVFrame *silence_frame; + + ret = ff_request_frame(ctx->inputs[0]); + + if (ret != AVERROR_EOF || s->total_samples_to_flush == 0) { + // Not necessarily an error, just not EOF. + return ret; + } + + // Flush the frames in the internal buffer + if (s->output_frame_pos > 0) { + out = ff_bufqueue_get(&s->output_frame_queue); + s->output_frame_pos--; + return ff_filter_frame(outlink, out); + } + + // We reach here when input filters have finished producing data (i.e. EOF), + // but because of the attack param, s->buffer still has meaningful + // audio content that needs flushing. + inlink = ctx->inputs[0]; + // Pushes silence frame to flush valid audio in the s->buffer + silence_frame = ff_get_audio_buffer(inlink, s->total_samples_to_flush); + ret = filter_frame(inlink, silence_frame); + if (ret < 0) { + return ret; + } + return AVERROR_EOF; } static int config_input(AVFilterLink *inlink) @@ -292,7 +363,8 @@ static int config_input(AVFilterLink *inlink) return AVERROR(ENOMEM); memset(s->nextpos, -1, obuffer_size * sizeof(*s->nextpos)); - s->buffer_size = inlink->sample_rate * s->attack * inlink->ch_layout.nb_channels; + s->total_samples_to_flush = inlink->sample_rate * s->attack; + s->buffer_size = s->total_samples_to_flush * inlink->ch_layout.nb_channels; s->buffer_size -= s->buffer_size % inlink->ch_layout.nb_channels; if (s->buffer_size <= 0) { @@ -325,6 +397,7 @@ static const AVFilterPad alimiter_outputs[] = { { .name = "default", .type = AVMEDIA_TYPE_AUDIO, + .request_frame = request_frame, }, }; diff --git a/tests/ref/fate/filter-alimiter b/tests/ref/fate/filter-alimiter index 56cfb614da..93daba92c6 100644 --- a/tests/ref/fate/filter-alimiter +++ b/tests/ref/fate/filter-alimiter @@ -3,262 +3,262 @@ #codec_id 0: pcm_s16le #sample_rate 0: 44100 #channel_layout_name 0: stereo -0, 0, 0, 1024, 4096, 0xd4194af4 -0, 1024, 1024, 1024, 4096, 0x686af4ab -0, 2048, 2048, 1024, 4096, 0xe80cee61 -0, 3072, 3072, 1024, 4096, 0xa686fbad -0, 4096, 4096, 1024, 4096, 0x191e062c -0, 5120, 5120, 1024, 4096, 0x1a13edb1 -0, 6144, 6144, 1024, 4096, 0xab21f8ef -0, 7168, 7168, 1024, 4096, 0xaa30e757 -0, 8192, 8192, 1024, 4096, 0x5afdf69f -0, 9216, 9216, 1024, 4096, 0x765e05ec -0, 10240, 10240, 1024, 4096, 0x6484f551 -0, 11264, 11264, 1024, 4096, 0x61b9e9f7 -0, 12288, 12288, 1024, 4096, 0xa735feb3 -0, 13312, 13312, 1024, 4096, 0xb47203aa -0, 14336, 14336, 1024, 4096, 0xb6b5fbf5 -0, 15360, 15360, 1024, 4096, 0xbc66f14f -0, 16384, 16384, 1024, 4096, 0x2003ff5b -0, 17408, 17408, 1024, 4096, 0x1160f17d -0, 18432, 18432, 1024, 4096, 0x308001a4 -0, 19456, 19456, 1024, 4096, 0x9df9f429 -0, 20480, 20480, 1024, 4096, 0x3e6eec0f -0, 21504, 21504, 1024, 4096, 0xca3301f2 -0, 22528, 22528, 1024, 4096, 0x9eb1f961 -0, 23552, 23552, 1024, 4096, 0xd0a50c8c -0, 24576, 24576, 1024, 4096, 0x071ee96b -0, 25600, 25600, 1024, 4096, 0x7a46f05b -0, 26624, 26624, 1024, 4096, 0x2cb2f475 -0, 27648, 27648, 1024, 4096, 0x5bda0a52 -0, 28672, 28672, 1024, 4096, 0x33c0f727 -0, 29696, 29696, 1024, 4096, 0x53cfee59 -0, 30720, 30720, 1024, 4096, 0x1588f221 -0, 31744, 31744, 1024, 4096, 0x95d400d6 -0, 32768, 32768, 1024, 4096, 0x0078009a -0, 33792, 33792, 1024, 4096, 0x686af4ab -0, 34816, 34816, 1024, 4096, 0xe80cee61 -0, 35840, 35840, 1024, 4096, 0xa686fbad -0, 36864, 36864, 1024, 4096, 0x191e062c -0, 37888, 37888, 1024, 4096, 0x1a13edb1 -0, 38912, 38912, 1024, 4096, 0xab21f8ef -0, 39936, 39936, 1024, 4096, 0xaa30e757 -0, 40960, 40960, 1024, 4096, 0x5afdf69f -0, 41984, 41984, 1024, 4096, 0x765e05ec -0, 43008, 43008, 1024, 4096, 0x6484f551 -0, 44032, 44032, 1024, 4096, 0x755e0600 -0, 45056, 45056, 1024, 4096, 0x5056ecb9 -0, 46080, 46080, 1024, 4096, 0xdcb609a8 -0, 47104, 47104, 1024, 4096, 0xc87bf4a1 -0, 48128, 48128, 1024, 4096, 0xecdfef95 -0, 49152, 49152, 1024, 4096, 0x905ff13f -0, 50176, 50176, 1024, 4096, 0x4e69eeb3 -0, 51200, 51200, 1024, 4096, 0x16e1082c -0, 52224, 52224, 1024, 4096, 0x606c0a22 -0, 53248, 53248, 1024, 4096, 0x9f94f351 -0, 54272, 54272, 1024, 4096, 0x2c47f63f -0, 55296, 55296, 1024, 4096, 0x9e14ebf9 -0, 56320, 56320, 1024, 4096, 0x7804fbcb -0, 57344, 57344, 1024, 4096, 0xc7c6ffb7 -0, 58368, 58368, 1024, 4096, 0xa547f68d -0, 59392, 59392, 1024, 4096, 0x0c87fed7 -0, 60416, 60416, 1024, 4096, 0x88b5fef1 -0, 61440, 61440, 1024, 4096, 0x325af00d -0, 62464, 62464, 1024, 4096, 0xd826edd9 -0, 63488, 63488, 1024, 4096, 0x1fbe1138 -0, 64512, 64512, 1024, 4096, 0xdf85da7b -0, 65536, 65536, 1024, 4096, 0xf987f9b3 -0, 66560, 66560, 1024, 4096, 0x5df5e12f -0, 67584, 67584, 1024, 4096, 0x259cf8ef -0, 68608, 68608, 1024, 4096, 0xa191eb4f -0, 69632, 69632, 1024, 4096, 0xfe5bf1fd -0, 70656, 70656, 1024, 4096, 0x7675e2cb -0, 71680, 71680, 1024, 4096, 0x796a2f90 -0, 72704, 72704, 1024, 4096, 0xaa52e7a5 -0, 73728, 73728, 1024, 4096, 0x2b56fd81 -0, 74752, 74752, 1024, 4096, 0xbf7c02ee -0, 75776, 75776, 1024, 4096, 0xfe4cebb1 -0, 76800, 76800, 1024, 4096, 0xe5b7fdf7 -0, 77824, 77824, 1024, 4096, 0xd271ece7 -0, 78848, 78848, 1024, 4096, 0x96e0f69f -0, 79872, 79872, 1024, 4096, 0x6e5eef33 -0, 80896, 80896, 1024, 4096, 0x78b70b6e -0, 81920, 81920, 1024, 4096, 0x61f2f075 -0, 82944, 82944, 1024, 4096, 0xf1dc47dc -0, 83968, 83968, 1024, 4096, 0xf4b406d2 -0, 84992, 84992, 1024, 4096, 0xe33806fe -0, 86016, 86016, 1024, 4096, 0x5b5ef087 -0, 87040, 87040, 1024, 4096, 0x3fa207da -0, 88064, 88064, 1024, 4096, 0x4719f201 -0, 89088, 89088, 1024, 4096, 0x641feaad -0, 90112, 90112, 1024, 4096, 0x905402ec -0, 91136, 91136, 1024, 4096, 0xf529e11f -0, 92160, 92160, 1024, 4096, 0x65a41838 -0, 93184, 93184, 1024, 4096, 0x651efb6f -0, 94208, 94208, 1024, 4096, 0x251b1390 -0, 95232, 95232, 1024, 4096, 0x45ea05a8 -0, 96256, 96256, 1024, 4096, 0xe65be141 -0, 97280, 97280, 1024, 4096, 0xd452d3dd -0, 98304, 98304, 1024, 4096, 0x3bdff821 -0, 99328, 99328, 1024, 4096, 0x74da00e6 -0, 100352, 100352, 1024, 4096, 0x4474fa19 -0, 101376, 101376, 1024, 4096, 0x11ddedef -0, 102400, 102400, 1024, 4096, 0xf027d72b -0, 103424, 103424, 1024, 4096, 0xaa0a1ce6 -0, 104448, 104448, 1024, 4096, 0x7168145e -0, 105472, 105472, 1024, 4096, 0x94a710a4 -0, 106496, 106496, 1024, 4096, 0x6f55ecf1 -0, 107520, 107520, 1024, 4096, 0xc12de6d7 -0, 108544, 108544, 1024, 4096, 0x8ff7db15 -0, 109568, 109568, 1024, 4096, 0x366d0cc6 -0, 110592, 110592, 1024, 4096, 0xb04afa4f -0, 111616, 111616, 1024, 4096, 0xf6abbee7 -0, 112640, 112640, 1024, 4096, 0xbe9910dc -0, 113664, 113664, 1024, 4096, 0x96c3047e -0, 114688, 114688, 1024, 4096, 0x9dc1e8e1 -0, 115712, 115712, 1024, 4096, 0x4b2c1092 -0, 116736, 116736, 1024, 4096, 0x592d212c -0, 117760, 117760, 1024, 4096, 0x5c3bda15 -0, 118784, 118784, 1024, 4096, 0x43c8e90f -0, 119808, 119808, 1024, 4096, 0x3bfa074e -0, 120832, 120832, 1024, 4096, 0xa2d7d443 -0, 121856, 121856, 1024, 4096, 0xd4b02844 -0, 122880, 122880, 1024, 4096, 0x9f5d2a92 -0, 123904, 123904, 1024, 4096, 0xc19bf69d -0, 124928, 124928, 1024, 4096, 0x47b8fe75 -0, 125952, 125952, 1024, 4096, 0x337334b0 -0, 126976, 126976, 1024, 4096, 0x96ed14f0 -0, 128000, 128000, 1024, 4096, 0x9af0f67b -0, 129024, 129024, 1024, 4096, 0xdf541a60 -0, 130048, 130048, 1024, 4096, 0x684f0c06 -0, 131072, 131072, 1024, 4096, 0xe3d0015e -0, 132096, 132096, 1024, 4096, 0xf648d73c -0, 133120, 133120, 1024, 4096, 0x4041f3ee -0, 134144, 134144, 1024, 4096, 0x1421025f -0, 135168, 135168, 1024, 4096, 0x4eb5fc97 -0, 136192, 136192, 1024, 4096, 0x510f02fe -0, 137216, 137216, 1024, 4096, 0x85e9e95e -0, 138240, 138240, 1024, 4096, 0xb1d0fe10 -0, 139264, 139264, 1024, 4096, 0xda66f5f8 -0, 140288, 140288, 1024, 4096, 0x3826eaa8 -0, 141312, 141312, 1024, 4096, 0xa7cc0176 -0, 142336, 142336, 1024, 4096, 0x71e8fe5a -0, 143360, 143360, 1024, 4096, 0x0149fcfa -0, 144384, 144384, 1024, 4096, 0xbd36fd8e -0, 145408, 145408, 1024, 4096, 0xec1afcc6 -0, 146432, 146432, 1024, 4096, 0xea80ec5e -0, 147456, 147456, 1024, 4096, 0x8da1f0ac -0, 148480, 148480, 1024, 4096, 0x63c3e61c -0, 149504, 149504, 1024, 4096, 0x188cf09b -0, 150528, 150528, 1024, 4096, 0x7eebea85 -0, 151552, 151552, 1024, 4096, 0x7ef6f718 -0, 152576, 152576, 1024, 4096, 0xcd9fecfb -0, 153600, 153600, 1024, 4096, 0x1aa7f624 -0, 154624, 154624, 1024, 4096, 0xcab5f1e3 -0, 155648, 155648, 1024, 4096, 0x36e9f795 -0, 156672, 156672, 1024, 4096, 0x952cf54d -0, 157696, 157696, 1024, 4096, 0x54a4ed3b -0, 158720, 158720, 1024, 4096, 0x1e24f992 -0, 159744, 159744, 1024, 4096, 0xab6bfa09 -0, 160768, 160768, 1024, 4096, 0xa021020b -0, 161792, 161792, 1024, 4096, 0xaa0600f5 -0, 162816, 162816, 1024, 4096, 0xadf7ec92 -0, 163840, 163840, 1024, 4096, 0x5dd5f63f -0, 164864, 164864, 1024, 4096, 0xc01bff89 -0, 165888, 165888, 1024, 4096, 0x05dbf1e7 -0, 166912, 166912, 1024, 4096, 0x44f00038 -0, 167936, 167936, 1024, 4096, 0x6dc5f886 -0, 168960, 168960, 1024, 4096, 0xeb88e729 -0, 169984, 169984, 1024, 4096, 0xfe5cf53e -0, 171008, 171008, 1024, 4096, 0x2692f7a0 -0, 172032, 172032, 1024, 4096, 0xe984f24b -0, 173056, 173056, 1024, 4096, 0x1a4ef732 -0, 174080, 174080, 1024, 4096, 0x3b60010b -0, 175104, 175104, 1024, 4096, 0x6dd0eaf2 -0, 176128, 176128, 1024, 4096, 0x313de851 -0, 177152, 177152, 1024, 4096, 0x239ef043 -0, 178176, 178176, 1024, 4096, 0x2366fe43 -0, 179200, 179200, 1024, 4096, 0xbfd6f3b9 -0, 180224, 180224, 1024, 4096, 0xb34bf67b -0, 181248, 181248, 1024, 4096, 0x00def7c1 -0, 182272, 182272, 1024, 4096, 0xa6d0f466 -0, 183296, 183296, 1024, 4096, 0xd1a1f1c2 -0, 184320, 184320, 1024, 4096, 0x32f8923c -0, 185344, 185344, 1024, 4096, 0x137001d2 -0, 186368, 186368, 1024, 4096, 0xb881f6cd -0, 187392, 187392, 1024, 4096, 0xf44e034a -0, 188416, 188416, 1024, 4096, 0xb43fecf7 -0, 189440, 189440, 1024, 4096, 0xe62ced50 -0, 190464, 190464, 1024, 4096, 0x221dfd0d -0, 191488, 191488, 1024, 4096, 0x85400147 -0, 192512, 192512, 1024, 4096, 0x8bf8d054 -0, 193536, 193536, 1024, 4096, 0x08370170 -0, 194560, 194560, 1024, 4096, 0xec62effa -0, 195584, 195584, 1024, 4096, 0xd58cf67c -0, 196608, 196608, 1024, 4096, 0xf597f9a1 -0, 197632, 197632, 1024, 4096, 0x63fcf0b0 -0, 198656, 198656, 1024, 4096, 0x8cc8fd32 -0, 199680, 199680, 1024, 4096, 0xf8c2072c -0, 200704, 200704, 1024, 4096, 0x0c7e93a5 -0, 201728, 201728, 1024, 4096, 0x1cc3f612 -0, 202752, 202752, 1024, 4096, 0x83adf8ee -0, 203776, 203776, 1024, 4096, 0x680e0195 -0, 204800, 204800, 1024, 4096, 0x9d34fd2e -0, 205824, 205824, 1024, 4096, 0x44cdfb34 -0, 206848, 206848, 1024, 4096, 0x193df790 -0, 207872, 207872, 1024, 4096, 0xb337ef64 -0, 208896, 208896, 1024, 4096, 0x0074ee38 -0, 209920, 209920, 1024, 4096, 0x239ef043 -0, 210944, 210944, 1024, 4096, 0x2366fe43 -0, 211968, 211968, 1024, 4096, 0xbfd6f3b9 -0, 212992, 212992, 1024, 4096, 0xb34bf67b -0, 214016, 214016, 1024, 4096, 0x00def7c1 -0, 215040, 215040, 1024, 4096, 0xa6d0f466 -0, 216064, 216064, 1024, 4096, 0xd1a1f1c2 -0, 217088, 217088, 1024, 4096, 0x32f8923c -0, 218112, 218112, 1024, 4096, 0x137001d2 -0, 219136, 219136, 1024, 4096, 0xb881f6cd -0, 220160, 220160, 1024, 4096, 0xf44e034a -0, 221184, 221184, 1024, 4096, 0xb43fecf7 -0, 222208, 222208, 1024, 4096, 0xe62ced50 -0, 223232, 223232, 1024, 4096, 0x221dfd0d -0, 224256, 224256, 1024, 4096, 0x85400147 -0, 225280, 225280, 1024, 4096, 0x8bf8d054 -0, 226304, 226304, 1024, 4096, 0x08370170 -0, 227328, 227328, 1024, 4096, 0xec62effa -0, 228352, 228352, 1024, 4096, 0xd58cf67c -0, 229376, 229376, 1024, 4096, 0xf597f9a1 -0, 230400, 230400, 1024, 4096, 0x63fcf0b0 -0, 231424, 231424, 1024, 4096, 0x8cc8fd32 -0, 232448, 232448, 1024, 4096, 0xf8c2072c -0, 233472, 233472, 1024, 4096, 0x0c7e93a5 -0, 234496, 234496, 1024, 4096, 0x1cc3f612 -0, 235520, 235520, 1024, 4096, 0x83adf8ee -0, 236544, 236544, 1024, 4096, 0x680e0195 -0, 237568, 237568, 1024, 4096, 0x9d34fd2e -0, 238592, 238592, 1024, 4096, 0x44cdfb34 -0, 239616, 239616, 1024, 4096, 0x193df790 -0, 240640, 240640, 1024, 4096, 0xb337ef64 -0, 241664, 241664, 1024, 4096, 0x0074ee38 -0, 242688, 242688, 1024, 4096, 0x239ef043 -0, 243712, 243712, 1024, 4096, 0x2366fe43 -0, 244736, 244736, 1024, 4096, 0xbfd6f3b9 -0, 245760, 245760, 1024, 4096, 0xb34bf67b -0, 246784, 246784, 1024, 4096, 0x00def7c1 -0, 247808, 247808, 1024, 4096, 0xa6d0f466 -0, 248832, 248832, 1024, 4096, 0xd1a1f1c2 -0, 249856, 249856, 1024, 4096, 0x32f8923c -0, 250880, 250880, 1024, 4096, 0x137001d2 -0, 251904, 251904, 1024, 4096, 0xb881f6cd -0, 252928, 252928, 1024, 4096, 0xf44e034a -0, 253952, 253952, 1024, 4096, 0xb43fecf7 -0, 254976, 254976, 1024, 4096, 0xe62ced50 -0, 256000, 256000, 1024, 4096, 0x221dfd0d -0, 257024, 257024, 1024, 4096, 0x85400147 -0, 258048, 258048, 1024, 4096, 0x8bf8d054 -0, 259072, 259072, 1024, 4096, 0x08370170 -0, 260096, 260096, 1024, 4096, 0xec62effa -0, 261120, 261120, 1024, 4096, 0xd58cf67c -0, 262144, 262144, 1024, 4096, 0xf597f9a1 -0, 263168, 263168, 1024, 4096, 0x63fcf0b0 -0, 264192, 264192, 408, 1632, 0xedfa314a +0, 0, 0, 1024, 4096, 0xd0b20048 +0, 1024, 1024, 1024, 4096, 0x8abaf0ab +0, 2048, 2048, 1024, 4096, 0x5a00f489 +0, 3072, 3072, 1024, 4096, 0x6d87f3d3 +0, 4096, 4096, 1024, 4096, 0x27fc04bc +0, 5120, 5120, 1024, 4096, 0x6d18f2e1 +0, 6144, 6144, 1024, 4096, 0x6a11f0c9 +0, 7168, 7168, 1024, 4096, 0xadf8ec27 +0, 8192, 8192, 1024, 4096, 0xf0e2fcf9 +0, 9216, 9216, 1024, 4096, 0x55280372 +0, 10240, 10240, 1024, 4096, 0x898ffad3 +0, 11264, 11264, 1024, 4096, 0x06a5eb6b +0, 12288, 12288, 1024, 4096, 0x9fadfe07 +0, 13312, 13312, 1024, 4096, 0x6f32fd99 +0, 14336, 14336, 1024, 4096, 0x7856f871 +0, 15360, 15360, 1024, 4096, 0xf742f893 +0, 16384, 16384, 1024, 4096, 0x7955f7e7 +0, 17408, 17408, 1024, 4096, 0xbb32f521 +0, 18432, 18432, 1024, 4096, 0x8302fda9 +0, 19456, 19456, 1024, 4096, 0x0d3cfdeb +0, 20480, 20480, 1024, 4096, 0xd034ed5f +0, 21504, 21504, 1024, 4096, 0xd3c1fb11 +0, 22528, 22528, 1024, 4096, 0x80bc0734 +0, 23552, 23552, 1024, 4096, 0x82a60000 +0, 24576, 24576, 1024, 4096, 0xaf6ceb09 +0, 25600, 25600, 1024, 4096, 0x0c0dec9f +0, 26624, 26624, 1024, 4096, 0x8ca8f335 +0, 27648, 27648, 1024, 4096, 0xc75604bc +0, 28672, 28672, 1024, 4096, 0x0a22f7b9 +0, 29696, 29696, 1024, 4096, 0x237cf4a5 +0, 30720, 30720, 1024, 4096, 0x5276f36f +0, 31744, 31744, 1024, 4096, 0x148a0194 +0, 32768, 32768, 1024, 4096, 0xd0b20048 +0, 33792, 33792, 1024, 4096, 0x8abaf0ab +0, 34816, 34816, 1024, 4096, 0x5a00f489 +0, 35840, 35840, 1024, 4096, 0x6d87f3d3 +0, 36864, 36864, 1024, 4096, 0x27fc04bc +0, 37888, 37888, 1024, 4096, 0x6d18f2e1 +0, 38912, 38912, 1024, 4096, 0x6a11f0c9 +0, 39936, 39936, 1024, 4096, 0xadf8ec27 +0, 40960, 40960, 1024, 4096, 0xf0e2fcf9 +0, 41984, 41984, 1024, 4096, 0x55280372 +0, 43008, 43008, 1024, 4096, 0x8ac5fad5 +0, 44032, 44032, 1024, 4096, 0x934007ba +0, 45056, 45056, 1024, 4096, 0x84acf4a3 +0, 46080, 46080, 1024, 4096, 0x7c8ff49b +0, 47104, 47104, 1024, 4096, 0x79030244 +0, 48128, 48128, 1024, 4096, 0x28d0e5f5 +0, 49152, 49152, 1024, 4096, 0xf12df059 +0, 50176, 50176, 1024, 4096, 0xd0eef7a7 +0, 51200, 51200, 1024, 4096, 0x2e2e02e4 +0, 52224, 52224, 1024, 4096, 0x7c421656 +0, 53248, 53248, 1024, 4096, 0x79fcea35 +0, 54272, 54272, 1024, 4096, 0xb566e88b +0, 55296, 55296, 1024, 4096, 0xad66f8e9 +0, 56320, 56320, 1024, 4096, 0xe0d001dc +0, 57344, 57344, 1024, 4096, 0xfc5df6cd +0, 58368, 58368, 1024, 4096, 0x9dcefad5 +0, 59392, 59392, 1024, 4096, 0xbde90702 +0, 60416, 60416, 1024, 4096, 0x4feef329 +0, 61440, 61440, 1024, 4096, 0xbb30ef39 +0, 62464, 62464, 1024, 4096, 0x131ff1e3 +0, 63488, 63488, 1024, 4096, 0x994c0184 +0, 64512, 64512, 1024, 4096, 0xc981e10b +0, 65536, 65536, 1024, 4096, 0xceff022a +0, 66560, 66560, 1024, 4096, 0x07d1e1d3 +0, 67584, 67584, 1024, 4096, 0x7ea5f31d +0, 68608, 68608, 1024, 4096, 0x16e1e885 +0, 69632, 69632, 1024, 4096, 0x2a92fb45 +0, 70656, 70656, 1024, 4096, 0x9f90ef6b +0, 71680, 71680, 1024, 4096, 0xed961010 +0, 72704, 72704, 1024, 4096, 0x6169f659 +0, 73728, 73728, 1024, 4096, 0xbe830c50 +0, 74752, 74752, 1024, 4096, 0x1744ea89 +0, 75776, 75776, 1024, 4096, 0x00bcf34f +0, 76800, 76800, 1024, 4096, 0x91f7f7f3 +0, 77824, 77824, 1024, 4096, 0xa4e1f1fb +0, 78848, 78848, 1024, 4096, 0xf3e5f73b +0, 79872, 79872, 1024, 4096, 0x64d0eb95 +0, 80896, 80896, 1024, 4096, 0xe0c90d40 +0, 81920, 81920, 1024, 4096, 0xe9701e32 +0, 82944, 82944, 1024, 4096, 0x760d26b0 +0, 83968, 83968, 1024, 4096, 0x3f4303e4 +0, 84992, 84992, 1024, 4096, 0x1cc502bc +0, 86016, 86016, 1024, 4096, 0x6d7bf089 +0, 87040, 87040, 1024, 4096, 0xe03807fc +0, 88064, 88064, 1024, 4096, 0xf12fe897 +0, 89088, 89088, 1024, 4096, 0x0123e87d +0, 90112, 90112, 1024, 4096, 0x869808d4 +0, 91136, 91136, 1024, 4096, 0x9538def3 +0, 92160, 92160, 1024, 4096, 0x92ed2ab0 +0, 93184, 93184, 1024, 4096, 0xc80bfe9d +0, 94208, 94208, 1024, 4096, 0x56130220 +0, 95232, 95232, 1024, 4096, 0xd3a7f0f3 +0, 96256, 96256, 1024, 4096, 0xfca0eeaf +0, 97280, 97280, 1024, 4096, 0xd409d82b +0, 98304, 98304, 1024, 4096, 0x29ba0424 +0, 99328, 99328, 1024, 4096, 0x4e9cdf19 +0, 100352, 100352, 1024, 4096, 0xb0511cc0 +0, 101376, 101376, 1024, 4096, 0xd499e541 +0, 102400, 102400, 1024, 4096, 0x0910f25f +0, 103424, 103424, 1024, 4096, 0x6e5d1c08 +0, 104448, 104448, 1024, 4096, 0xa07511a8 +0, 105472, 105472, 1024, 4096, 0xddd1ee73 +0, 106496, 106496, 1024, 4096, 0x5b46fb17 +0, 107520, 107520, 1024, 4096, 0xc558e301 +0, 108544, 108544, 1024, 4096, 0x9041e627 +0, 109568, 109568, 1024, 4096, 0xeadae195 +0, 110592, 110592, 1024, 4096, 0x663d0c5a +0, 111616, 111616, 1024, 4096, 0x1c57d55b +0, 112640, 112640, 1024, 4096, 0x7ce90702 +0, 113664, 113664, 1024, 4096, 0xf56c15d0 +0, 114688, 114688, 1024, 4096, 0xa2edd14d +0, 115712, 115712, 1024, 4096, 0x93f1171c +0, 116736, 116736, 1024, 4096, 0xe02e152a +0, 117760, 117760, 1024, 4096, 0x55aaeba7 +0, 118784, 118784, 1024, 4096, 0xacabd7a7 +0, 119808, 119808, 1024, 4096, 0xaa18150a +0, 120832, 120832, 1024, 4096, 0x065ed6a1 +0, 121856, 121856, 1024, 4096, 0x9df9268e +0, 122880, 122880, 1024, 4096, 0x8e0a23e6 +0, 123904, 123904, 1024, 4096, 0x872d019e +0, 124928, 124928, 1024, 4096, 0x3aff116c +0, 125952, 125952, 1024, 4096, 0x4a1717f8 +0, 126976, 126976, 1024, 4096, 0xa3812998 +0, 128000, 128000, 1024, 4096, 0x8f12ee4f +0, 129024, 129024, 1024, 4096, 0x1add13c4 +0, 130048, 130048, 1024, 4096, 0x4f3825da +0, 131072, 131072, 1024, 4096, 0xf732d42b +0, 132096, 132096, 1024, 4096, 0xa2b3e578 +0, 133120, 133120, 1024, 4096, 0xdc18ff83 +0, 134144, 134144, 1024, 4096, 0xd13df8c5 +0, 135168, 135168, 1024, 4096, 0x24c506ff +0, 136192, 136192, 1024, 4096, 0xb58cf9d4 +0, 137216, 137216, 1024, 4096, 0x734cecba +0, 138240, 138240, 1024, 4096, 0x9af5fb4e +0, 139264, 139264, 1024, 4096, 0x8510f05f +0, 140288, 140288, 1024, 4096, 0x81e0f2c3 +0, 141312, 141312, 1024, 4096, 0x5c060641 +0, 142336, 142336, 1024, 4096, 0xb15bfc84 +0, 143360, 143360, 1024, 4096, 0xe7dafcaa +0, 144384, 144384, 1024, 4096, 0x5419faaa +0, 145408, 145408, 1024, 4096, 0x6f97fa6f +0, 146432, 146432, 1024, 4096, 0x5e69e975 +0, 147456, 147456, 1024, 4096, 0xd614f89e +0, 148480, 148480, 1024, 4096, 0x2532e193 +0, 149504, 149504, 1024, 4096, 0x0ce9f04c +0, 150528, 150528, 1024, 4096, 0x0935ec67 +0, 151552, 151552, 1024, 4096, 0x92d6f5d9 +0, 152576, 152576, 1024, 4096, 0xccffea44 +0, 153600, 153600, 1024, 4096, 0x81e3eea0 +0, 154624, 154624, 1024, 4096, 0xc5c2fe66 +0, 155648, 155648, 1024, 4096, 0x75dbf93c +0, 156672, 156672, 1024, 4096, 0x6294f023 +0, 157696, 157696, 1024, 4096, 0xf39eef54 +0, 158720, 158720, 1024, 4096, 0x03b1fa13 +0, 159744, 159744, 1024, 4096, 0xacc0faf2 +0, 160768, 160768, 1024, 4096, 0xcd9ffc79 +0, 161792, 161792, 1024, 4096, 0x4ffc023f +0, 162816, 162816, 1024, 4096, 0x3126ed15 +0, 163840, 163840, 1024, 4096, 0x611ff8d6 +0, 164864, 164864, 1024, 4096, 0x6a9bfa1a +0, 165888, 165888, 1024, 4096, 0xb06cfb10 +0, 166912, 166912, 1024, 4096, 0x1c9f00bb +0, 167936, 167936, 1024, 4096, 0xc0bbeebf +0, 168960, 168960, 1024, 4096, 0x383eea91 +0, 169984, 169984, 1024, 4096, 0xf927f893 +0, 171008, 171008, 1024, 4096, 0xbfc3f9b4 +0, 172032, 172032, 1024, 4096, 0x9faaef83 +0, 173056, 173056, 1024, 4096, 0x4dc6f411 +0, 174080, 174080, 1024, 4096, 0x9432ff0f +0, 175104, 175104, 1024, 4096, 0x62d5e7d6 +0, 176128, 176128, 1024, 4096, 0x1af9ea59 +0, 177152, 177152, 1024, 4096, 0x3dcbf8d0 +0, 178176, 178176, 1024, 4096, 0x80fbf978 +0, 179200, 179200, 1024, 4096, 0xbe60f05b +0, 180224, 180224, 1024, 4096, 0xf12ffb83 +0, 181248, 181248, 1024, 4096, 0xfed0f81a +0, 182272, 182272, 1024, 4096, 0x892eede2 +0, 183296, 183296, 1024, 4096, 0x4101f200 +0, 184320, 184320, 1024, 4096, 0x08759c99 +0, 185344, 185344, 1024, 4096, 0xea80fab7 +0, 186368, 186368, 1024, 4096, 0x2b47fcf4 +0, 187392, 187392, 1024, 4096, 0x2933f949 +0, 188416, 188416, 1024, 4096, 0x10c3eaed +0, 189440, 189440, 1024, 4096, 0x38bb0089 +0, 190464, 190464, 1024, 4096, 0x4fa4f4b6 +0, 191488, 191488, 1024, 4096, 0x47c9fd4c +0, 192512, 192512, 1024, 4096, 0x6e95d5d1 +0, 193536, 193536, 1024, 4096, 0x6deaf758 +0, 194560, 194560, 1024, 4096, 0x96a2f230 +0, 195584, 195584, 1024, 4096, 0x6515fa5b +0, 196608, 196608, 1024, 4096, 0xbdf6f5a6 +0, 197632, 197632, 1024, 4096, 0x74d4f365 +0, 198656, 198656, 1024, 4096, 0x932903e3 +0, 199680, 199680, 1024, 4096, 0x7468085e +0, 200704, 200704, 1024, 4096, 0x0d908b65 +0, 201728, 201728, 1024, 4096, 0x86e7f740 +0, 202752, 202752, 1024, 4096, 0x09fff8d2 +0, 203776, 203776, 1024, 4096, 0xf0430838 +0, 204800, 204800, 1024, 4096, 0x525bf9ec +0, 205824, 205824, 1024, 4096, 0x17c7ee8d +0, 206848, 206848, 1024, 4096, 0x7632fc3b +0, 207872, 207872, 1024, 4096, 0xf12aefe9 +0, 208896, 208896, 1024, 4096, 0x0d72ed83 +0, 209920, 209920, 1024, 4096, 0x3dcbf8d0 +0, 210944, 210944, 1024, 4096, 0x80fbf978 +0, 211968, 211968, 1024, 4096, 0xbe60f05b +0, 212992, 212992, 1024, 4096, 0xf12ffb83 +0, 214016, 214016, 1024, 4096, 0xfed0f81a +0, 215040, 215040, 1024, 4096, 0x892eede2 +0, 216064, 216064, 1024, 4096, 0x4101f200 +0, 217088, 217088, 1024, 4096, 0x08759c99 +0, 218112, 218112, 1024, 4096, 0xea80fab7 +0, 219136, 219136, 1024, 4096, 0x2b47fcf4 +0, 220160, 220160, 1024, 4096, 0x2933f949 +0, 221184, 221184, 1024, 4096, 0x10c3eaed +0, 222208, 222208, 1024, 4096, 0x38bb0089 +0, 223232, 223232, 1024, 4096, 0x4fa4f4b6 +0, 224256, 224256, 1024, 4096, 0x47c9fd4c +0, 225280, 225280, 1024, 4096, 0x6e95d5d1 +0, 226304, 226304, 1024, 4096, 0x6deaf758 +0, 227328, 227328, 1024, 4096, 0x96a2f230 +0, 228352, 228352, 1024, 4096, 0x6515fa5b +0, 229376, 229376, 1024, 4096, 0xbdf6f5a6 +0, 230400, 230400, 1024, 4096, 0x74d4f365 +0, 231424, 231424, 1024, 4096, 0x932903e3 +0, 232448, 232448, 1024, 4096, 0x7468085e +0, 233472, 233472, 1024, 4096, 0x0d908b65 +0, 234496, 234496, 1024, 4096, 0x86e7f740 +0, 235520, 235520, 1024, 4096, 0x09fff8d2 +0, 236544, 236544, 1024, 4096, 0xf0430838 +0, 237568, 237568, 1024, 4096, 0x525bf9ec +0, 238592, 238592, 1024, 4096, 0x17c7ee8d +0, 239616, 239616, 1024, 4096, 0x7632fc3b +0, 240640, 240640, 1024, 4096, 0xf12aefe9 +0, 241664, 241664, 1024, 4096, 0x0d72ed83 +0, 242688, 242688, 1024, 4096, 0x3dcbf8d0 +0, 243712, 243712, 1024, 4096, 0x80fbf978 +0, 244736, 244736, 1024, 4096, 0xbe60f05b +0, 245760, 245760, 1024, 4096, 0xf12ffb83 +0, 246784, 246784, 1024, 4096, 0xfed0f81a +0, 247808, 247808, 1024, 4096, 0x892eede2 +0, 248832, 248832, 1024, 4096, 0x4101f200 +0, 249856, 249856, 1024, 4096, 0x08759c99 +0, 250880, 250880, 1024, 4096, 0xea80fab7 +0, 251904, 251904, 1024, 4096, 0x2b47fcf4 +0, 252928, 252928, 1024, 4096, 0x2933f949 +0, 253952, 253952, 1024, 4096, 0x10c3eaed +0, 254976, 254976, 1024, 4096, 0x38bb0089 +0, 256000, 256000, 1024, 4096, 0x4fa4f4b6 +0, 257024, 257024, 1024, 4096, 0x47c9fd4c +0, 258048, 258048, 1024, 4096, 0x6e95d5d1 +0, 259072, 259072, 1024, 4096, 0x6deaf758 +0, 260096, 260096, 1024, 4096, 0x96a2f230 +0, 261120, 261120, 1024, 4096, 0x6515fa5b +0, 262144, 262144, 1024, 4096, 0xbdf6f5a6 +0, 263168, 263168, 1024, 4096, 0x74d4f365 +0, 264192, 264192, 408, 1632, 0x637b3c21 -- 2.35.1.1094.g7c7d902a7c-goog _______________________________________________ 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".