[FFmpeg-devel] [PATCH] avfilter/alimiter: Remove the delay introduced by lookahead buffer

Wang Cao wangcao at google.com
Thu Mar 31 00:03:15 EEST 2022


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 at 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



More information about the ffmpeg-devel mailing list