PR #21573 opened by PRoslyy
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21573
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/21573.patch

Adds HCA options to avcodec/hcadec in order to enable decrypting HCA streams in 
USM files and schedules the now redundant avformat/hca options for removal.  
This is to avoid duplicating the options to avformat/usmdec (and potentially 
avformat/aaxdec in the future since those also can contain HCA streams).

Also adds documentation for the new options and a fate test for encrypted HCA.

For the FATE test sample file, please use 
[https://streams.videolan.org/ffmpeg/incoming/encrypted-hca_lowkey-3201512.hca](https://streams.videolan.org/ffmpeg/incoming/encrypted-hca_lowkey-3201512.hca)
 named as `hca/hca-encrypted.hca`.


>From 7f1fc0ed3e149548ece1509db80b58574a86916f Mon Sep 17 00:00:00 2001
From: Pavel Roslyy <[email protected]>
Date: Sat, 24 Jan 2026 13:52:45 -0800
Subject: [PATCH 1/5] avcodec/hcadec: add hca_key and hca_subkey options

The options in avformat/hca do not work for encrypted HCA streams
in usm files.  Rather than duplicating the options into avformat/usmdec
it makes more sense to move the options to the decoder.

Signed-off-by: Pavel Roslyy <[email protected]>
---
 libavcodec/hcadec.c  | 52 +++++++++++++++++++++++++++++++++++++++-----
 libavcodec/version.h |  2 +-
 2 files changed, 48 insertions(+), 6 deletions(-)

diff --git a/libavcodec/hcadec.c b/libavcodec/hcadec.c
index 7780372cf3..b4ea555d84 100644
--- a/libavcodec/hcadec.c
+++ b/libavcodec/hcadec.c
@@ -16,6 +16,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/opt.h"
 #include "libavutil/crc.h"
 #include "libavutil/float_dsp.h"
 #include "libavutil/mem.h"
@@ -47,14 +48,13 @@ typedef struct ChannelContext {
 } ChannelContext;
 
 typedef struct HCAContext {
+    AVClass *class;
     const AVCRC *crc_table;
 
     ChannelContext ch[MAX_CHANNELS];
 
     uint8_t ath[128];
     uint8_t cipher[256];
-    uint64_t key;
-    uint16_t subkey;
 
     int     ath_type;
     int     ciph_type;
@@ -70,6 +70,10 @@ typedef struct HCAContext {
     av_tx_fn           tx_fn;
     AVTXContext       *tx_ctx;
     AVFloatDSPContext *fdsp;
+    uint64_t key;
+    uint16_t subkey;
+    uint8_t *keyopt;
+    int keyopt_len;
 } HCAContext;
 
 static void cipher_init56_create_table(uint8_t *r, uint8_t key)
@@ -202,7 +206,8 @@ static av_cold void init_flush(AVCodecContext *avctx)
 {
     HCAContext *c = avctx->priv_data;
 
-    memset(c, 0, offsetof(HCAContext, tx_fn));
+    // Avoid destroying AVClass*
+    memset(&c->crc_table, 0, offsetof(HCAContext, tx_fn) - 
offsetof(HCAContext, crc_table));
 }
 
 static int init_hca(AVCodecContext *avctx, const uint8_t *extradata,
@@ -224,7 +229,11 @@ static int init_hca(AVCodecContext *avctx, const uint8_t 
*extradata,
 
     bytestream2_skipu(gb, 4);
     version = bytestream2_get_be16(gb);
-    bytestream2_skipu(gb, 2);
+    /* avformat/usmdec does not extend extradata by 10 bytes which can cause
+     * key and/or subkey to be assigned garbage when dealing with usm.
+     * Save chunk size to compare it to extradata_size later to know where we 
came from
+     */
+    int chunk_size = bytestream2_get_be16(gb) & HCA_MASK;
 
     c->ath_type = version >= 0x200 ? 0 : 1;
 
@@ -285,12 +294,25 @@ static int init_hca(AVCodecContext *avctx, const uint8_t 
*extradata,
         }
     }
 
-    if (bytestream2_get_bytes_left(gb) >= 10) {
+    if (bytestream2_get_bytes_left(gb) >= 10 && extradata_size > chunk_size) {
         bytestream2_skip(gb, bytestream2_get_bytes_left(gb) - 10);
         c->key = bytestream2_get_be64u(gb);
         c->subkey = bytestream2_get_be16u(gb);
     }
 
+    if (c->keyopt_len > 8) {
+        av_log(c, AV_LOG_ERROR, "hca_key value must be at most 8 bytes!\n");
+        return AVERROR(EINVAL);
+    }
+
+    if (c->keyopt_len) {
+        c->key = 0;
+        // Convert array of bytes to uint64_t
+        for (int i = 0; i < c->keyopt_len; i++) {
+            c->key |= (uint64_t) c->keyopt[c->keyopt_len - 1 - i] << 8*i;
+        }
+    }
+
     cipher_init(c->cipher, c->ciph_type, c->key, c->subkey);
 
     ret = ath_init(c->ath, c->ath_type, avctx->sample_rate);
@@ -623,11 +645,31 @@ static av_cold void decode_flush(AVCodecContext *avctx)
         memset(c->ch[ch].imdct_prev, 0, sizeof(c->ch[ch].imdct_prev));
 }
 
+#define OFFSET(x) offsetof(HCAContext, x)
+#define FLAGS AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_DECODING_PARAM
+static const AVOption hca_options[] = {
+    { "hca_key",
+        "Key used for handling CRI HCA streams (hex)", OFFSET(keyopt),
+        AV_OPT_TYPE_BINARY, .flags = FLAGS, },
+    { "hca_subkey",
+        "Subkey used for handling CRI HCA streams", OFFSET(subkey),
+        AV_OPT_TYPE_INT, {.i64=0}, .min = 0, .max = UINT16_MAX, .flags = FLAGS 
},
+    { NULL },
+};
+
+static const AVClass hca_class = {
+    .class_name = "hca",
+    .item_name  = av_default_item_name,
+    .option     = hca_options,
+    .version    = LIBAVUTIL_VERSION_INT,
+};
+
 const FFCodec ff_hca_decoder = {
     .p.name         = "hca",
     CODEC_LONG_NAME("CRI HCA"),
     .p.type         = AVMEDIA_TYPE_AUDIO,
     .p.id           = AV_CODEC_ID_HCA,
+    .p.priv_class   = &hca_class,
     .priv_data_size = sizeof(HCAContext),
     .init           = decode_init,
     FF_CODEC_DECODE_CB(decode_frame),
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 9d910cf848..21443642a3 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -30,7 +30,7 @@
 #include "version_major.h"
 
 #define LIBAVCODEC_VERSION_MINOR  23
-#define LIBAVCODEC_VERSION_MICRO 102
+#define LIBAVCODEC_VERSION_MICRO 103
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                LIBAVCODEC_VERSION_MINOR, \
-- 
2.52.0


>From 2d7c017d1d4e171fae003d56933681f827492c71 Mon Sep 17 00:00:00 2001
From: Pavel Roslyy <[email protected]>
Date: Sat, 24 Jan 2026 14:19:38 -0800
Subject: [PATCH 2/5] avformat/usmdec: setup extradata for HCA streams

Enables HCA stream decryption.

Signed-off-by: Pavel Roslyy <[email protected]>
---
 libavformat/usmdec.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavformat/usmdec.c b/libavformat/usmdec.c
index fd28e935ce..f97d435de0 100644
--- a/libavformat/usmdec.c
+++ b/libavformat/usmdec.c
@@ -323,7 +323,7 @@ static int64_t parse_chunk(AVFormatContext *s, AVIOContext 
*pb,
                 avpriv_set_pts_info(st, 64, ch->rate.den, ch->rate.num);
 
                 ffstream(st)->need_parsing = AVSTREAM_PARSE_TIMESTAMPS;
-                get_extradata = ch->codec_id == AV_CODEC_ID_ADPCM_ADX;
+                get_extradata = ch->type == AVMEDIA_TYPE_AUDIO;
                 ch->extradata_pos = avio_tell(pb);
             }
 
@@ -336,7 +336,7 @@ static int64_t parse_chunk(AVFormatContext *s, AVIOContext 
*pb,
                 if ((ret = ff_get_extradata(s, st->codecpar, pb, pkt_size)) < 
0)
                     return ret;
             } else {
-                if (ret == ch->extradata_pos && ch->codec_id == 
AV_CODEC_ID_ADPCM_ADX) {
+                if (ret == ch->extradata_pos && ch->type == 
AVMEDIA_TYPE_AUDIO) {
                     avio_skip(pb, pkt_size);
                     ret = 0;
                 } else {
-- 
2.52.0


>From 2225f4ddb2becd62dad2121668970bbc409cd3ca Mon Sep 17 00:00:00 2001
From: Pavel Roslyy <[email protected]>
Date: Sat, 24 Jan 2026 15:31:31 -0800
Subject: [PATCH 3/5] doc/decoders: add HCA decoder options

Signed-off-by: Pavel Roslyy <[email protected]>
---
 doc/decoders.texi | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/doc/decoders.texi b/doc/decoders.texi
index 1db297f42f..98ab3794ab 100644
--- a/doc/decoders.texi
+++ b/doc/decoders.texi
@@ -307,6 +307,31 @@ This decoder generates wave patterns according to 
predefined sequences. Its
 use is purely internal and the format of the data it accepts is not publicly
 documented.
 
+@section hca
+
+CRIWARE High Compression Audio decoder.
+
+This codec is used by various games with CRIWARE middleware.
+
+@subsection Options
+
+@table @option
+
+@item hca_key @var{hexadecimal string}
+16-byte decryption key, in hex.
+
+@item hca_subkey @var{int}
+Subkey used to permute the decryption key. Range is 0 to 65535.
+
+@end table
+
+@subsection Examples
+
+Convert usm video with encrypted hca audio stream to mp4:
+@example
+ffmpeg -hca_key 89ABCDEF -i input.usm output.mp4
+@end example
+
 @section libcelt
 
 libcelt decoder wrapper.
-- 
2.52.0


>From 61e66b89683f157e20ff5faaed879ea597a3736b Mon Sep 17 00:00:00 2001
From: Pavel Roslyy <[email protected]>
Date: Sat, 24 Jan 2026 15:33:20 -0800
Subject: [PATCH 4/5] avformat/hca: Schedule hca key options for removal

Replaced by the options in avcodec/hcadec.

Signed-off-by: Pavel Roslyy <[email protected]>
---
 libavcodec/hcadec.c         |  7 +++++++
 libavformat/hca.c           | 27 ++++++++++++++++++++++++---
 libavformat/version_major.h |  2 ++
 3 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/libavcodec/hcadec.c b/libavcodec/hcadec.c
index b4ea555d84..02d1f8df73 100644
--- a/libavcodec/hcadec.c
+++ b/libavcodec/hcadec.c
@@ -22,6 +22,7 @@
 #include "libavutil/mem.h"
 #include "libavutil/mem_internal.h"
 #include "libavutil/tx.h"
+#include "libavformat/version_major.h"
 
 #include "avcodec.h"
 #include "bytestream.h"
@@ -229,11 +230,15 @@ static int init_hca(AVCodecContext *avctx, const uint8_t 
*extradata,
 
     bytestream2_skipu(gb, 4);
     version = bytestream2_get_be16(gb);
+#if FF_API_HCA_OPTS
     /* avformat/usmdec does not extend extradata by 10 bytes which can cause
      * key and/or subkey to be assigned garbage when dealing with usm.
      * Save chunk size to compare it to extradata_size later to know where we 
came from
      */
     int chunk_size = bytestream2_get_be16(gb) & HCA_MASK;
+#else
+    bytestream2_skipu(gb, 2);
+#endif
 
     c->ath_type = version >= 0x200 ? 0 : 1;
 
@@ -294,11 +299,13 @@ static int init_hca(AVCodecContext *avctx, const uint8_t 
*extradata,
         }
     }
 
+#if FF_API_HCA_OPTS
     if (bytestream2_get_bytes_left(gb) >= 10 && extradata_size > chunk_size) {
         bytestream2_skip(gb, bytestream2_get_bytes_left(gb) - 10);
         c->key = bytestream2_get_be64u(gb);
         c->subkey = bytestream2_get_be16u(gb);
     }
+#endif
 
     if (c->keyopt_len > 8) {
         av_log(c, AV_LOG_ERROR, "hca_key value must be at most 8 bytes!\n");
diff --git a/libavformat/hca.c b/libavformat/hca.c
index e24a21e081..a0b05ad820 100644
--- a/libavformat/hca.c
+++ b/libavformat/hca.c
@@ -27,15 +27,18 @@
 #include "avio_internal.h"
 #include "demux.h"
 #include "internal.h"
+#include "version_major.h"
 
 #define HCA_MASK 0x7f7f7f7f
 
+#if FF_API_HCA_OPTS
 typedef struct HCADemuxContext {
     AVClass *class;
     int64_t keyl;
     int64_t keyh;
     int subkey;
 } HCADemuxContext;
+#endif
 
 static int hca_probe(const AVProbeData *p)
 {
@@ -50,7 +53,9 @@ static int hca_probe(const AVProbeData *p)
 
 static int hca_read_header(AVFormatContext *s)
 {
+#if FF_API_HCA_OPTS
     HCADemuxContext *hca = s->priv_data;
+#endif
     AVCodecParameters *par;
     GetByteContext gb;
     AVIOContext *pb = s->pb;
@@ -73,19 +78,29 @@ static int hca_read_header(AVFormatContext *s)
         return AVERROR(ENOMEM);
 
     par = st->codecpar;
+#if FF_API_HCA_OPTS
     ret = ff_alloc_extradata(par, data_offset + 10);
+#else
+    ret = ff_alloc_extradata(par, data_offset);
+#endif
     if (ret < 0)
         return ret;
 
+#if FF_API_HCA_OPTS
     ret = ffio_read_size(pb, par->extradata + 8, par->extradata_size - 8 - 10);
+#else
+    ret = ffio_read_size(pb, par->extradata + 8, par->extradata_size - 8);
+#endif
     if (ret < 0)
         return AVERROR_INVALIDDATA;
     AV_WL32(par->extradata, MKTAG('H', 'C', 'A', 0));
     AV_WB16(par->extradata + 4, version);
     AV_WB16(par->extradata + 6, data_offset);
+#if FF_API_HCA_OPTS
     AV_WB32(par->extradata + par->extradata_size - 10, hca->keyh);
     AV_WB32(par->extradata + par->extradata_size -  6, hca->keyl);
     AV_WB16(par->extradata + par->extradata_size -  2, hca->subkey);
+#endif
 
     bytestream2_init(&gb, par->extradata + 8, par->extradata_size - 8);
 
@@ -129,17 +144,18 @@ static int hca_read_packet(AVFormatContext *s, AVPacket 
*pkt)
     return ret;
 }
 
+#if FF_API_HCA_OPTS
 #define OFFSET(x) offsetof(HCADemuxContext, x)
 static const AVOption hca_options[] = {
     { "hca_lowkey",
         "Low key used for handling CRI HCA files", OFFSET(keyl),
-        AV_OPT_TYPE_INT64, {.i64=0}, .min = 0, .max = UINT32_MAX, .flags = 
AV_OPT_FLAG_DECODING_PARAM, },
+        AV_OPT_TYPE_INT64, {.i64=0}, .min = 0, .max = UINT32_MAX, .flags = 
AV_OPT_FLAG_DECODING_PARAM|AV_OPT_FLAG_DEPRECATED, },
     { "hca_highkey",
         "High key used for handling CRI HCA files", OFFSET(keyh),
-        AV_OPT_TYPE_INT64, {.i64=0}, .min = 0, .max = UINT32_MAX, .flags = 
AV_OPT_FLAG_DECODING_PARAM, },
+        AV_OPT_TYPE_INT64, {.i64=0}, .min = 0, .max = UINT32_MAX, .flags = 
AV_OPT_FLAG_DECODING_PARAM|AV_OPT_FLAG_DEPRECATED, },
     { "hca_subkey",
         "Subkey used for handling CRI HCA files", OFFSET(subkey),
-        AV_OPT_TYPE_INT, {.i64=0}, .min = 0, .max = UINT16_MAX, .flags = 
AV_OPT_FLAG_DECODING_PARAM },
+        AV_OPT_TYPE_INT, {.i64=0}, .min = 0, .max = UINT16_MAX, .flags = 
AV_OPT_FLAG_DECODING_PARAM|AV_OPT_FLAG_DEPRECATED },
     { NULL },
 };
 
@@ -149,14 +165,19 @@ static const AVClass hca_class = {
     .option     = hca_options,
     .version    = LIBAVUTIL_VERSION_INT,
 };
+#endif
 
 const FFInputFormat ff_hca_demuxer = {
     .p.name         = "hca",
     .p.long_name    = NULL_IF_CONFIG_SMALL("CRI HCA"),
+#if FF_API_HCA_OPTS
     .p.priv_class   = &hca_class,
+#endif
     .p.extensions   = "hca",
     .p.flags        = AVFMT_GENERIC_INDEX,
+#if FF_API_HCA_OPTS
     .priv_data_size = sizeof(HCADemuxContext),
+#endif
     .read_probe     = hca_probe,
     .read_header    = hca_read_header,
     .read_packet    = hca_read_packet,
diff --git a/libavformat/version_major.h b/libavformat/version_major.h
index c2f6e1616b..53661732d1 100644
--- a/libavformat/version_major.h
+++ b/libavformat/version_major.h
@@ -47,6 +47,8 @@
 
 #define FF_API_NO_DEFAULT_TLS_VERIFY    (LIBAVFORMAT_VERSION_MAJOR < 63)
 
+#define FF_API_HCA_OPTS                 (LIBAVFORMAT_VERSION_MAJOR < 63)
+
 #define FF_API_R_FRAME_RATE            1
 
 #endif /* AVFORMAT_VERSION_MAJOR_H */
-- 
2.52.0


>From 88ddae5ff543fe402090045f80b3a9d887591e10 Mon Sep 17 00:00:00 2001
From: Pavel Roslyy <[email protected]>
Date: Sat, 24 Jan 2026 15:43:13 -0800
Subject: [PATCH 5/5] tests/fate/audio: add encrypted hca test

Signed-off-by: Pavel Roslyy <[email protected]>
---
 tests/fate/audio.mak         |   3 +
 tests/ref/fate/hca-encrypted | 225 +++++++++++++++++++++++++++++++++++
 2 files changed, 228 insertions(+)
 create mode 100644 tests/ref/fate/hca-encrypted

diff --git a/tests/fate/audio.mak b/tests/fate/audio.mak
index c21578947a..c000319968 100644
--- a/tests/fate/audio.mak
+++ b/tests/fate/audio.mak
@@ -48,6 +48,9 @@ fate-g728: REF = $(SAMPLES)/g728/OUTA3.BIN
 fate-g728: CMP = oneoff
 fate-g728: FUZZ = 5
 
+FATE_SAMPLES_AUDIO-$(call DEMDEC, HCA, HCA, ARESAMPLE_FILTER) += 
fate-hca-encrypted
+fate-hca-encrypted: CMD = framecrc -hca_key 30D9E8 -i 
$(TARGET_SAMPLES)/hca/hca-encrypted.hca -f s16le -af aresample
+
 FATE_SAMPLES_AUDIO-$(call PCM, AVI, IMC, ARESAMPLE_FILTER) += fate-imc
 fate-imc: CMD = pcm -i $(TARGET_SAMPLES)/imc/imc.avi
 fate-imc: CMP = oneoff
diff --git a/tests/ref/fate/hca-encrypted b/tests/ref/fate/hca-encrypted
new file mode 100644
index 0000000000..ef74f9843f
--- /dev/null
+++ b/tests/ref/fate/hca-encrypted
@@ -0,0 +1,225 @@
+#tb 0: 1/48000
+#media_type 0: audio
+#codec_id 0: pcm_s16le
+#sample_rate 0: 48000
+#channel_layout_name 0: stereo
+0,          0,          0,     1024,     4096, 0x8d8ae154
+0,       1024,       1024,     1024,     4096, 0xffcf652c
+0,       2048,       2048,     1024,     4096, 0x6793d8f4
+0,       3072,       3072,     1024,     4096, 0xdab77043
+0,       4096,       4096,     1024,     4096, 0x1195c256
+0,       5120,       5120,     1024,     4096, 0x4e94a236
+0,       6144,       6144,     1024,     4096, 0x2425d6de
+0,       7168,       7168,     1024,     4096, 0xf869f5cd
+0,       8192,       8192,     1024,     4096, 0x9d4bef1d
+0,       9216,       9216,     1024,     4096, 0xbb4ae2c8
+0,      10240,      10240,     1024,     4096, 0x95500ead
+0,      11264,      11264,     1024,     4096, 0x94220933
+0,      12288,      12288,     1024,     4096, 0xa2a6f9c2
+0,      13312,      13312,     1024,     4096, 0x81cce378
+0,      14336,      14336,     1024,     4096, 0x243f0a9f
+0,      15360,      15360,     1024,     4096, 0xa02df83e
+0,      16384,      16384,     1024,     4096, 0x8b29063b
+0,      17408,      17408,     1024,     4096, 0xb76a0a5a
+0,      18432,      18432,     1024,     4096, 0x60cfe307
+0,      19456,      19456,     1024,     4096, 0x22a70809
+0,      20480,      20480,     1024,     4096, 0x22a4ea69
+0,      21504,      21504,     1024,     4096, 0xc10b12a1
+0,      22528,      22528,     1024,     4096, 0xecaeedc6
+0,      23552,      23552,     1024,     4096, 0x4c2e2cb4
+0,      24576,      24576,     1024,     4096, 0xa204b772
+0,      25600,      25600,     1024,     4096, 0x450104a5
+0,      26624,      26624,     1024,     4096, 0x266f365c
+0,      27648,      27648,     1024,     4096, 0x275a8dd5
+0,      28672,      28672,     1024,     4096, 0xdecb0a07
+0,      29696,      29696,     1024,     4096, 0x940f6372
+0,      30720,      30720,     1024,     4096, 0xe0e3c0c9
+0,      31744,      31744,     1024,     4096, 0x14091efa
+0,      32768,      32768,     1024,     4096, 0xfb64e0ba
+0,      33792,      33792,     1024,     4096, 0x4a2ff162
+0,      34816,      34816,     1024,     4096, 0x74aa0cf6
+0,      35840,      35840,     1024,     4096, 0x3b5bd5b2
+0,      36864,      36864,     1024,     4096, 0xdc860c38
+0,      37888,      37888,     1024,     4096, 0x4e0c7785
+0,      38912,      38912,     1024,     4096, 0x8dc02fa8
+0,      39936,      39936,     1024,     4096, 0x65a00d8f
+0,      40960,      40960,     1024,     4096, 0xaa68bd4d
+0,      41984,      41984,     1024,     4096, 0x2b111ac3
+0,      43008,      43008,     1024,     4096, 0x32e93da7
+0,      44032,      44032,     1024,     4096, 0x688518fe
+0,      45056,      45056,     1024,     4096, 0x02b1df7a
+0,      46080,      46080,     1024,     4096, 0xdb729f04
+0,      47104,      47104,     1024,     4096, 0x4b4b325f
+0,      48128,      48128,     1024,     4096, 0xe18b21ed
+0,      49152,      49152,     1024,     4096, 0x908b1f34
+0,      50176,      50176,     1024,     4096, 0x61a3ab7a
+0,      51200,      51200,     1024,     4096, 0xdbfc0422
+0,      52224,      52224,     1024,     4096, 0xb8bcea1b
+0,      53248,      53248,     1024,     4096, 0xa5e6f835
+0,      54272,      54272,     1024,     4096, 0xe835eca2
+0,      55296,      55296,     1024,     4096, 0xf2f619ed
+0,      56320,      56320,     1024,     4096, 0xd5002156
+0,      57344,      57344,     1024,     4096, 0xac84f317
+0,      58368,      58368,     1024,     4096, 0xebeee481
+0,      59392,      59392,     1024,     4096, 0x17310b5e
+0,      60416,      60416,     1024,     4096, 0xd991cffd
+0,      61440,      61440,     1024,     4096, 0xdc331f4f
+0,      62464,      62464,     1024,     4096, 0xf0b4dd46
+0,      63488,      63488,     1024,     4096, 0x3308daa8
+0,      64512,      64512,     1024,     4096, 0x471f2da9
+0,      65536,      65536,     1024,     4096, 0xb81f0c4f
+0,      66560,      66560,     1024,     4096, 0x94ad1639
+0,      67584,      67584,     1024,     4096, 0xa5c7db9e
+0,      68608,      68608,     1024,     4096, 0x849ff7e6
+0,      69632,      69632,     1024,     4096, 0x3340008e
+0,      70656,      70656,     1024,     4096, 0xa5e6162a
+0,      71680,      71680,     1024,     4096, 0x0119eada
+0,      72704,      72704,     1024,     4096, 0x6d22fd4d
+0,      73728,      73728,     1024,     4096, 0x35242749
+0,      74752,      74752,     1024,     4096, 0xc00ccdaa
+0,      75776,      75776,     1024,     4096, 0x54ab0e9e
+0,      76800,      76800,     1024,     4096, 0xc757eb39
+0,      77824,      77824,     1024,     4096, 0x478bd745
+0,      78848,      78848,     1024,     4096, 0x90450ac3
+0,      79872,      79872,     1024,     4096, 0x4ceee70d
+0,      80896,      80896,     1024,     4096, 0x255ededa
+0,      81920,      81920,     1024,     4096, 0x56e72fe5
+0,      82944,      82944,     1024,     4096, 0x3fa0fa21
+0,      83968,      83968,     1024,     4096, 0xf39fe182
+0,      84992,      84992,     1024,     4096, 0x2d1ed8b9
+0,      86016,      86016,     1024,     4096, 0xbce00fee
+0,      87040,      87040,     1024,     4096, 0xe90fd7fd
+0,      88064,      88064,     1024,     4096, 0xcd5fef10
+0,      89088,      89088,     1024,     4096, 0xb900e21e
+0,      90112,      90112,     1024,     4096, 0xb52be8b9
+0,      91136,      91136,     1024,     4096, 0x60800bfb
+0,      92160,      92160,     1024,     4096, 0x8bcc0a06
+0,      93184,      93184,     1024,     4096, 0x7197e002
+0,      94208,      94208,     1024,     4096, 0x5502f429
+0,      95232,      95232,     1024,     4096, 0x48ec08aa
+0,      96256,      96256,     1024,     4096, 0x02af1792
+0,      97280,      97280,     1024,     4096, 0xbf22ea59
+0,      98304,      98304,     1024,     4096, 0x37a9f1af
+0,      99328,      99328,     1024,     4096, 0x81682095
+0,     100352,     100352,     1024,     4096, 0xf83208da
+0,     101376,     101376,     1024,     4096, 0x23ded08e
+0,     102400,     102400,     1024,     4096, 0xfb79d9fb
+0,     103424,     103424,     1024,     4096, 0xecd2021b
+0,     104448,     104448,     1024,     4096, 0x8dedea90
+0,     105472,     105472,     1024,     4096, 0x9d820ad6
+0,     106496,     106496,     1024,     4096, 0x008bcc8a
+0,     107520,     107520,     1024,     4096, 0x6628e42a
+0,     108544,     108544,     1024,     4096, 0x791fe00e
+0,     109568,     109568,     1024,     4096, 0x00d90222
+0,     110592,     110592,     1024,     4096, 0x8067d506
+0,     111616,     111616,     1024,     4096, 0x212e07e8
+0,     112640,     112640,     1024,     4096, 0xbbdb0a13
+0,     113664,     113664,     1024,     4096, 0x01f8ea84
+0,     114688,     114688,     1024,     4096, 0x1e08e77a
+0,     115712,     115712,     1024,     4096, 0x4456f6a5
+0,     116736,     116736,     1024,     4096, 0x5292ea75
+0,     117760,     117760,     1024,     4096, 0xb388355b
+0,     118784,     118784,     1024,     4096, 0x7946f14e
+0,     119808,     119808,     1024,     4096, 0x16e7daf3
+0,     120832,     120832,     1024,     4096, 0xe357d474
+0,     121856,     121856,     1024,     4096, 0x1928d3d0
+0,     122880,     122880,     1024,     4096, 0xb0260d75
+0,     123904,     123904,     1024,     4096, 0xf805e522
+0,     124928,     124928,     1024,     4096, 0x11d4f806
+0,     125952,     125952,     1024,     4096, 0xa68500eb
+0,     126976,     126976,     1024,     4096, 0xa410e4ec
+0,     128000,     128000,     1024,     4096, 0xc20b1330
+0,     129024,     129024,     1024,     4096, 0x0e180217
+0,     130048,     130048,     1024,     4096, 0xfbdde307
+0,     131072,     131072,     1024,     4096, 0x00bbba39
+0,     132096,     132096,     1024,     4096, 0x9f80ee16
+0,     133120,     133120,     1024,     4096, 0xd596ef75
+0,     134144,     134144,     1024,     4096, 0x4cf1e95f
+0,     135168,     135168,     1024,     4096, 0xe90cfebf
+0,     136192,     136192,     1024,     4096, 0xd1bcee4c
+0,     137216,     137216,     1024,     4096, 0x22c7f307
+0,     138240,     138240,     1024,     4096, 0x4cbae34e
+0,     139264,     139264,     1024,     4096, 0x504dc53d
+0,     140288,     140288,     1024,     4096, 0x159903df
+0,     141312,     141312,     1024,     4096, 0xa8d8e964
+0,     142336,     142336,     1024,     4096, 0xc3c705df
+0,     143360,     143360,     1024,     4096, 0x765d18a3
+0,     144384,     144384,     1024,     4096, 0xb29bbc30
+0,     145408,     145408,     1024,     4096, 0x79710b4c
+0,     146432,     146432,     1024,     4096, 0x12baca07
+0,     147456,     147456,     1024,     4096, 0xf79a1ae2
+0,     148480,     148480,     1024,     4096, 0x8ada34db
+0,     149504,     149504,     1024,     4096, 0xb599ece4
+0,     150528,     150528,     1024,     4096, 0xf3b3fd10
+0,     151552,     151552,     1024,     4096, 0x192bb956
+0,     152576,     152576,     1024,     4096, 0x9b3fb02e
+0,     153600,     153600,     1024,     4096, 0x9d02df87
+0,     154624,     154624,     1024,     4096, 0x346202db
+0,     155648,     155648,     1024,     4096, 0x25558559
+0,     156672,     156672,     1024,     4096, 0xd6a19d3f
+0,     157696,     157696,     1024,     4096, 0x09a28f3f
+0,     158720,     158720,     1024,     4096, 0x781512c2
+0,     159744,     159744,     1024,     4096, 0xa0b13028
+0,     160768,     160768,     1024,     4096, 0xa2bb286a
+0,     161792,     161792,     1024,     4096, 0x50e30323
+0,     162816,     162816,     1024,     4096, 0xa27980ee
+0,     163840,     163840,     1024,     4096, 0x061bccdc
+0,     164864,     164864,     1024,     4096, 0x21ca20b5
+0,     165888,     165888,     1024,     4096, 0x779a0c4f
+0,     166912,     166912,     1024,     4096, 0x72d3126e
+0,     167936,     167936,     1024,     4096, 0x9dcf7f61
+0,     168960,     168960,     1024,     4096, 0xba471c4c
+0,     169984,     169984,     1024,     4096, 0x281ee63a
+0,     171008,     171008,     1024,     4096, 0x5c2dbd95
+0,     172032,     172032,     1024,     4096, 0x0899436e
+0,     173056,     173056,     1024,     4096, 0x188931ed
+0,     174080,     174080,     1024,     4096, 0xb6fbd4c2
+0,     175104,     175104,     1024,     4096, 0xd24a4a8b
+0,     176128,     176128,     1024,     4096, 0x5a36545e
+0,     177152,     177152,     1024,     4096, 0x736bf6e0
+0,     178176,     178176,     1024,     4096, 0x7d9d2f96
+0,     179200,     179200,     1024,     4096, 0xedbabf65
+0,     180224,     180224,     1024,     4096, 0x37671df7
+0,     181248,     181248,     1024,     4096, 0xb0613ac2
+0,     182272,     182272,     1024,     4096, 0x813f2e04
+0,     183296,     183296,     1024,     4096, 0xbd194ef1
+0,     184320,     184320,     1024,     4096, 0x9a823b47
+0,     185344,     185344,     1024,     4096, 0xaad629d5
+0,     186368,     186368,     1024,     4096, 0x251ab292
+0,     187392,     187392,     1024,     4096, 0xcc224e2a
+0,     188416,     188416,     1024,     4096, 0xac148ebf
+0,     189440,     189440,     1024,     4096, 0xad7624e3
+0,     190464,     190464,     1024,     4096, 0xc5c13c77
+0,     191488,     191488,     1024,     4096, 0x36e42722
+0,     192512,     192512,     1024,     4096, 0xd8860bc0
+0,     193536,     193536,     1024,     4096, 0x4ed90e90
+0,     194560,     194560,     1024,     4096, 0xa8783ac5
+0,     195584,     195584,     1024,     4096, 0x2ebc6bb0
+0,     196608,     196608,     1024,     4096, 0x3a1d40b5
+0,     197632,     197632,     1024,     4096, 0x19ed277d
+0,     198656,     198656,     1024,     4096, 0xd98e04dd
+0,     199680,     199680,     1024,     4096, 0x03fd19d3
+0,     200704,     200704,     1024,     4096, 0x656ab38a
+0,     201728,     201728,     1024,     4096, 0x19ea6511
+0,     202752,     202752,     1024,     4096, 0x04db06ad
+0,     203776,     203776,     1024,     4096, 0x4a4802f1
+0,     204800,     204800,     1024,     4096, 0xa10e97e1
+0,     205824,     205824,     1024,     4096, 0x794f70f3
+0,     206848,     206848,     1024,     4096, 0xced704dd
+0,     207872,     207872,     1024,     4096, 0x6666e19b
+0,     208896,     208896,     1024,     4096, 0xcfb8007f
+0,     209920,     209920,     1024,     4096, 0x4ad31336
+0,     210944,     210944,     1024,     4096, 0x7752db9c
+0,     211968,     211968,     1024,     4096, 0xbaa7c5b4
+0,     212992,     212992,     1024,     4096, 0x6456f689
+0,     214016,     214016,     1024,     4096, 0xacfd8f75
+0,     215040,     215040,     1024,     4096, 0x8e3f2d81
+0,     216064,     216064,     1024,     4096, 0x39d6e19e
+0,     217088,     217088,     1024,     4096, 0xd53b90f7
+0,     218112,     218112,     1024,     4096, 0x9450e8f0
+0,     219136,     219136,     1024,     4096, 0x9832b5cf
+0,     220160,     220160,     1024,     4096, 0x7dd305b1
+0,     221184,     221184,     1024,     4096, 0xdeb3687d
+0,     222208,     222208,     1024,     4096, 0x6a1994d2
+0,     223232,     223232,     1024,     4096, 0xa464ea81
+0,     224256,     224256,     1024,     4096, 0xf25be076
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to