From: Wang Cao <wangcao-at-google.com@ffmpeg.org> To: ffmpeg-devel@ffmpeg.org Cc: Wang Cao <wangcao@google.com> Subject: [FFmpeg-devel] [PATCH] avfilter/alimiter: Remove the delay introduced by lookahead buffer Date: Wed, 30 Mar 2022 14:03:15 -0700 Message-ID: <20220330210314.2055201-1-wangcao@google.com> (raw) In-Reply-To: <2ec3971d-f698-1369-1ace-eac613afc980@passwd.hu> 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 <wangcao@google.com> --- 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".
next prev parent reply other threads:[~2022-03-30 21:05 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-03-27 6:08 [FFmpeg-devel] [PATCH] avfilter/alimiter: Add "flush_buffer" option to flush the remaining valid data to the output Wang Cao 2022-03-27 21:40 ` Marton Balint 2022-03-30 21:03 ` Wang Cao [this message] 2022-04-04 15:46 ` [FFmpeg-devel] [PATCH] avfilter/alimiter: Remove the delay introduced by lookahead buffer Paul B Mahol 2022-04-04 15:49 ` [FFmpeg-devel] [PATCH] avfilter/alimiter: Add "flush_buffer" option to flush the remaining valid data to the output Paul B Mahol 2022-04-04 22:28 ` Marton Balint 2022-04-05 18:56 ` Wang Cao 2022-04-06 11:49 ` Paul B Mahol 2022-04-07 7:46 ` Paul B Mahol 2022-04-07 21:56 ` Wang Cao 2022-04-08 18:42 ` Paul B Mahol 2022-04-08 20:41 ` Wang Cao 2022-04-09 12:37 ` Paul B Mahol 2022-04-11 20:59 ` Wang Cao 2022-04-12 19:42 ` Paul B Mahol 2022-04-13 4:11 ` Wang Cao 2022-04-15 18:49 ` [FFmpeg-devel] [PATCH] avfilter/alimiter: Add an option "comp_delay" that removes the delay introduced by lookahead buffer Wang Cao 2022-04-29 20:48 ` Wang Cao 2022-05-02 8:26 ` Paul B Mahol 2022-05-05 21:14 ` [FFmpeg-devel] [PATCH] avfilter/alimiter:add latency compensation Wang Cao 2022-05-10 22:45 ` Wang Cao 2022-05-12 12:05 ` Paul B Mahol 2022-05-05 21:17 ` [FFmpeg-devel] [PATCH] avfilter/alimiter: Add an option "comp_delay" that removes the delay introduced by lookahead buffer Wang Cao 2022-04-15 18:51 ` [FFmpeg-devel] [PATCH] avfilter/alimiter: Add "flush_buffer" option to flush the remaining valid data to the output Wang Cao
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220330210314.2055201-1-wangcao@google.com \ --to=wangcao-at-google.com@ffmpeg.org \ --cc=ffmpeg-devel@ffmpeg.org \ --cc=wangcao@google.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git