* [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
@ 2024-04-27 0:36 Michael Niedermayer
2024-04-27 10:44 ` Andreas Rheinhardt
2024-05-27 8:15 ` Anton Khirnov
0 siblings, 2 replies; 22+ messages in thread
From: Michael Niedermayer @ 2024-04-27 0:36 UTC (permalink / raw)
To: FFmpeg development discussions and patches
This allows detecting issues in side data related code, same as what
framecrc does for before already for packet data itself.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
libavformat/framecrcenc.c | 76 +-
tests/ref/fate/autorotate | 2 +-
tests/ref/fate/cover-art-mp3-id3v2-remux | 2 +-
tests/ref/fate/ffmpeg-bsf-input | 10 +-
tests/ref/fate/force_key_frames-source | 784 ++++++------
tests/ref/fate/force_key_frames-source-drop | 34 +-
tests/ref/fate/force_key_frames-source-dup | 1224 +++++++++----------
tests/ref/fate/gapless-mp3 | 6 +-
tests/ref/fate/h264_redundant_pps-side_data | 2 +-
tests/ref/fate/iamf-5_1-copy | 208 ++--
tests/ref/fate/iamf-5_1-demux | 208 ++--
tests/ref/fate/id3v2-priv-remux | 2 +-
tests/ref/fate/matroska-hdr10-plus-remux | 2 +-
tests/ref/fate/matroska-ogg-opus-remux | 2 +-
tests/ref/fate/matroska-opus-remux | 2 +-
tests/ref/fate/matroska-vp8-alpha-remux | 14 +-
tests/ref/fate/mov-cover-image | 2 +-
tests/ref/fate/segment-mp4-to-ts | 250 ++--
tests/ref/fate/shortest | 100 +-
tests/ref/fate/webm-hdr10-plus-remux | 2 +-
tests/ref/fate/webm-webvtt-remux | 24 +-
21 files changed, 1513 insertions(+), 1443 deletions(-)
diff --git a/libavformat/framecrcenc.c b/libavformat/framecrcenc.c
index ce306a6c498..e71bfbd8777 100644
--- a/libavformat/framecrcenc.c
+++ b/libavformat/framecrcenc.c
@@ -21,8 +21,10 @@
#include <inttypes.h>
+#include "config.h"
#include "libavutil/adler32.h"
#include "libavutil/avstring.h"
+#include "libavutil/intreadwrite.h"
#include "libavcodec/codec_id.h"
#include "libavcodec/codec_par.h"
@@ -48,6 +50,17 @@ static int framecrc_write_header(struct AVFormatContext *s)
return ff_framehash_write_header(s);
}
+static av_unused void inline bswap(char *buf, int offset, int size)
+{
+ if (size == 8) {
+ uint64_t val = AV_RN64(buf + offset);
+ AV_WN64(buf + offset, av_bswap64(val));
+ } else if (size == 4) {
+ uint32_t val = AV_RN32(buf + offset);
+ AV_WN32(buf + offset, av_bswap32(val));
+ }
+}
+
static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
{
uint32_t crc = av_adler32_update(0, pkt->data, pkt->size);
@@ -58,11 +71,68 @@ static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
if (pkt->flags != AV_PKT_FLAG_KEY)
av_strlcatf(buf, sizeof(buf), ", F=0x%0X", pkt->flags);
if (pkt->side_data_elems) {
+ int i;
av_strlcatf(buf, sizeof(buf), ", S=%d", pkt->side_data_elems);
- for (int i = 0; i < pkt->side_data_elems; i++) {
- av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER,
- pkt->side_data[i].size);
+ for (i=0; i<pkt->side_data_elems; i++) {
+ const AVPacketSideData *const sd = &pkt->side_data[i];
+ const uint8_t *data = sd->data;
+ uint32_t side_data_crc = 0;
+
+ switch (sd->type) {
+#if HAVE_BIGENDIAN
+ uint8_t bswap_buf[FFMAX(sizeof(AVCPBProperties),
+ sizeof(AVProducerReferenceTime))];
+ case AV_PKT_DATA_PALETTE:
+ case AV_PKT_DATA_REPLAYGAIN:
+ case AV_PKT_DATA_DISPLAYMATRIX:
+ case AV_PKT_DATA_STEREO3D:
+ case AV_PKT_DATA_AUDIO_SERVICE_TYPE:
+ case AV_PKT_DATA_FALLBACK_TRACK:
+ case AV_PKT_DATA_MASTERING_DISPLAY_METADATA:
+ case AV_PKT_DATA_SPHERICAL:
+ case AV_PKT_DATA_CONTENT_LIGHT_LEVEL:
+ case AV_PKT_DATA_S12M_TIMECODE:
+ for (size_t j = 0; j < sd->size / 4; j++) {
+ uint8_t buf[4];
+ AV_WL32(buf, AV_RB32(sd->data + 4 * j));
+ side_data_crc = av_adler32_update(side_data_crc, buf, 4);
+ }
+ break;
+ case AV_PKT_DATA_CPB_PROPERTIES:
+#define BSWAP(struct, field) bswap(bswap_buf, offsetof(struct, field), sizeof(((struct){0}).field))
+ if (sd->size == sizeof(AVCPBProperties)) {
+ memcpy(bswap_buf, sd->data, sizeof(AVCPBProperties));
+ data = bswap_buf;
+ BSWAP(AVCPBProperties, max_bitrate);
+ BSWAP(AVCPBProperties, min_bitrate);
+ BSWAP(AVCPBProperties, avg_bitrate);
+ BSWAP(AVCPBProperties, buffer_size);
+ BSWAP(AVCPBProperties, vbv_delay);
+ }
+ goto pod;
+ case AV_PKT_DATA_PRFT:
+ if (sd->size == sizeof(AVProducerReferenceTime)) {
+ memcpy(bswap_buf, sd->data, sizeof(AVProducerReferenceTime));
+ data = bswap_buf;
+ BSWAP(AVProducerReferenceTime, wallclock);
+ BSWAP(AVProducerReferenceTime, flags);
+ }
+ goto pod;
+ pod:
+#endif
+
+ default:
+ side_data_crc = av_adler32_update(0, data, sd->size);
+ break;
+ case AV_PKT_DATA_IAMF_MIX_GAIN_PARAM:
+ case AV_PKT_DATA_IAMF_DEMIXING_INFO_PARAM:
+ case AV_PKT_DATA_IAMF_RECON_GAIN_INFO_PARAM:
+ side_data_crc = 0;
+ }
+
+ av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER", 0x%08"PRIx32,
+ pkt->side_data[i].size, side_data_crc);
}
}
av_strlcatf(buf, sizeof(buf), "\n");
diff --git a/tests/ref/fate/autorotate b/tests/ref/fate/autorotate
index 2aa29fafa70..1cf066beb2f 100644
--- a/tests/ref/fate/autorotate
+++ b/tests/ref/fate/autorotate
@@ -12,7 +12,7 @@
#sample_rate 1: 44100
#channel_layout_name 1: mono
0, -512, 0, 512, 6997, 0x55c700f6
-1, -256, -256, 1536, 416, 0x92ddc529, S=1, 10
+1, -256, -256, 1536, 416, 0x92ddc529, S=1, 10, 0x00090001
0, 0, 512, 512, 4847, 0xe74f522e, F=0x0
1, 1280, 1280, 1536, 418, 0x0a7fcd2d
0, 512, 1024, 512, 5281, 0xbd4a5dac, F=0x0
diff --git a/tests/ref/fate/cover-art-mp3-id3v2-remux b/tests/ref/fate/cover-art-mp3-id3v2-remux
index 52b7e72a569..653b60984e4 100644
--- a/tests/ref/fate/cover-art-mp3-id3v2-remux
+++ b/tests/ref/fate/cover-art-mp3-id3v2-remux
@@ -20,7 +20,7 @@
#codec_id 3: png
#dimensions 3: 263x263
#sar 3: 1/1
-0, -353590, -353590, 368640, 417, 0x15848290, S=1, 10
+0, -353590, -353590, 368640, 417, 0x15848290, S=1, 10, 0x034e0055
1, 0, 0, 0, 208350, 0x291b44d1
2, 0, 0, 0, 15760, 0x71d5c418
3, 0, 0, 0, 165671, 0x7c1c8070
diff --git a/tests/ref/fate/ffmpeg-bsf-input b/tests/ref/fate/ffmpeg-bsf-input
index 67dd57cf6db..236d95728c6 100644
--- a/tests/ref/fate/ffmpeg-bsf-input
+++ b/tests/ref/fate/ffmpeg-bsf-input
@@ -6,13 +6,13 @@
#sar 0: 1/1
0, 0, 0, 1, 2108, 0x57c38f64
0, 2, 2, 1, 31, 0xabe10d25, F=0x0
-0, 4, 4, 1, 1915, 0xd430347f, S=1, 109
+0, 4, 4, 1, 1915, 0xd430347f, S=1, 109, 0xcbe915dc
0, 6, 6, 1, 35, 0xc4ad0d4c, F=0x0
-0, 8, 8, 1, 2108, 0x57c38f64, S=1, 110
+0, 8, 8, 1, 2108, 0x57c38f64, S=1, 110, 0xb4031479
0, 10, 10, 1, 31, 0xabe10d25, F=0x0
-0, 12, 12, 1, 1915, 0xd430347f, S=1, 109
+0, 12, 12, 1, 1915, 0xd430347f, S=1, 109, 0xcbe915dc
0, 14, 14, 1, 35, 0xc4ad0d4c, F=0x0
-0, 16, 16, 1, 2108, 0x57c38f64, S=1, 110
+0, 16, 16, 1, 2108, 0x57c38f64, S=1, 110, 0xb4031479
0, 18, 18, 1, 31, 0xabe10d25, F=0x0
-0, 20, 20, 1, 1915, 0xd430347f, S=1, 109
+0, 20, 20, 1, 1915, 0xd430347f, S=1, 109, 0xcbe915dc
0, 22, 22, 1, 35, 0xc4ad0d4c, F=0x0
diff --git a/tests/ref/fate/force_key_frames-source b/tests/ref/fate/force_key_frames-source
index 87a35e2d2cf..85679b87d69 100644
--- a/tests/ref/fate/force_key_frames-source
+++ b/tests/ref/fate/force_key_frames-source
@@ -3,395 +3,395 @@
#codec_id 0: mpeg2video
#dimensions 0: 2x2
#sar 0: 0/1
-0, -1, 0, 1, 57, 0x7db00eb7, S=1, 8
-0, 0, 1, 1, 24, 0x4f1c0660, F=0x0, S=1, 8
-0, 1, 2, 1, 24, 0x53dc06a0, F=0x0, S=1, 8
-0, 2, 3, 1, 24, 0x589c06e0, F=0x0, S=1, 8
-0, 3, 4, 1, 24, 0x4a700621, F=0x0, S=1, 8
-0, 4, 5, 1, 24, 0x4f300661, F=0x0, S=1, 8
-0, 5, 6, 1, 24, 0x53f006a1, F=0x0, S=1, 8
-0, 6, 7, 1, 24, 0x58b006e1, F=0x0, S=1, 8
-0, 7, 8, 1, 24, 0x4a840622, F=0x0, S=1, 8
-0, 8, 9, 1, 24, 0x4f440662, F=0x0, S=1, 8
-0, 9, 10, 1, 24, 0x540406a2, F=0x0, S=1, 8
-0, 10, 11, 1, 24, 0x58c406e2, F=0x0, S=1, 8
-0, 11, 12, 1, 24, 0x4a980623, F=0x0, S=1, 8
-0, 12, 13, 1, 24, 0x4f580663, F=0x0, S=1, 8
-0, 13, 14, 1, 24, 0x541806a3, F=0x0, S=1, 8
-0, 14, 15, 1, 24, 0x58d806e3, F=0x0, S=1, 8
-0, 15, 16, 1, 24, 0x4aac0624, F=0x0, S=1, 8
-0, 16, 17, 1, 24, 0x4f6c0664, F=0x0, S=1, 8
-0, 17, 18, 1, 24, 0x542c06a4, F=0x0, S=1, 8
-0, 18, 19, 1, 24, 0x58ec06e4, F=0x0, S=1, 8
-0, 19, 20, 1, 24, 0x4ac00625, F=0x0, S=1, 8
-0, 20, 21, 1, 24, 0x4f800665, F=0x0, S=1, 8
-0, 21, 22, 1, 24, 0x544006a5, F=0x0, S=1, 8
-0, 22, 23, 1, 24, 0x590006e5, F=0x0, S=1, 8
-0, 23, 24, 1, 24, 0x4ad40626, F=0x0, S=1, 8
-0, 24, 25, 1, 24, 0x4f940666, F=0x0, S=1, 8
-0, 25, 26, 1, 24, 0x545406a6, F=0x0, S=1, 8
-0, 26, 27, 1, 24, 0x591406e6, F=0x0, S=1, 8
-0, 27, 28, 1, 24, 0x4ae80627, F=0x0, S=1, 8
-0, 28, 29, 1, 24, 0x4fa80667, F=0x0, S=1, 8
-0, 29, 30, 1, 24, 0x546806a7, F=0x0, S=1, 8
-0, 30, 31, 1, 24, 0x592806e7, F=0x0, S=1, 8
-0, 31, 32, 1, 24, 0x4afc0628, F=0x0, S=1, 8
-0, 32, 33, 1, 24, 0x4fbc0668, F=0x0, S=1, 8
-0, 33, 34, 1, 24, 0x547c06a8, F=0x0, S=1, 8
-0, 34, 35, 1, 24, 0x593c06e8, F=0x0, S=1, 8
-0, 35, 36, 1, 24, 0x4b100629, F=0x0, S=1, 8
-0, 36, 37, 1, 24, 0x4fd00669, F=0x0, S=1, 8
-0, 37, 38, 1, 24, 0x549006a9, F=0x0, S=1, 8
-0, 38, 39, 1, 24, 0x595006e9, F=0x0, S=1, 8
-0, 39, 40, 1, 24, 0x4b24062a, F=0x0, S=1, 8
-0, 40, 41, 1, 24, 0x4fe4066a, F=0x0, S=1, 8
-0, 41, 42, 1, 24, 0x54a406aa, F=0x0, S=1, 8
-0, 42, 43, 1, 24, 0x596406ea, F=0x0, S=1, 8
-0, 43, 44, 1, 24, 0x4b38062b, F=0x0, S=1, 8
-0, 44, 45, 1, 24, 0x4ff8066b, F=0x0, S=1, 8
-0, 45, 46, 1, 24, 0x54b806ab, F=0x0, S=1, 8
-0, 46, 47, 1, 24, 0x597806eb, F=0x0, S=1, 8
-0, 47, 48, 1, 24, 0x4b4c062c, F=0x0, S=1, 8
-0, 48, 49, 1, 24, 0x500c066c, F=0x0, S=1, 8
-0, 49, 50, 1, 24, 0x54cc06ac, F=0x0, S=1, 8
-0, 50, 51, 1, 24, 0x598c06ec, F=0x0, S=1, 8
-0, 51, 52, 1, 24, 0x4b60062d, F=0x0, S=1, 8
-0, 52, 53, 1, 24, 0x5020066d, F=0x0, S=1, 8
-0, 53, 54, 1, 24, 0x54e006ad, F=0x0, S=1, 8
-0, 54, 55, 1, 24, 0x59a006ed, F=0x0, S=1, 8
-0, 55, 56, 1, 24, 0x4b74062e, F=0x0, S=1, 8
-0, 56, 57, 1, 24, 0x5034066e, F=0x0, S=1, 8
-0, 57, 58, 1, 24, 0x54f406ae, F=0x0, S=1, 8
-0, 58, 59, 1, 24, 0x59b406ee, F=0x0, S=1, 8
-0, 59, 60, 1, 24, 0x4b88062f, F=0x0, S=1, 8
-0, 60, 61, 1, 24, 0x5048066f, F=0x0, S=1, 8
-0, 61, 62, 1, 24, 0x550806af, F=0x0, S=1, 8
-0, 62, 63, 1, 24, 0x59c806ef, F=0x0, S=1, 8
-0, 63, 64, 1, 24, 0x4b9c0630, F=0x0, S=1, 8
-0, 64, 65, 1, 24, 0x505c0670, F=0x0, S=1, 8
-0, 65, 66, 1, 24, 0x551c06b0, F=0x0, S=1, 8
-0, 66, 67, 1, 24, 0x59dc06f0, F=0x0, S=1, 8
-0, 67, 68, 1, 24, 0x4bb00631, F=0x0, S=1, 8
-0, 68, 69, 1, 24, 0x50700671, F=0x0, S=1, 8
-0, 69, 70, 1, 24, 0x553006b1, F=0x0, S=1, 8
-0, 70, 71, 1, 24, 0x59f006f1, F=0x0, S=1, 8
-0, 71, 72, 1, 24, 0x4bc40632, F=0x0, S=1, 8
-0, 72, 73, 1, 24, 0x50840672, F=0x0, S=1, 8
-0, 73, 74, 1, 24, 0x554406b2, F=0x0, S=1, 8
-0, 74, 75, 1, 24, 0x5a0406f2, F=0x0, S=1, 8
-0, 75, 76, 1, 24, 0x4bd80633, F=0x0, S=1, 8
-0, 76, 77, 1, 24, 0x50980673, F=0x0, S=1, 8
-0, 77, 78, 1, 24, 0x555806b3, F=0x0, S=1, 8
-0, 78, 79, 1, 24, 0x5a1806f3, F=0x0, S=1, 8
-0, 79, 80, 1, 24, 0x4bec0634, F=0x0, S=1, 8
-0, 80, 81, 1, 24, 0x50ac0674, F=0x0, S=1, 8
-0, 81, 82, 1, 24, 0x556c06b4, F=0x0, S=1, 8
-0, 82, 83, 1, 24, 0x5a2c06f4, F=0x0, S=1, 8
-0, 83, 84, 1, 24, 0x4c000635, F=0x0, S=1, 8
-0, 84, 85, 1, 24, 0x50c00675, F=0x0, S=1, 8
-0, 85, 86, 1, 24, 0x558006b5, F=0x0, S=1, 8
-0, 86, 87, 1, 24, 0x5a4006f5, F=0x0, S=1, 8
-0, 87, 88, 1, 24, 0x4c140636, F=0x0, S=1, 8
-0, 88, 89, 1, 24, 0x50d40676, F=0x0, S=1, 8
-0, 89, 90, 1, 24, 0x559406b6, F=0x0, S=1, 8
-0, 90, 91, 1, 24, 0x5a5406f6, F=0x0, S=1, 8
-0, 91, 92, 1, 24, 0x4c280637, F=0x0, S=1, 8
-0, 92, 93, 1, 24, 0x50e80677, F=0x0, S=1, 8
-0, 93, 94, 1, 24, 0x55a806b7, F=0x0, S=1, 8
-0, 94, 95, 1, 24, 0x5a6806f7, F=0x0, S=1, 8
-0, 95, 96, 1, 24, 0x4c3c0638, F=0x0, S=1, 8
-0, 96, 97, 1, 24, 0x50fc0678, F=0x0, S=1, 8
-0, 97, 98, 1, 24, 0x55bc06b8, F=0x0, S=1, 8
-0, 98, 99, 1, 24, 0x5a7c06f8, F=0x0, S=1, 8
-0, 99, 100, 1, 24, 0x4c500639, F=0x0, S=1, 8
-0, 100, 101, 1, 24, 0x51100679, F=0x0, S=1, 8
-0, 101, 102, 1, 24, 0x55d006b9, F=0x0, S=1, 8
-0, 102, 103, 1, 24, 0x5a9006f9, F=0x0, S=1, 8
-0, 103, 104, 1, 24, 0x4c64063a, F=0x0, S=1, 8
-0, 104, 105, 1, 24, 0x5124067a, F=0x0, S=1, 8
-0, 105, 106, 1, 24, 0x55e406ba, F=0x0, S=1, 8
-0, 106, 107, 1, 24, 0x5aa406fa, F=0x0, S=1, 8
-0, 107, 108, 1, 57, 0x85a40efb, S=1, 8
-0, 108, 109, 1, 24, 0x4f1c0660, F=0x0, S=1, 8
-0, 109, 110, 1, 24, 0x53dc06a0, F=0x0, S=1, 8
-0, 110, 111, 1, 24, 0x589c06e0, F=0x0, S=1, 8
-0, 111, 112, 1, 24, 0x4a700621, F=0x0, S=1, 8
-0, 112, 113, 1, 24, 0x4f300661, F=0x0, S=1, 8
-0, 113, 114, 1, 24, 0x53f006a1, F=0x0, S=1, 8
-0, 114, 115, 1, 24, 0x58b006e1, F=0x0, S=1, 8
-0, 115, 116, 1, 24, 0x4a840622, F=0x0, S=1, 8
-0, 116, 117, 1, 24, 0x4f440662, F=0x0, S=1, 8
-0, 117, 118, 1, 24, 0x540406a2, F=0x0, S=1, 8
-0, 118, 119, 1, 24, 0x58c406e2, F=0x0, S=1, 8
-0, 119, 120, 1, 24, 0x4a980623, F=0x0, S=1, 8
-0, 120, 121, 1, 24, 0x4f580663, F=0x0, S=1, 8
-0, 121, 122, 1, 24, 0x541806a3, F=0x0, S=1, 8
-0, 122, 123, 1, 24, 0x58d806e3, F=0x0, S=1, 8
-0, 123, 124, 1, 24, 0x4aac0624, F=0x0, S=1, 8
-0, 124, 125, 1, 24, 0x4f6c0664, F=0x0, S=1, 8
-0, 125, 126, 1, 24, 0x542c06a4, F=0x0, S=1, 8
-0, 126, 127, 1, 24, 0x58ec06e4, F=0x0, S=1, 8
-0, 127, 128, 1, 24, 0x4ac00625, F=0x0, S=1, 8
-0, 128, 129, 1, 24, 0x4f800665, F=0x0, S=1, 8
-0, 129, 130, 1, 24, 0x544006a5, F=0x0, S=1, 8
-0, 130, 131, 1, 24, 0x590006e5, F=0x0, S=1, 8
-0, 131, 132, 1, 24, 0x4ad40626, F=0x0, S=1, 8
-0, 132, 133, 1, 24, 0x4f940666, F=0x0, S=1, 8
-0, 133, 134, 1, 24, 0x545406a6, F=0x0, S=1, 8
-0, 134, 135, 1, 24, 0x591406e6, F=0x0, S=1, 8
-0, 135, 136, 1, 24, 0x4ae80627, F=0x0, S=1, 8
-0, 136, 137, 1, 24, 0x4fa80667, F=0x0, S=1, 8
-0, 137, 138, 1, 24, 0x546806a7, F=0x0, S=1, 8
-0, 138, 139, 1, 24, 0x592806e7, F=0x0, S=1, 8
-0, 139, 140, 1, 24, 0x4afc0628, F=0x0, S=1, 8
-0, 140, 141, 1, 24, 0x4fbc0668, F=0x0, S=1, 8
-0, 141, 142, 1, 24, 0x547c06a8, F=0x0, S=1, 8
-0, 142, 143, 1, 24, 0x593c06e8, F=0x0, S=1, 8
-0, 143, 144, 1, 24, 0x4b100629, F=0x0, S=1, 8
-0, 144, 145, 1, 24, 0x4fd00669, F=0x0, S=1, 8
-0, 145, 146, 1, 24, 0x549006a9, F=0x0, S=1, 8
-0, 146, 147, 1, 24, 0x595006e9, F=0x0, S=1, 8
-0, 147, 148, 1, 24, 0x4b24062a, F=0x0, S=1, 8
-0, 148, 149, 1, 24, 0x4fe4066a, F=0x0, S=1, 8
-0, 149, 150, 1, 24, 0x54a406aa, F=0x0, S=1, 8
-0, 150, 151, 1, 24, 0x596406ea, F=0x0, S=1, 8
-0, 151, 152, 1, 24, 0x4b38062b, F=0x0, S=1, 8
-0, 152, 153, 1, 24, 0x4ff8066b, F=0x0, S=1, 8
-0, 153, 154, 1, 24, 0x54b806ab, F=0x0, S=1, 8
-0, 154, 155, 1, 24, 0x597806eb, F=0x0, S=1, 8
-0, 155, 156, 1, 24, 0x4b4c062c, F=0x0, S=1, 8
-0, 156, 157, 1, 24, 0x500c066c, F=0x0, S=1, 8
-0, 157, 158, 1, 24, 0x54cc06ac, F=0x0, S=1, 8
-0, 158, 159, 1, 24, 0x598c06ec, F=0x0, S=1, 8
-0, 159, 160, 1, 24, 0x4b60062d, F=0x0, S=1, 8
-0, 160, 161, 1, 24, 0x5020066d, F=0x0, S=1, 8
-0, 161, 162, 1, 24, 0x54e006ad, F=0x0, S=1, 8
-0, 162, 163, 1, 24, 0x59a006ed, F=0x0, S=1, 8
-0, 163, 164, 1, 24, 0x4b74062e, F=0x0, S=1, 8
-0, 164, 165, 1, 24, 0x5034066e, F=0x0, S=1, 8
-0, 165, 166, 1, 24, 0x54f406ae, F=0x0, S=1, 8
-0, 166, 167, 1, 24, 0x59b406ee, F=0x0, S=1, 8
-0, 167, 168, 1, 24, 0x4b88062f, F=0x0, S=1, 8
-0, 168, 169, 1, 24, 0x5048066f, F=0x0, S=1, 8
-0, 169, 170, 1, 24, 0x550806af, F=0x0, S=1, 8
-0, 170, 171, 1, 24, 0x59c806ef, F=0x0, S=1, 8
-0, 171, 172, 1, 24, 0x4b9c0630, F=0x0, S=1, 8
-0, 172, 173, 1, 24, 0x505c0670, F=0x0, S=1, 8
-0, 173, 174, 1, 24, 0x551c06b0, F=0x0, S=1, 8
-0, 174, 175, 1, 24, 0x59dc06f0, F=0x0, S=1, 8
-0, 175, 176, 1, 24, 0x4bb00631, F=0x0, S=1, 8
-0, 176, 177, 1, 24, 0x50700671, F=0x0, S=1, 8
-0, 177, 178, 1, 24, 0x553006b1, F=0x0, S=1, 8
-0, 178, 179, 1, 24, 0x59f006f1, F=0x0, S=1, 8
-0, 179, 180, 1, 24, 0x4bc40632, F=0x0, S=1, 8
-0, 180, 181, 1, 24, 0x50840672, F=0x0, S=1, 8
-0, 181, 182, 1, 24, 0x554406b2, F=0x0, S=1, 8
-0, 182, 183, 1, 24, 0x5a0406f2, F=0x0, S=1, 8
-0, 183, 184, 1, 24, 0x4bd80633, F=0x0, S=1, 8
-0, 184, 185, 1, 24, 0x50980673, F=0x0, S=1, 8
-0, 185, 186, 1, 24, 0x555806b3, F=0x0, S=1, 8
-0, 186, 187, 1, 24, 0x5a1806f3, F=0x0, S=1, 8
-0, 187, 188, 1, 24, 0x4bec0634, F=0x0, S=1, 8
-0, 188, 189, 1, 24, 0x50ac0674, F=0x0, S=1, 8
-0, 189, 190, 1, 24, 0x556c06b4, F=0x0, S=1, 8
-0, 190, 191, 1, 24, 0x5a2c06f4, F=0x0, S=1, 8
-0, 191, 192, 1, 24, 0x4c000635, F=0x0, S=1, 8
-0, 192, 193, 1, 24, 0x50c00675, F=0x0, S=1, 8
-0, 193, 194, 1, 24, 0x558006b5, F=0x0, S=1, 8
-0, 194, 195, 1, 24, 0x5a4006f5, F=0x0, S=1, 8
-0, 195, 196, 1, 24, 0x4c140636, F=0x0, S=1, 8
-0, 196, 197, 1, 24, 0x50d40676, F=0x0, S=1, 8
-0, 197, 198, 1, 24, 0x559406b6, F=0x0, S=1, 8
-0, 198, 199, 1, 24, 0x5a5406f6, F=0x0, S=1, 8
-0, 199, 200, 1, 24, 0x4c280637, F=0x0, S=1, 8
-0, 200, 201, 1, 24, 0x50e80677, F=0x0, S=1, 8
-0, 201, 202, 1, 24, 0x55a806b7, F=0x0, S=1, 8
-0, 202, 203, 1, 24, 0x5a6806f7, F=0x0, S=1, 8
-0, 203, 204, 1, 24, 0x4c3c0638, F=0x0, S=1, 8
-0, 204, 205, 1, 24, 0x50fc0678, F=0x0, S=1, 8
-0, 205, 206, 1, 24, 0x55bc06b8, F=0x0, S=1, 8
-0, 206, 207, 1, 24, 0x5a7c06f8, F=0x0, S=1, 8
-0, 207, 208, 1, 24, 0x4c500639, F=0x0, S=1, 8
-0, 208, 209, 1, 24, 0x51100679, F=0x0, S=1, 8
-0, 209, 210, 1, 24, 0x55d006b9, F=0x0, S=1, 8
-0, 210, 211, 1, 24, 0x5a9006f9, F=0x0, S=1, 8
-0, 211, 212, 1, 24, 0x4c64063a, F=0x0, S=1, 8
-0, 212, 213, 1, 24, 0x5124067a, F=0x0, S=1, 8
-0, 213, 214, 1, 24, 0x55e406ba, F=0x0, S=1, 8
-0, 214, 215, 1, 24, 0x5aa406fa, F=0x0, S=1, 8
-0, 215, 216, 1, 24, 0x4c78063b, F=0x0, S=1, 8
-0, 216, 217, 1, 24, 0x5138067b, F=0x0, S=1, 8
-0, 217, 218, 1, 24, 0x55f806bb, F=0x0, S=1, 8
-0, 218, 219, 1, 24, 0x5ab806fb, F=0x0, S=1, 8
-0, 219, 220, 1, 24, 0x4c8c063c, F=0x0, S=1, 8
-0, 220, 221, 1, 24, 0x514c067c, F=0x0, S=1, 8
-0, 221, 222, 1, 24, 0x560c06bc, F=0x0, S=1, 8
-0, 222, 223, 1, 24, 0x5acc06fc, F=0x0, S=1, 8
-0, 223, 224, 1, 24, 0x4ca0063d, F=0x0, S=1, 8
-0, 224, 225, 1, 24, 0x5160067d, F=0x0, S=1, 8
-0, 225, 226, 1, 24, 0x562006bd, F=0x0, S=1, 8
-0, 226, 227, 1, 24, 0x5ae006fd, F=0x0, S=1, 8
-0, 227, 228, 1, 24, 0x4cb4063e, F=0x0, S=1, 8
-0, 228, 229, 1, 24, 0x5174067e, F=0x0, S=1, 8
-0, 229, 230, 1, 24, 0x563406be, F=0x0, S=1, 8
-0, 230, 231, 1, 24, 0x5af406fe, F=0x0, S=1, 8
-0, 231, 232, 1, 24, 0x4cc8063f, F=0x0, S=1, 8
-0, 232, 233, 1, 24, 0x5188067f, F=0x0, S=1, 8
-0, 233, 234, 1, 24, 0x564806bf, F=0x0, S=1, 8
-0, 234, 235, 1, 24, 0x5b0806ff, F=0x0, S=1, 8
-0, 235, 236, 1, 24, 0x4cdc0640, F=0x0, S=1, 8
-0, 236, 237, 1, 24, 0x519c0680, F=0x0, S=1, 8
-0, 237, 238, 1, 24, 0x565c06c0, F=0x0, S=1, 8
-0, 238, 239, 1, 24, 0x5b1c0700, F=0x0, S=1, 8
-0, 239, 240, 1, 24, 0x4cf00641, F=0x0, S=1, 8
-0, 240, 241, 1, 24, 0x51b00681, F=0x0, S=1, 8
-0, 241, 242, 1, 24, 0x567006c1, F=0x0, S=1, 8
-0, 242, 243, 1, 24, 0x5b300701, F=0x0, S=1, 8
-0, 243, 244, 1, 24, 0x4d040642, F=0x0, S=1, 8
-0, 244, 245, 1, 24, 0x51c40682, F=0x0, S=1, 8
-0, 245, 246, 1, 24, 0x568406c2, F=0x0, S=1, 8
-0, 246, 247, 1, 24, 0x5b440702, F=0x0, S=1, 8
-0, 247, 248, 1, 24, 0x4d180643, F=0x0, S=1, 8
-0, 248, 249, 1, 24, 0x51d80683, F=0x0, S=1, 8
-0, 249, 250, 1, 24, 0x569806c3, F=0x0, S=1, 8
-0, 250, 251, 1, 24, 0x5b580703, F=0x0, S=1, 8
-0, 251, 252, 1, 24, 0x4d2c0644, F=0x0, S=1, 8
-0, 252, 253, 1, 24, 0x51ec0684, F=0x0, S=1, 8
-0, 253, 254, 1, 24, 0x56ac06c4, F=0x0, S=1, 8
-0, 254, 255, 1, 24, 0x5b6c0704, F=0x0, S=1, 8
-0, 255, 256, 1, 24, 0x4d400645, F=0x0, S=1, 8
-0, 256, 257, 1, 24, 0x52000685, F=0x0, S=1, 8
-0, 257, 258, 1, 24, 0x56c006c5, F=0x0, S=1, 8
-0, 258, 259, 1, 24, 0x5b800705, F=0x0, S=1, 8
-0, 259, 260, 1, 24, 0x4d540646, F=0x0, S=1, 8
-0, 260, 261, 1, 24, 0x52140686, F=0x0, S=1, 8
-0, 261, 262, 1, 24, 0x56d406c6, F=0x0, S=1, 8
-0, 262, 263, 1, 24, 0x5b940706, F=0x0, S=1, 8
-0, 263, 264, 1, 24, 0x4d680647, F=0x0, S=1, 8
-0, 264, 265, 1, 24, 0x52280687, F=0x0, S=1, 8
-0, 265, 266, 1, 24, 0x56e806c7, F=0x0, S=1, 8
-0, 266, 267, 1, 24, 0x5ba80707, F=0x0, S=1, 8
-0, 267, 268, 1, 24, 0x4d7c0648, F=0x0, S=1, 8
-0, 268, 269, 1, 24, 0x523c0688, F=0x0, S=1, 8
-0, 269, 270, 1, 24, 0x56fc06c8, F=0x0, S=1, 8
-0, 270, 271, 1, 24, 0x5bbc0708, F=0x0, S=1, 8
-0, 271, 272, 1, 24, 0x4d900649, F=0x0, S=1, 8
-0, 272, 273, 1, 24, 0x52500689, F=0x0, S=1, 8
-0, 273, 274, 1, 24, 0x571006c9, F=0x0, S=1, 8
-0, 274, 275, 1, 24, 0x5bd00709, F=0x0, S=1, 8
-0, 275, 276, 1, 24, 0x4da4064a, F=0x0, S=1, 8
-0, 276, 277, 1, 24, 0x5264068a, F=0x0, S=1, 8
-0, 277, 278, 1, 24, 0x572406ca, F=0x0, S=1, 8
-0, 278, 279, 1, 24, 0x5be4070a, F=0x0, S=1, 8
-0, 279, 280, 1, 24, 0x4db8064b, F=0x0, S=1, 8
-0, 280, 281, 1, 24, 0x5278068b, F=0x0, S=1, 8
-0, 281, 282, 1, 24, 0x573806cb, F=0x0, S=1, 8
-0, 282, 283, 1, 24, 0x5bf8070b, F=0x0, S=1, 8
-0, 283, 284, 1, 24, 0x4dcc064c, F=0x0, S=1, 8
-0, 284, 285, 1, 24, 0x528c068c, F=0x0, S=1, 8
-0, 285, 286, 1, 24, 0x574c06cc, F=0x0, S=1, 8
-0, 286, 287, 1, 24, 0x5c0c070c, F=0x0, S=1, 8
-0, 287, 288, 1, 24, 0x4de0064d, F=0x0, S=1, 8
-0, 288, 289, 1, 24, 0x52a0068d, F=0x0, S=1, 8
-0, 289, 290, 1, 24, 0x576006cd, F=0x0, S=1, 8
-0, 290, 291, 1, 24, 0x5c20070d, F=0x0, S=1, 8
-0, 291, 292, 1, 24, 0x4df4064e, F=0x0, S=1, 8
-0, 292, 293, 1, 24, 0x52b4068e, F=0x0, S=1, 8
-0, 293, 294, 1, 24, 0x577406ce, F=0x0, S=1, 8
-0, 294, 295, 1, 24, 0x5c34070e, F=0x0, S=1, 8
-0, 295, 296, 1, 24, 0x4e08064f, F=0x0, S=1, 8
-0, 296, 297, 1, 24, 0x52c8068f, F=0x0, S=1, 8
-0, 297, 298, 1, 24, 0x578806cf, F=0x0, S=1, 8
-0, 298, 299, 1, 24, 0x5c48070f, F=0x0, S=1, 8
-0, 299, 300, 1, 24, 0x4e1c0650, F=0x0, S=1, 8
-0, 300, 301, 1, 24, 0x52dc0690, F=0x0, S=1, 8
-0, 301, 302, 1, 24, 0x579c06d0, F=0x0, S=1, 8
-0, 302, 303, 1, 24, 0x5c5c0710, F=0x0, S=1, 8
-0, 303, 304, 1, 24, 0x4e300651, F=0x0, S=1, 8
-0, 304, 305, 1, 24, 0x52f00691, F=0x0, S=1, 8
-0, 305, 306, 1, 24, 0x57b006d1, F=0x0, S=1, 8
-0, 306, 307, 1, 24, 0x5c700711, F=0x0, S=1, 8
-0, 307, 308, 1, 24, 0x4e440652, F=0x0, S=1, 8
-0, 308, 309, 1, 24, 0x53040692, F=0x0, S=1, 8
-0, 309, 310, 1, 24, 0x57c406d2, F=0x0, S=1, 8
-0, 310, 311, 1, 24, 0x5c840712, F=0x0, S=1, 8
-0, 311, 312, 1, 24, 0x4e580653, F=0x0, S=1, 8
-0, 312, 313, 1, 24, 0x53180693, F=0x0, S=1, 8
-0, 313, 314, 1, 24, 0x57d806d3, F=0x0, S=1, 8
-0, 314, 315, 1, 24, 0x5c980713, F=0x0, S=1, 8
-0, 315, 316, 1, 24, 0x4e6c0654, F=0x0, S=1, 8
-0, 316, 317, 1, 24, 0x532c0694, F=0x0, S=1, 8
-0, 317, 318, 1, 24, 0x57ec06d4, F=0x0, S=1, 8
-0, 318, 319, 1, 24, 0x5cac0714, F=0x0, S=1, 8
-0, 319, 320, 1, 24, 0x4e800655, F=0x0, S=1, 8
-0, 320, 321, 1, 24, 0x53400695, F=0x0, S=1, 8
-0, 321, 322, 1, 24, 0x580006d5, F=0x0, S=1, 8
-0, 322, 323, 1, 24, 0x5cc00715, F=0x0, S=1, 8
-0, 323, 324, 1, 24, 0x4e940656, F=0x0, S=1, 8
-0, 324, 325, 1, 24, 0x53540696, F=0x0, S=1, 8
-0, 325, 326, 1, 24, 0x581406d6, F=0x0, S=1, 8
-0, 326, 327, 1, 24, 0x5cd40716, F=0x0, S=1, 8
-0, 327, 328, 1, 24, 0x4ea80657, F=0x0, S=1, 8
-0, 328, 329, 1, 24, 0x53680697, F=0x0, S=1, 8
-0, 329, 330, 1, 24, 0x582806d7, F=0x0, S=1, 8
-0, 330, 331, 1, 24, 0x5ce80717, F=0x0, S=1, 8
-0, 331, 332, 1, 24, 0x4ebc0658, F=0x0, S=1, 8
-0, 332, 333, 1, 24, 0x537c0698, F=0x0, S=1, 8
-0, 333, 334, 1, 24, 0x583c06d8, F=0x0, S=1, 8
-0, 334, 335, 1, 24, 0x5cfc0718, F=0x0, S=1, 8
-0, 335, 336, 1, 24, 0x4ed00659, F=0x0, S=1, 8
-0, 336, 337, 1, 57, 0x899c0f1e, S=1, 8
-0, 337, 338, 1, 24, 0x4f1c0660, F=0x0, S=1, 8
-0, 338, 339, 1, 24, 0x53dc06a0, F=0x0, S=1, 8
-0, 339, 340, 1, 24, 0x589c06e0, F=0x0, S=1, 8
-0, 340, 341, 1, 24, 0x4a700621, F=0x0, S=1, 8
-0, 341, 342, 1, 24, 0x4f300661, F=0x0, S=1, 8
-0, 342, 343, 1, 24, 0x53f006a1, F=0x0, S=1, 8
-0, 343, 344, 1, 24, 0x58b006e1, F=0x0, S=1, 8
-0, 344, 345, 1, 24, 0x4a840622, F=0x0, S=1, 8
-0, 345, 346, 1, 24, 0x4f440662, F=0x0, S=1, 8
-0, 346, 347, 1, 24, 0x540406a2, F=0x0, S=1, 8
-0, 347, 348, 1, 24, 0x58c406e2, F=0x0, S=1, 8
-0, 348, 349, 1, 24, 0x4a980623, F=0x0, S=1, 8
-0, 349, 350, 1, 24, 0x4f580663, F=0x0, S=1, 8
-0, 350, 351, 1, 24, 0x541806a3, F=0x0, S=1, 8
-0, 351, 352, 1, 24, 0x58d806e3, F=0x0, S=1, 8
-0, 352, 353, 1, 24, 0x4aac0624, F=0x0, S=1, 8
-0, 353, 354, 1, 24, 0x4f6c0664, F=0x0, S=1, 8
-0, 354, 355, 1, 24, 0x542c06a4, F=0x0, S=1, 8
-0, 355, 356, 1, 24, 0x58ec06e4, F=0x0, S=1, 8
-0, 356, 357, 1, 24, 0x4ac00625, F=0x0, S=1, 8
-0, 357, 358, 1, 24, 0x4f800665, F=0x0, S=1, 8
-0, 358, 359, 1, 24, 0x544006a5, F=0x0, S=1, 8
-0, 359, 360, 1, 24, 0x590006e5, F=0x0, S=1, 8
-0, 360, 361, 1, 24, 0x4ad40626, F=0x0, S=1, 8
-0, 361, 362, 1, 24, 0x4f940666, F=0x0, S=1, 8
-0, 362, 363, 1, 24, 0x545406a6, F=0x0, S=1, 8
-0, 363, 364, 1, 24, 0x591406e6, F=0x0, S=1, 8
-0, 364, 365, 1, 24, 0x4ae80627, F=0x0, S=1, 8
-0, 365, 366, 1, 24, 0x4fa80667, F=0x0, S=1, 8
-0, 366, 367, 1, 24, 0x546806a7, F=0x0, S=1, 8
-0, 367, 368, 1, 24, 0x592806e7, F=0x0, S=1, 8
-0, 368, 369, 1, 57, 0x9b930fc1, S=1, 8
-0, 369, 370, 1, 24, 0x4f1c0660, F=0x0, S=1, 8
-0, 370, 371, 1, 24, 0x53dc06a0, F=0x0, S=1, 8
-0, 371, 372, 1, 24, 0x589c06e0, F=0x0, S=1, 8
-0, 372, 373, 1, 24, 0x4a700621, F=0x0, S=1, 8
-0, 373, 374, 1, 24, 0x4f300661, F=0x0, S=1, 8
-0, 374, 375, 1, 24, 0x53f006a1, F=0x0, S=1, 8
-0, 375, 376, 1, 24, 0x58b006e1, F=0x0, S=1, 8
-0, 376, 377, 1, 24, 0x4a840622, F=0x0, S=1, 8
-0, 377, 378, 1, 24, 0x4f440662, F=0x0, S=1, 8
-0, 378, 379, 1, 24, 0x540406a2, F=0x0, S=1, 8
-0, 379, 380, 1, 24, 0x58c406e2, F=0x0, S=1, 8
-0, 380, 381, 1, 24, 0x4a980623, F=0x0, S=1, 8
-0, 381, 382, 1, 24, 0x4f580663, F=0x0, S=1, 8
-0, 382, 383, 1, 24, 0x541806a3, F=0x0, S=1, 8
-0, 383, 384, 1, 24, 0x58d806e3, F=0x0, S=1, 8
-0, 384, 385, 1, 24, 0x4aac0624, F=0x0, S=1, 8
-0, 385, 386, 1, 24, 0x4f6c0664, F=0x0, S=1, 8
-0, 386, 387, 1, 24, 0x542c06a4, F=0x0, S=1, 8
-0, 387, 388, 1, 24, 0x58ec06e4, F=0x0, S=1, 8
-0, 388, 389, 1, 24, 0x4ac00625, F=0x0, S=1, 8
-0, 389, 390, 1, 24, 0x4f800665, F=0x0, S=1, 8
-0, 390, 391, 1, 24, 0x544006a5, F=0x0, S=1, 8
+0, -1, 0, 1, 57, 0x7db00eb7, S=1, 8, 0x05ec00be
+0, 0, 1, 1, 24, 0x4f1c0660, F=0x0, S=1, 8, 0x076800ee
+0, 1, 2, 1, 24, 0x53dc06a0, F=0x0, S=1, 8, 0x076800ee
+0, 2, 3, 1, 24, 0x589c06e0, F=0x0, S=1, 8, 0x076800ee
+0, 3, 4, 1, 24, 0x4a700621, F=0x0, S=1, 8, 0x076800ee
+0, 4, 5, 1, 24, 0x4f300661, F=0x0, S=1, 8, 0x076800ee
+0, 5, 6, 1, 24, 0x53f006a1, F=0x0, S=1, 8, 0x076800ee
+0, 6, 7, 1, 24, 0x58b006e1, F=0x0, S=1, 8, 0x076800ee
+0, 7, 8, 1, 24, 0x4a840622, F=0x0, S=1, 8, 0x076800ee
+0, 8, 9, 1, 24, 0x4f440662, F=0x0, S=1, 8, 0x076800ee
+0, 9, 10, 1, 24, 0x540406a2, F=0x0, S=1, 8, 0x076800ee
+0, 10, 11, 1, 24, 0x58c406e2, F=0x0, S=1, 8, 0x076800ee
+0, 11, 12, 1, 24, 0x4a980623, F=0x0, S=1, 8, 0x076800ee
+0, 12, 13, 1, 24, 0x4f580663, F=0x0, S=1, 8, 0x076800ee
+0, 13, 14, 1, 24, 0x541806a3, F=0x0, S=1, 8, 0x076800ee
+0, 14, 15, 1, 24, 0x58d806e3, F=0x0, S=1, 8, 0x076800ee
+0, 15, 16, 1, 24, 0x4aac0624, F=0x0, S=1, 8, 0x076800ee
+0, 16, 17, 1, 24, 0x4f6c0664, F=0x0, S=1, 8, 0x076800ee
+0, 17, 18, 1, 24, 0x542c06a4, F=0x0, S=1, 8, 0x076800ee
+0, 18, 19, 1, 24, 0x58ec06e4, F=0x0, S=1, 8, 0x076800ee
+0, 19, 20, 1, 24, 0x4ac00625, F=0x0, S=1, 8, 0x076800ee
+0, 20, 21, 1, 24, 0x4f800665, F=0x0, S=1, 8, 0x076800ee
+0, 21, 22, 1, 24, 0x544006a5, F=0x0, S=1, 8, 0x076800ee
+0, 22, 23, 1, 24, 0x590006e5, F=0x0, S=1, 8, 0x076800ee
+0, 23, 24, 1, 24, 0x4ad40626, F=0x0, S=1, 8, 0x076800ee
+0, 24, 25, 1, 24, 0x4f940666, F=0x0, S=1, 8, 0x076800ee
+0, 25, 26, 1, 24, 0x545406a6, F=0x0, S=1, 8, 0x076800ee
+0, 26, 27, 1, 24, 0x591406e6, F=0x0, S=1, 8, 0x076800ee
+0, 27, 28, 1, 24, 0x4ae80627, F=0x0, S=1, 8, 0x076800ee
+0, 28, 29, 1, 24, 0x4fa80667, F=0x0, S=1, 8, 0x076800ee
+0, 29, 30, 1, 24, 0x546806a7, F=0x0, S=1, 8, 0x076800ee
+0, 30, 31, 1, 24, 0x592806e7, F=0x0, S=1, 8, 0x076800ee
+0, 31, 32, 1, 24, 0x4afc0628, F=0x0, S=1, 8, 0x076800ee
+0, 32, 33, 1, 24, 0x4fbc0668, F=0x0, S=1, 8, 0x076800ee
+0, 33, 34, 1, 24, 0x547c06a8, F=0x0, S=1, 8, 0x076800ee
+0, 34, 35, 1, 24, 0x593c06e8, F=0x0, S=1, 8, 0x076800ee
+0, 35, 36, 1, 24, 0x4b100629, F=0x0, S=1, 8, 0x076800ee
+0, 36, 37, 1, 24, 0x4fd00669, F=0x0, S=1, 8, 0x076800ee
+0, 37, 38, 1, 24, 0x549006a9, F=0x0, S=1, 8, 0x076800ee
+0, 38, 39, 1, 24, 0x595006e9, F=0x0, S=1, 8, 0x076800ee
+0, 39, 40, 1, 24, 0x4b24062a, F=0x0, S=1, 8, 0x076800ee
+0, 40, 41, 1, 24, 0x4fe4066a, F=0x0, S=1, 8, 0x076800ee
+0, 41, 42, 1, 24, 0x54a406aa, F=0x0, S=1, 8, 0x076800ee
+0, 42, 43, 1, 24, 0x596406ea, F=0x0, S=1, 8, 0x076800ee
+0, 43, 44, 1, 24, 0x4b38062b, F=0x0, S=1, 8, 0x076800ee
+0, 44, 45, 1, 24, 0x4ff8066b, F=0x0, S=1, 8, 0x076800ee
+0, 45, 46, 1, 24, 0x54b806ab, F=0x0, S=1, 8, 0x076800ee
+0, 46, 47, 1, 24, 0x597806eb, F=0x0, S=1, 8, 0x076800ee
+0, 47, 48, 1, 24, 0x4b4c062c, F=0x0, S=1, 8, 0x076800ee
+0, 48, 49, 1, 24, 0x500c066c, F=0x0, S=1, 8, 0x076800ee
+0, 49, 50, 1, 24, 0x54cc06ac, F=0x0, S=1, 8, 0x076800ee
+0, 50, 51, 1, 24, 0x598c06ec, F=0x0, S=1, 8, 0x076800ee
+0, 51, 52, 1, 24, 0x4b60062d, F=0x0, S=1, 8, 0x076800ee
+0, 52, 53, 1, 24, 0x5020066d, F=0x0, S=1, 8, 0x076800ee
+0, 53, 54, 1, 24, 0x54e006ad, F=0x0, S=1, 8, 0x076800ee
+0, 54, 55, 1, 24, 0x59a006ed, F=0x0, S=1, 8, 0x076800ee
+0, 55, 56, 1, 24, 0x4b74062e, F=0x0, S=1, 8, 0x076800ee
+0, 56, 57, 1, 24, 0x5034066e, F=0x0, S=1, 8, 0x076800ee
+0, 57, 58, 1, 24, 0x54f406ae, F=0x0, S=1, 8, 0x076800ee
+0, 58, 59, 1, 24, 0x59b406ee, F=0x0, S=1, 8, 0x076800ee
+0, 59, 60, 1, 24, 0x4b88062f, F=0x0, S=1, 8, 0x076800ee
+0, 60, 61, 1, 24, 0x5048066f, F=0x0, S=1, 8, 0x076800ee
+0, 61, 62, 1, 24, 0x550806af, F=0x0, S=1, 8, 0x076800ee
+0, 62, 63, 1, 24, 0x59c806ef, F=0x0, S=1, 8, 0x076800ee
+0, 63, 64, 1, 24, 0x4b9c0630, F=0x0, S=1, 8, 0x076800ee
+0, 64, 65, 1, 24, 0x505c0670, F=0x0, S=1, 8, 0x076800ee
+0, 65, 66, 1, 24, 0x551c06b0, F=0x0, S=1, 8, 0x076800ee
+0, 66, 67, 1, 24, 0x59dc06f0, F=0x0, S=1, 8, 0x076800ee
+0, 67, 68, 1, 24, 0x4bb00631, F=0x0, S=1, 8, 0x076800ee
+0, 68, 69, 1, 24, 0x50700671, F=0x0, S=1, 8, 0x076800ee
+0, 69, 70, 1, 24, 0x553006b1, F=0x0, S=1, 8, 0x076800ee
+0, 70, 71, 1, 24, 0x59f006f1, F=0x0, S=1, 8, 0x076800ee
+0, 71, 72, 1, 24, 0x4bc40632, F=0x0, S=1, 8, 0x076800ee
+0, 72, 73, 1, 24, 0x50840672, F=0x0, S=1, 8, 0x076800ee
+0, 73, 74, 1, 24, 0x554406b2, F=0x0, S=1, 8, 0x076800ee
+0, 74, 75, 1, 24, 0x5a0406f2, F=0x0, S=1, 8, 0x076800ee
+0, 75, 76, 1, 24, 0x4bd80633, F=0x0, S=1, 8, 0x076800ee
+0, 76, 77, 1, 24, 0x50980673, F=0x0, S=1, 8, 0x076800ee
+0, 77, 78, 1, 24, 0x555806b3, F=0x0, S=1, 8, 0x076800ee
+0, 78, 79, 1, 24, 0x5a1806f3, F=0x0, S=1, 8, 0x076800ee
+0, 79, 80, 1, 24, 0x4bec0634, F=0x0, S=1, 8, 0x076800ee
+0, 80, 81, 1, 24, 0x50ac0674, F=0x0, S=1, 8, 0x076800ee
+0, 81, 82, 1, 24, 0x556c06b4, F=0x0, S=1, 8, 0x076800ee
+0, 82, 83, 1, 24, 0x5a2c06f4, F=0x0, S=1, 8, 0x076800ee
+0, 83, 84, 1, 24, 0x4c000635, F=0x0, S=1, 8, 0x076800ee
+0, 84, 85, 1, 24, 0x50c00675, F=0x0, S=1, 8, 0x076800ee
+0, 85, 86, 1, 24, 0x558006b5, F=0x0, S=1, 8, 0x076800ee
+0, 86, 87, 1, 24, 0x5a4006f5, F=0x0, S=1, 8, 0x076800ee
+0, 87, 88, 1, 24, 0x4c140636, F=0x0, S=1, 8, 0x076800ee
+0, 88, 89, 1, 24, 0x50d40676, F=0x0, S=1, 8, 0x076800ee
+0, 89, 90, 1, 24, 0x559406b6, F=0x0, S=1, 8, 0x076800ee
+0, 90, 91, 1, 24, 0x5a5406f6, F=0x0, S=1, 8, 0x076800ee
+0, 91, 92, 1, 24, 0x4c280637, F=0x0, S=1, 8, 0x076800ee
+0, 92, 93, 1, 24, 0x50e80677, F=0x0, S=1, 8, 0x076800ee
+0, 93, 94, 1, 24, 0x55a806b7, F=0x0, S=1, 8, 0x076800ee
+0, 94, 95, 1, 24, 0x5a6806f7, F=0x0, S=1, 8, 0x076800ee
+0, 95, 96, 1, 24, 0x4c3c0638, F=0x0, S=1, 8, 0x076800ee
+0, 96, 97, 1, 24, 0x50fc0678, F=0x0, S=1, 8, 0x076800ee
+0, 97, 98, 1, 24, 0x55bc06b8, F=0x0, S=1, 8, 0x076800ee
+0, 98, 99, 1, 24, 0x5a7c06f8, F=0x0, S=1, 8, 0x076800ee
+0, 99, 100, 1, 24, 0x4c500639, F=0x0, S=1, 8, 0x076800ee
+0, 100, 101, 1, 24, 0x51100679, F=0x0, S=1, 8, 0x076800ee
+0, 101, 102, 1, 24, 0x55d006b9, F=0x0, S=1, 8, 0x076800ee
+0, 102, 103, 1, 24, 0x5a9006f9, F=0x0, S=1, 8, 0x076800ee
+0, 103, 104, 1, 24, 0x4c64063a, F=0x0, S=1, 8, 0x076800ee
+0, 104, 105, 1, 24, 0x5124067a, F=0x0, S=1, 8, 0x076800ee
+0, 105, 106, 1, 24, 0x55e406ba, F=0x0, S=1, 8, 0x076800ee
+0, 106, 107, 1, 24, 0x5aa406fa, F=0x0, S=1, 8, 0x076800ee
+0, 107, 108, 1, 57, 0x85a40efb, S=1, 8, 0x05ec00be
+0, 108, 109, 1, 24, 0x4f1c0660, F=0x0, S=1, 8, 0x076800ee
+0, 109, 110, 1, 24, 0x53dc06a0, F=0x0, S=1, 8, 0x076800ee
+0, 110, 111, 1, 24, 0x589c06e0, F=0x0, S=1, 8, 0x076800ee
+0, 111, 112, 1, 24, 0x4a700621, F=0x0, S=1, 8, 0x076800ee
+0, 112, 113, 1, 24, 0x4f300661, F=0x0, S=1, 8, 0x076800ee
+0, 113, 114, 1, 24, 0x53f006a1, F=0x0, S=1, 8, 0x076800ee
+0, 114, 115, 1, 24, 0x58b006e1, F=0x0, S=1, 8, 0x076800ee
+0, 115, 116, 1, 24, 0x4a840622, F=0x0, S=1, 8, 0x076800ee
+0, 116, 117, 1, 24, 0x4f440662, F=0x0, S=1, 8, 0x076800ee
+0, 117, 118, 1, 24, 0x540406a2, F=0x0, S=1, 8, 0x076800ee
+0, 118, 119, 1, 24, 0x58c406e2, F=0x0, S=1, 8, 0x076800ee
+0, 119, 120, 1, 24, 0x4a980623, F=0x0, S=1, 8, 0x076800ee
+0, 120, 121, 1, 24, 0x4f580663, F=0x0, S=1, 8, 0x076800ee
+0, 121, 122, 1, 24, 0x541806a3, F=0x0, S=1, 8, 0x076800ee
+0, 122, 123, 1, 24, 0x58d806e3, F=0x0, S=1, 8, 0x076800ee
+0, 123, 124, 1, 24, 0x4aac0624, F=0x0, S=1, 8, 0x076800ee
+0, 124, 125, 1, 24, 0x4f6c0664, F=0x0, S=1, 8, 0x076800ee
+0, 125, 126, 1, 24, 0x542c06a4, F=0x0, S=1, 8, 0x076800ee
+0, 126, 127, 1, 24, 0x58ec06e4, F=0x0, S=1, 8, 0x076800ee
+0, 127, 128, 1, 24, 0x4ac00625, F=0x0, S=1, 8, 0x076800ee
+0, 128, 129, 1, 24, 0x4f800665, F=0x0, S=1, 8, 0x076800ee
+0, 129, 130, 1, 24, 0x544006a5, F=0x0, S=1, 8, 0x076800ee
+0, 130, 131, 1, 24, 0x590006e5, F=0x0, S=1, 8, 0x076800ee
+0, 131, 132, 1, 24, 0x4ad40626, F=0x0, S=1, 8, 0x076800ee
+0, 132, 133, 1, 24, 0x4f940666, F=0x0, S=1, 8, 0x076800ee
+0, 133, 134, 1, 24, 0x545406a6, F=0x0, S=1, 8, 0x076800ee
+0, 134, 135, 1, 24, 0x591406e6, F=0x0, S=1, 8, 0x076800ee
+0, 135, 136, 1, 24, 0x4ae80627, F=0x0, S=1, 8, 0x076800ee
+0, 136, 137, 1, 24, 0x4fa80667, F=0x0, S=1, 8, 0x076800ee
+0, 137, 138, 1, 24, 0x546806a7, F=0x0, S=1, 8, 0x076800ee
+0, 138, 139, 1, 24, 0x592806e7, F=0x0, S=1, 8, 0x076800ee
+0, 139, 140, 1, 24, 0x4afc0628, F=0x0, S=1, 8, 0x076800ee
+0, 140, 141, 1, 24, 0x4fbc0668, F=0x0, S=1, 8, 0x076800ee
+0, 141, 142, 1, 24, 0x547c06a8, F=0x0, S=1, 8, 0x076800ee
+0, 142, 143, 1, 24, 0x593c06e8, F=0x0, S=1, 8, 0x076800ee
+0, 143, 144, 1, 24, 0x4b100629, F=0x0, S=1, 8, 0x076800ee
+0, 144, 145, 1, 24, 0x4fd00669, F=0x0, S=1, 8, 0x076800ee
+0, 145, 146, 1, 24, 0x549006a9, F=0x0, S=1, 8, 0x076800ee
+0, 146, 147, 1, 24, 0x595006e9, F=0x0, S=1, 8, 0x076800ee
+0, 147, 148, 1, 24, 0x4b24062a, F=0x0, S=1, 8, 0x076800ee
+0, 148, 149, 1, 24, 0x4fe4066a, F=0x0, S=1, 8, 0x076800ee
+0, 149, 150, 1, 24, 0x54a406aa, F=0x0, S=1, 8, 0x076800ee
+0, 150, 151, 1, 24, 0x596406ea, F=0x0, S=1, 8, 0x076800ee
+0, 151, 152, 1, 24, 0x4b38062b, F=0x0, S=1, 8, 0x076800ee
+0, 152, 153, 1, 24, 0x4ff8066b, F=0x0, S=1, 8, 0x076800ee
+0, 153, 154, 1, 24, 0x54b806ab, F=0x0, S=1, 8, 0x076800ee
+0, 154, 155, 1, 24, 0x597806eb, F=0x0, S=1, 8, 0x076800ee
+0, 155, 156, 1, 24, 0x4b4c062c, F=0x0, S=1, 8, 0x076800ee
+0, 156, 157, 1, 24, 0x500c066c, F=0x0, S=1, 8, 0x076800ee
+0, 157, 158, 1, 24, 0x54cc06ac, F=0x0, S=1, 8, 0x076800ee
+0, 158, 159, 1, 24, 0x598c06ec, F=0x0, S=1, 8, 0x076800ee
+0, 159, 160, 1, 24, 0x4b60062d, F=0x0, S=1, 8, 0x076800ee
+0, 160, 161, 1, 24, 0x5020066d, F=0x0, S=1, 8, 0x076800ee
+0, 161, 162, 1, 24, 0x54e006ad, F=0x0, S=1, 8, 0x076800ee
+0, 162, 163, 1, 24, 0x59a006ed, F=0x0, S=1, 8, 0x076800ee
+0, 163, 164, 1, 24, 0x4b74062e, F=0x0, S=1, 8, 0x076800ee
+0, 164, 165, 1, 24, 0x5034066e, F=0x0, S=1, 8, 0x076800ee
+0, 165, 166, 1, 24, 0x54f406ae, F=0x0, S=1, 8, 0x076800ee
+0, 166, 167, 1, 24, 0x59b406ee, F=0x0, S=1, 8, 0x076800ee
+0, 167, 168, 1, 24, 0x4b88062f, F=0x0, S=1, 8, 0x076800ee
+0, 168, 169, 1, 24, 0x5048066f, F=0x0, S=1, 8, 0x076800ee
+0, 169, 170, 1, 24, 0x550806af, F=0x0, S=1, 8, 0x076800ee
+0, 170, 171, 1, 24, 0x59c806ef, F=0x0, S=1, 8, 0x076800ee
+0, 171, 172, 1, 24, 0x4b9c0630, F=0x0, S=1, 8, 0x076800ee
+0, 172, 173, 1, 24, 0x505c0670, F=0x0, S=1, 8, 0x076800ee
+0, 173, 174, 1, 24, 0x551c06b0, F=0x0, S=1, 8, 0x076800ee
+0, 174, 175, 1, 24, 0x59dc06f0, F=0x0, S=1, 8, 0x076800ee
+0, 175, 176, 1, 24, 0x4bb00631, F=0x0, S=1, 8, 0x076800ee
+0, 176, 177, 1, 24, 0x50700671, F=0x0, S=1, 8, 0x076800ee
+0, 177, 178, 1, 24, 0x553006b1, F=0x0, S=1, 8, 0x076800ee
+0, 178, 179, 1, 24, 0x59f006f1, F=0x0, S=1, 8, 0x076800ee
+0, 179, 180, 1, 24, 0x4bc40632, F=0x0, S=1, 8, 0x076800ee
+0, 180, 181, 1, 24, 0x50840672, F=0x0, S=1, 8, 0x076800ee
+0, 181, 182, 1, 24, 0x554406b2, F=0x0, S=1, 8, 0x076800ee
+0, 182, 183, 1, 24, 0x5a0406f2, F=0x0, S=1, 8, 0x076800ee
+0, 183, 184, 1, 24, 0x4bd80633, F=0x0, S=1, 8, 0x076800ee
+0, 184, 185, 1, 24, 0x50980673, F=0x0, S=1, 8, 0x076800ee
+0, 185, 186, 1, 24, 0x555806b3, F=0x0, S=1, 8, 0x076800ee
+0, 186, 187, 1, 24, 0x5a1806f3, F=0x0, S=1, 8, 0x076800ee
+0, 187, 188, 1, 24, 0x4bec0634, F=0x0, S=1, 8, 0x076800ee
+0, 188, 189, 1, 24, 0x50ac0674, F=0x0, S=1, 8, 0x076800ee
+0, 189, 190, 1, 24, 0x556c06b4, F=0x0, S=1, 8, 0x076800ee
+0, 190, 191, 1, 24, 0x5a2c06f4, F=0x0, S=1, 8, 0x076800ee
+0, 191, 192, 1, 24, 0x4c000635, F=0x0, S=1, 8, 0x076800ee
+0, 192, 193, 1, 24, 0x50c00675, F=0x0, S=1, 8, 0x076800ee
+0, 193, 194, 1, 24, 0x558006b5, F=0x0, S=1, 8, 0x076800ee
+0, 194, 195, 1, 24, 0x5a4006f5, F=0x0, S=1, 8, 0x076800ee
+0, 195, 196, 1, 24, 0x4c140636, F=0x0, S=1, 8, 0x076800ee
+0, 196, 197, 1, 24, 0x50d40676, F=0x0, S=1, 8, 0x076800ee
+0, 197, 198, 1, 24, 0x559406b6, F=0x0, S=1, 8, 0x076800ee
+0, 198, 199, 1, 24, 0x5a5406f6, F=0x0, S=1, 8, 0x076800ee
+0, 199, 200, 1, 24, 0x4c280637, F=0x0, S=1, 8, 0x076800ee
+0, 200, 201, 1, 24, 0x50e80677, F=0x0, S=1, 8, 0x076800ee
+0, 201, 202, 1, 24, 0x55a806b7, F=0x0, S=1, 8, 0x076800ee
+0, 202, 203, 1, 24, 0x5a6806f7, F=0x0, S=1, 8, 0x076800ee
+0, 203, 204, 1, 24, 0x4c3c0638, F=0x0, S=1, 8, 0x076800ee
+0, 204, 205, 1, 24, 0x50fc0678, F=0x0, S=1, 8, 0x076800ee
+0, 205, 206, 1, 24, 0x55bc06b8, F=0x0, S=1, 8, 0x076800ee
+0, 206, 207, 1, 24, 0x5a7c06f8, F=0x0, S=1, 8, 0x076800ee
+0, 207, 208, 1, 24, 0x4c500639, F=0x0, S=1, 8, 0x076800ee
+0, 208, 209, 1, 24, 0x51100679, F=0x0, S=1, 8, 0x076800ee
+0, 209, 210, 1, 24, 0x55d006b9, F=0x0, S=1, 8, 0x076800ee
+0, 210, 211, 1, 24, 0x5a9006f9, F=0x0, S=1, 8, 0x076800ee
+0, 211, 212, 1, 24, 0x4c64063a, F=0x0, S=1, 8, 0x076800ee
+0, 212, 213, 1, 24, 0x5124067a, F=0x0, S=1, 8, 0x076800ee
+0, 213, 214, 1, 24, 0x55e406ba, F=0x0, S=1, 8, 0x076800ee
+0, 214, 215, 1, 24, 0x5aa406fa, F=0x0, S=1, 8, 0x076800ee
+0, 215, 216, 1, 24, 0x4c78063b, F=0x0, S=1, 8, 0x076800ee
+0, 216, 217, 1, 24, 0x5138067b, F=0x0, S=1, 8, 0x076800ee
+0, 217, 218, 1, 24, 0x55f806bb, F=0x0, S=1, 8, 0x076800ee
+0, 218, 219, 1, 24, 0x5ab806fb, F=0x0, S=1, 8, 0x076800ee
+0, 219, 220, 1, 24, 0x4c8c063c, F=0x0, S=1, 8, 0x076800ee
+0, 220, 221, 1, 24, 0x514c067c, F=0x0, S=1, 8, 0x076800ee
+0, 221, 222, 1, 24, 0x560c06bc, F=0x0, S=1, 8, 0x076800ee
+0, 222, 223, 1, 24, 0x5acc06fc, F=0x0, S=1, 8, 0x076800ee
+0, 223, 224, 1, 24, 0x4ca0063d, F=0x0, S=1, 8, 0x076800ee
+0, 224, 225, 1, 24, 0x5160067d, F=0x0, S=1, 8, 0x076800ee
+0, 225, 226, 1, 24, 0x562006bd, F=0x0, S=1, 8, 0x076800ee
+0, 226, 227, 1, 24, 0x5ae006fd, F=0x0, S=1, 8, 0x076800ee
+0, 227, 228, 1, 24, 0x4cb4063e, F=0x0, S=1, 8, 0x076800ee
+0, 228, 229, 1, 24, 0x5174067e, F=0x0, S=1, 8, 0x076800ee
+0, 229, 230, 1, 24, 0x563406be, F=0x0, S=1, 8, 0x076800ee
+0, 230, 231, 1, 24, 0x5af406fe, F=0x0, S=1, 8, 0x076800ee
+0, 231, 232, 1, 24, 0x4cc8063f, F=0x0, S=1, 8, 0x076800ee
+0, 232, 233, 1, 24, 0x5188067f, F=0x0, S=1, 8, 0x076800ee
+0, 233, 234, 1, 24, 0x564806bf, F=0x0, S=1, 8, 0x076800ee
+0, 234, 235, 1, 24, 0x5b0806ff, F=0x0, S=1, 8, 0x076800ee
+0, 235, 236, 1, 24, 0x4cdc0640, F=0x0, S=1, 8, 0x076800ee
+0, 236, 237, 1, 24, 0x519c0680, F=0x0, S=1, 8, 0x076800ee
+0, 237, 238, 1, 24, 0x565c06c0, F=0x0, S=1, 8, 0x076800ee
+0, 238, 239, 1, 24, 0x5b1c0700, F=0x0, S=1, 8, 0x076800ee
+0, 239, 240, 1, 24, 0x4cf00641, F=0x0, S=1, 8, 0x076800ee
+0, 240, 241, 1, 24, 0x51b00681, F=0x0, S=1, 8, 0x076800ee
+0, 241, 242, 1, 24, 0x567006c1, F=0x0, S=1, 8, 0x076800ee
+0, 242, 243, 1, 24, 0x5b300701, F=0x0, S=1, 8, 0x076800ee
+0, 243, 244, 1, 24, 0x4d040642, F=0x0, S=1, 8, 0x076800ee
+0, 244, 245, 1, 24, 0x51c40682, F=0x0, S=1, 8, 0x076800ee
+0, 245, 246, 1, 24, 0x568406c2, F=0x0, S=1, 8, 0x076800ee
+0, 246, 247, 1, 24, 0x5b440702, F=0x0, S=1, 8, 0x076800ee
+0, 247, 248, 1, 24, 0x4d180643, F=0x0, S=1, 8, 0x076800ee
+0, 248, 249, 1, 24, 0x51d80683, F=0x0, S=1, 8, 0x076800ee
+0, 249, 250, 1, 24, 0x569806c3, F=0x0, S=1, 8, 0x076800ee
+0, 250, 251, 1, 24, 0x5b580703, F=0x0, S=1, 8, 0x076800ee
+0, 251, 252, 1, 24, 0x4d2c0644, F=0x0, S=1, 8, 0x076800ee
+0, 252, 253, 1, 24, 0x51ec0684, F=0x0, S=1, 8, 0x076800ee
+0, 253, 254, 1, 24, 0x56ac06c4, F=0x0, S=1, 8, 0x076800ee
+0, 254, 255, 1, 24, 0x5b6c0704, F=0x0, S=1, 8, 0x076800ee
+0, 255, 256, 1, 24, 0x4d400645, F=0x0, S=1, 8, 0x076800ee
+0, 256, 257, 1, 24, 0x52000685, F=0x0, S=1, 8, 0x076800ee
+0, 257, 258, 1, 24, 0x56c006c5, F=0x0, S=1, 8, 0x076800ee
+0, 258, 259, 1, 24, 0x5b800705, F=0x0, S=1, 8, 0x076800ee
+0, 259, 260, 1, 24, 0x4d540646, F=0x0, S=1, 8, 0x076800ee
+0, 260, 261, 1, 24, 0x52140686, F=0x0, S=1, 8, 0x076800ee
+0, 261, 262, 1, 24, 0x56d406c6, F=0x0, S=1, 8, 0x076800ee
+0, 262, 263, 1, 24, 0x5b940706, F=0x0, S=1, 8, 0x076800ee
+0, 263, 264, 1, 24, 0x4d680647, F=0x0, S=1, 8, 0x076800ee
+0, 264, 265, 1, 24, 0x52280687, F=0x0, S=1, 8, 0x076800ee
+0, 265, 266, 1, 24, 0x56e806c7, F=0x0, S=1, 8, 0x076800ee
+0, 266, 267, 1, 24, 0x5ba80707, F=0x0, S=1, 8, 0x076800ee
+0, 267, 268, 1, 24, 0x4d7c0648, F=0x0, S=1, 8, 0x076800ee
+0, 268, 269, 1, 24, 0x523c0688, F=0x0, S=1, 8, 0x076800ee
+0, 269, 270, 1, 24, 0x56fc06c8, F=0x0, S=1, 8, 0x076800ee
+0, 270, 271, 1, 24, 0x5bbc0708, F=0x0, S=1, 8, 0x076800ee
+0, 271, 272, 1, 24, 0x4d900649, F=0x0, S=1, 8, 0x076800ee
+0, 272, 273, 1, 24, 0x52500689, F=0x0, S=1, 8, 0x076800ee
+0, 273, 274, 1, 24, 0x571006c9, F=0x0, S=1, 8, 0x076800ee
+0, 274, 275, 1, 24, 0x5bd00709, F=0x0, S=1, 8, 0x076800ee
+0, 275, 276, 1, 24, 0x4da4064a, F=0x0, S=1, 8, 0x076800ee
+0, 276, 277, 1, 24, 0x5264068a, F=0x0, S=1, 8, 0x076800ee
+0, 277, 278, 1, 24, 0x572406ca, F=0x0, S=1, 8, 0x076800ee
+0, 278, 279, 1, 24, 0x5be4070a, F=0x0, S=1, 8, 0x076800ee
+0, 279, 280, 1, 24, 0x4db8064b, F=0x0, S=1, 8, 0x076800ee
+0, 280, 281, 1, 24, 0x5278068b, F=0x0, S=1, 8, 0x076800ee
+0, 281, 282, 1, 24, 0x573806cb, F=0x0, S=1, 8, 0x076800ee
+0, 282, 283, 1, 24, 0x5bf8070b, F=0x0, S=1, 8, 0x076800ee
+0, 283, 284, 1, 24, 0x4dcc064c, F=0x0, S=1, 8, 0x076800ee
+0, 284, 285, 1, 24, 0x528c068c, F=0x0, S=1, 8, 0x076800ee
+0, 285, 286, 1, 24, 0x574c06cc, F=0x0, S=1, 8, 0x076800ee
+0, 286, 287, 1, 24, 0x5c0c070c, F=0x0, S=1, 8, 0x076800ee
+0, 287, 288, 1, 24, 0x4de0064d, F=0x0, S=1, 8, 0x076800ee
+0, 288, 289, 1, 24, 0x52a0068d, F=0x0, S=1, 8, 0x076800ee
+0, 289, 290, 1, 24, 0x576006cd, F=0x0, S=1, 8, 0x076800ee
+0, 290, 291, 1, 24, 0x5c20070d, F=0x0, S=1, 8, 0x076800ee
+0, 291, 292, 1, 24, 0x4df4064e, F=0x0, S=1, 8, 0x076800ee
+0, 292, 293, 1, 24, 0x52b4068e, F=0x0, S=1, 8, 0x076800ee
+0, 293, 294, 1, 24, 0x577406ce, F=0x0, S=1, 8, 0x076800ee
+0, 294, 295, 1, 24, 0x5c34070e, F=0x0, S=1, 8, 0x076800ee
+0, 295, 296, 1, 24, 0x4e08064f, F=0x0, S=1, 8, 0x076800ee
+0, 296, 297, 1, 24, 0x52c8068f, F=0x0, S=1, 8, 0x076800ee
+0, 297, 298, 1, 24, 0x578806cf, F=0x0, S=1, 8, 0x076800ee
+0, 298, 299, 1, 24, 0x5c48070f, F=0x0, S=1, 8, 0x076800ee
+0, 299, 300, 1, 24, 0x4e1c0650, F=0x0, S=1, 8, 0x076800ee
+0, 300, 301, 1, 24, 0x52dc0690, F=0x0, S=1, 8, 0x076800ee
+0, 301, 302, 1, 24, 0x579c06d0, F=0x0, S=1, 8, 0x076800ee
+0, 302, 303, 1, 24, 0x5c5c0710, F=0x0, S=1, 8, 0x076800ee
+0, 303, 304, 1, 24, 0x4e300651, F=0x0, S=1, 8, 0x076800ee
+0, 304, 305, 1, 24, 0x52f00691, F=0x0, S=1, 8, 0x076800ee
+0, 305, 306, 1, 24, 0x57b006d1, F=0x0, S=1, 8, 0x076800ee
+0, 306, 307, 1, 24, 0x5c700711, F=0x0, S=1, 8, 0x076800ee
+0, 307, 308, 1, 24, 0x4e440652, F=0x0, S=1, 8, 0x076800ee
+0, 308, 309, 1, 24, 0x53040692, F=0x0, S=1, 8, 0x076800ee
+0, 309, 310, 1, 24, 0x57c406d2, F=0x0, S=1, 8, 0x076800ee
+0, 310, 311, 1, 24, 0x5c840712, F=0x0, S=1, 8, 0x076800ee
+0, 311, 312, 1, 24, 0x4e580653, F=0x0, S=1, 8, 0x076800ee
+0, 312, 313, 1, 24, 0x53180693, F=0x0, S=1, 8, 0x076800ee
+0, 313, 314, 1, 24, 0x57d806d3, F=0x0, S=1, 8, 0x076800ee
+0, 314, 315, 1, 24, 0x5c980713, F=0x0, S=1, 8, 0x076800ee
+0, 315, 316, 1, 24, 0x4e6c0654, F=0x0, S=1, 8, 0x076800ee
+0, 316, 317, 1, 24, 0x532c0694, F=0x0, S=1, 8, 0x076800ee
+0, 317, 318, 1, 24, 0x57ec06d4, F=0x0, S=1, 8, 0x076800ee
+0, 318, 319, 1, 24, 0x5cac0714, F=0x0, S=1, 8, 0x076800ee
+0, 319, 320, 1, 24, 0x4e800655, F=0x0, S=1, 8, 0x076800ee
+0, 320, 321, 1, 24, 0x53400695, F=0x0, S=1, 8, 0x076800ee
+0, 321, 322, 1, 24, 0x580006d5, F=0x0, S=1, 8, 0x076800ee
+0, 322, 323, 1, 24, 0x5cc00715, F=0x0, S=1, 8, 0x076800ee
+0, 323, 324, 1, 24, 0x4e940656, F=0x0, S=1, 8, 0x076800ee
+0, 324, 325, 1, 24, 0x53540696, F=0x0, S=1, 8, 0x076800ee
+0, 325, 326, 1, 24, 0x581406d6, F=0x0, S=1, 8, 0x076800ee
+0, 326, 327, 1, 24, 0x5cd40716, F=0x0, S=1, 8, 0x076800ee
+0, 327, 328, 1, 24, 0x4ea80657, F=0x0, S=1, 8, 0x076800ee
+0, 328, 329, 1, 24, 0x53680697, F=0x0, S=1, 8, 0x076800ee
+0, 329, 330, 1, 24, 0x582806d7, F=0x0, S=1, 8, 0x076800ee
+0, 330, 331, 1, 24, 0x5ce80717, F=0x0, S=1, 8, 0x076800ee
+0, 331, 332, 1, 24, 0x4ebc0658, F=0x0, S=1, 8, 0x076800ee
+0, 332, 333, 1, 24, 0x537c0698, F=0x0, S=1, 8, 0x076800ee
+0, 333, 334, 1, 24, 0x583c06d8, F=0x0, S=1, 8, 0x076800ee
+0, 334, 335, 1, 24, 0x5cfc0718, F=0x0, S=1, 8, 0x076800ee
+0, 335, 336, 1, 24, 0x4ed00659, F=0x0, S=1, 8, 0x076800ee
+0, 336, 337, 1, 57, 0x899c0f1e, S=1, 8, 0x05ec00be
+0, 337, 338, 1, 24, 0x4f1c0660, F=0x0, S=1, 8, 0x076800ee
+0, 338, 339, 1, 24, 0x53dc06a0, F=0x0, S=1, 8, 0x076800ee
+0, 339, 340, 1, 24, 0x589c06e0, F=0x0, S=1, 8, 0x076800ee
+0, 340, 341, 1, 24, 0x4a700621, F=0x0, S=1, 8, 0x076800ee
+0, 341, 342, 1, 24, 0x4f300661, F=0x0, S=1, 8, 0x076800ee
+0, 342, 343, 1, 24, 0x53f006a1, F=0x0, S=1, 8, 0x076800ee
+0, 343, 344, 1, 24, 0x58b006e1, F=0x0, S=1, 8, 0x076800ee
+0, 344, 345, 1, 24, 0x4a840622, F=0x0, S=1, 8, 0x076800ee
+0, 345, 346, 1, 24, 0x4f440662, F=0x0, S=1, 8, 0x076800ee
+0, 346, 347, 1, 24, 0x540406a2, F=0x0, S=1, 8, 0x076800ee
+0, 347, 348, 1, 24, 0x58c406e2, F=0x0, S=1, 8, 0x076800ee
+0, 348, 349, 1, 24, 0x4a980623, F=0x0, S=1, 8, 0x076800ee
+0, 349, 350, 1, 24, 0x4f580663, F=0x0, S=1, 8, 0x076800ee
+0, 350, 351, 1, 24, 0x541806a3, F=0x0, S=1, 8, 0x076800ee
+0, 351, 352, 1, 24, 0x58d806e3, F=0x0, S=1, 8, 0x076800ee
+0, 352, 353, 1, 24, 0x4aac0624, F=0x0, S=1, 8, 0x076800ee
+0, 353, 354, 1, 24, 0x4f6c0664, F=0x0, S=1, 8, 0x076800ee
+0, 354, 355, 1, 24, 0x542c06a4, F=0x0, S=1, 8, 0x076800ee
+0, 355, 356, 1, 24, 0x58ec06e4, F=0x0, S=1, 8, 0x076800ee
+0, 356, 357, 1, 24, 0x4ac00625, F=0x0, S=1, 8, 0x076800ee
+0, 357, 358, 1, 24, 0x4f800665, F=0x0, S=1, 8, 0x076800ee
+0, 358, 359, 1, 24, 0x544006a5, F=0x0, S=1, 8, 0x076800ee
+0, 359, 360, 1, 24, 0x590006e5, F=0x0, S=1, 8, 0x076800ee
+0, 360, 361, 1, 24, 0x4ad40626, F=0x0, S=1, 8, 0x076800ee
+0, 361, 362, 1, 24, 0x4f940666, F=0x0, S=1, 8, 0x076800ee
+0, 362, 363, 1, 24, 0x545406a6, F=0x0, S=1, 8, 0x076800ee
+0, 363, 364, 1, 24, 0x591406e6, F=0x0, S=1, 8, 0x076800ee
+0, 364, 365, 1, 24, 0x4ae80627, F=0x0, S=1, 8, 0x076800ee
+0, 365, 366, 1, 24, 0x4fa80667, F=0x0, S=1, 8, 0x076800ee
+0, 366, 367, 1, 24, 0x546806a7, F=0x0, S=1, 8, 0x076800ee
+0, 367, 368, 1, 24, 0x592806e7, F=0x0, S=1, 8, 0x076800ee
+0, 368, 369, 1, 57, 0x9b930fc1, S=1, 8, 0x05ec00be
+0, 369, 370, 1, 24, 0x4f1c0660, F=0x0, S=1, 8, 0x076800ee
+0, 370, 371, 1, 24, 0x53dc06a0, F=0x0, S=1, 8, 0x076800ee
+0, 371, 372, 1, 24, 0x589c06e0, F=0x0, S=1, 8, 0x076800ee
+0, 372, 373, 1, 24, 0x4a700621, F=0x0, S=1, 8, 0x076800ee
+0, 373, 374, 1, 24, 0x4f300661, F=0x0, S=1, 8, 0x076800ee
+0, 374, 375, 1, 24, 0x53f006a1, F=0x0, S=1, 8, 0x076800ee
+0, 375, 376, 1, 24, 0x58b006e1, F=0x0, S=1, 8, 0x076800ee
+0, 376, 377, 1, 24, 0x4a840622, F=0x0, S=1, 8, 0x076800ee
+0, 377, 378, 1, 24, 0x4f440662, F=0x0, S=1, 8, 0x076800ee
+0, 378, 379, 1, 24, 0x540406a2, F=0x0, S=1, 8, 0x076800ee
+0, 379, 380, 1, 24, 0x58c406e2, F=0x0, S=1, 8, 0x076800ee
+0, 380, 381, 1, 24, 0x4a980623, F=0x0, S=1, 8, 0x076800ee
+0, 381, 382, 1, 24, 0x4f580663, F=0x0, S=1, 8, 0x076800ee
+0, 382, 383, 1, 24, 0x541806a3, F=0x0, S=1, 8, 0x076800ee
+0, 383, 384, 1, 24, 0x58d806e3, F=0x0, S=1, 8, 0x076800ee
+0, 384, 385, 1, 24, 0x4aac0624, F=0x0, S=1, 8, 0x076800ee
+0, 385, 386, 1, 24, 0x4f6c0664, F=0x0, S=1, 8, 0x076800ee
+0, 386, 387, 1, 24, 0x542c06a4, F=0x0, S=1, 8, 0x076800ee
+0, 387, 388, 1, 24, 0x58ec06e4, F=0x0, S=1, 8, 0x076800ee
+0, 388, 389, 1, 24, 0x4ac00625, F=0x0, S=1, 8, 0x076800ee
+0, 389, 390, 1, 24, 0x4f800665, F=0x0, S=1, 8, 0x076800ee
+0, 390, 391, 1, 24, 0x544006a5, F=0x0, S=1, 8, 0x076800ee
diff --git a/tests/ref/fate/force_key_frames-source-drop b/tests/ref/fate/force_key_frames-source-drop
index 220c0f0f889..da6679ddb04 100644
--- a/tests/ref/fate/force_key_frames-source-drop
+++ b/tests/ref/fate/force_key_frames-source-drop
@@ -3,20 +3,20 @@
#codec_id 0: mpeg2video
#dimensions 0: 2x2
#sar 0: 0/1
-0, -1, 0, 1, 57, 0x80ba0ecd, S=1, 8
-0, 0, 1, 1, 24, 0x4f1c0660, F=0x0, S=1, 8
-0, 1, 2, 1, 24, 0x53dc06a0, F=0x0, S=1, 8
-0, 2, 3, 1, 24, 0x589c06e0, F=0x0, S=1, 8
-0, 3, 4, 1, 24, 0x4a700621, F=0x0, S=1, 8
-0, 4, 5, 1, 24, 0x4f300661, F=0x0, S=1, 8
-0, 5, 6, 1, 57, 0x7a110e90, S=1, 8
-0, 6, 7, 1, 24, 0x4f1c0660, F=0x0, S=1, 8
-0, 7, 8, 1, 24, 0x53dc06a0, F=0x0, S=1, 8
-0, 8, 9, 1, 24, 0x589c06e0, F=0x0, S=1, 8
-0, 9, 10, 1, 24, 0x4a700621, F=0x0, S=1, 8
-0, 10, 11, 1, 24, 0x4f300661, F=0x0, S=1, 8
-0, 11, 12, 1, 24, 0x53f006a1, F=0x0, S=1, 8
-0, 12, 13, 1, 24, 0x58b006e1, F=0x0, S=1, 8
-0, 13, 14, 1, 24, 0x4a840622, F=0x0, S=1, 8
-0, 14, 15, 1, 57, 0x88850f14, S=1, 8
-0, 15, 16, 1, 57, 0x7aa20e95, S=1, 8
+0, -1, 0, 1, 57, 0x80ba0ecd, S=1, 8, 0x05ec00be
+0, 0, 1, 1, 24, 0x4f1c0660, F=0x0, S=1, 8, 0x076800ee
+0, 1, 2, 1, 24, 0x53dc06a0, F=0x0, S=1, 8, 0x076800ee
+0, 2, 3, 1, 24, 0x589c06e0, F=0x0, S=1, 8, 0x076800ee
+0, 3, 4, 1, 24, 0x4a700621, F=0x0, S=1, 8, 0x076800ee
+0, 4, 5, 1, 24, 0x4f300661, F=0x0, S=1, 8, 0x076800ee
+0, 5, 6, 1, 57, 0x7a110e90, S=1, 8, 0x05ec00be
+0, 6, 7, 1, 24, 0x4f1c0660, F=0x0, S=1, 8, 0x076800ee
+0, 7, 8, 1, 24, 0x53dc06a0, F=0x0, S=1, 8, 0x076800ee
+0, 8, 9, 1, 24, 0x589c06e0, F=0x0, S=1, 8, 0x076800ee
+0, 9, 10, 1, 24, 0x4a700621, F=0x0, S=1, 8, 0x076800ee
+0, 10, 11, 1, 24, 0x4f300661, F=0x0, S=1, 8, 0x076800ee
+0, 11, 12, 1, 24, 0x53f006a1, F=0x0, S=1, 8, 0x076800ee
+0, 12, 13, 1, 24, 0x58b006e1, F=0x0, S=1, 8, 0x076800ee
+0, 13, 14, 1, 24, 0x4a840622, F=0x0, S=1, 8, 0x076800ee
+0, 14, 15, 1, 57, 0x88850f14, S=1, 8, 0x05ec00be
+0, 15, 16, 1, 57, 0x7aa20e95, S=1, 8, 0x05ec00be
diff --git a/tests/ref/fate/force_key_frames-source-dup b/tests/ref/fate/force_key_frames-source-dup
index 46fffc21f92..3dbad1b1edc 100644
--- a/tests/ref/fate/force_key_frames-source-dup
+++ b/tests/ref/fate/force_key_frames-source-dup
@@ -3,615 +3,615 @@
#codec_id 0: mpeg2video
#dimensions 0: 2x2
#sar 0: 0/1
-0, -1, 0, 1, 57, 0x8baa0f1a, S=1, 8
-0, 0, 1, 1, 24, 0x4f1c0660, F=0x0, S=1, 8
-0, 1, 2, 1, 24, 0x53dc06a0, F=0x0, S=1, 8
-0, 2, 3, 1, 24, 0x589c06e0, F=0x0, S=1, 8
-0, 3, 4, 1, 24, 0x4a700621, F=0x0, S=1, 8
-0, 4, 5, 1, 24, 0x4f300661, F=0x0, S=1, 8
-0, 5, 6, 1, 24, 0x53f006a1, F=0x0, S=1, 8
-0, 6, 7, 1, 24, 0x58b006e1, F=0x0, S=1, 8
-0, 7, 8, 1, 24, 0x4a840622, F=0x0, S=1, 8
-0, 8, 9, 1, 24, 0x4f440662, F=0x0, S=1, 8
-0, 9, 10, 1, 24, 0x540406a2, F=0x0, S=1, 8
-0, 10, 11, 1, 24, 0x58c406e2, F=0x0, S=1, 8
-0, 11, 12, 1, 24, 0x4a980623, F=0x0, S=1, 8
-0, 12, 13, 1, 24, 0x4f580663, F=0x0, S=1, 8
-0, 13, 14, 1, 24, 0x541806a3, F=0x0, S=1, 8
-0, 14, 15, 1, 24, 0x58d806e3, F=0x0, S=1, 8
-0, 15, 16, 1, 24, 0x4aac0624, F=0x0, S=1, 8
-0, 16, 17, 1, 24, 0x4f6c0664, F=0x0, S=1, 8
-0, 17, 18, 1, 24, 0x542c06a4, F=0x0, S=1, 8
-0, 18, 19, 1, 24, 0x58ec06e4, F=0x0, S=1, 8
-0, 19, 20, 1, 24, 0x4ac00625, F=0x0, S=1, 8
-0, 20, 21, 1, 24, 0x4f800665, F=0x0, S=1, 8
-0, 21, 22, 1, 24, 0x544006a5, F=0x0, S=1, 8
-0, 22, 23, 1, 24, 0x590006e5, F=0x0, S=1, 8
-0, 23, 24, 1, 24, 0x4ad40626, F=0x0, S=1, 8
-0, 24, 25, 1, 24, 0x4f940666, F=0x0, S=1, 8
-0, 25, 26, 1, 24, 0x545406a6, F=0x0, S=1, 8
-0, 26, 27, 1, 24, 0x591406e6, F=0x0, S=1, 8
-0, 27, 28, 1, 24, 0x4ae80627, F=0x0, S=1, 8
-0, 28, 29, 1, 24, 0x4fa80667, F=0x0, S=1, 8
-0, 29, 30, 1, 24, 0x546806a7, F=0x0, S=1, 8
-0, 30, 31, 1, 24, 0x592806e7, F=0x0, S=1, 8
-0, 31, 32, 1, 24, 0x4afc0628, F=0x0, S=1, 8
-0, 32, 33, 1, 24, 0x4fbc0668, F=0x0, S=1, 8
-0, 33, 34, 1, 24, 0x547c06a8, F=0x0, S=1, 8
-0, 34, 35, 1, 24, 0x593c06e8, F=0x0, S=1, 8
-0, 35, 36, 1, 24, 0x4b100629, F=0x0, S=1, 8
-0, 36, 37, 1, 24, 0x4fd00669, F=0x0, S=1, 8
-0, 37, 38, 1, 24, 0x549006a9, F=0x0, S=1, 8
-0, 38, 39, 1, 24, 0x595006e9, F=0x0, S=1, 8
-0, 39, 40, 1, 24, 0x4b24062a, F=0x0, S=1, 8
-0, 40, 41, 1, 24, 0x4fe4066a, F=0x0, S=1, 8
-0, 41, 42, 1, 24, 0x54a406aa, F=0x0, S=1, 8
-0, 42, 43, 1, 24, 0x596406ea, F=0x0, S=1, 8
-0, 43, 44, 1, 24, 0x4b38062b, F=0x0, S=1, 8
-0, 44, 45, 1, 24, 0x4ff8066b, F=0x0, S=1, 8
-0, 45, 46, 1, 24, 0x54b806ab, F=0x0, S=1, 8
-0, 46, 47, 1, 24, 0x597806eb, F=0x0, S=1, 8
-0, 47, 48, 1, 24, 0x4b4c062c, F=0x0, S=1, 8
-0, 48, 49, 1, 24, 0x500c066c, F=0x0, S=1, 8
-0, 49, 50, 1, 24, 0x54cc06ac, F=0x0, S=1, 8
-0, 50, 51, 1, 24, 0x598c06ec, F=0x0, S=1, 8
-0, 51, 52, 1, 24, 0x4b60062d, F=0x0, S=1, 8
-0, 52, 53, 1, 24, 0x5020066d, F=0x0, S=1, 8
-0, 53, 54, 1, 24, 0x54e006ad, F=0x0, S=1, 8
-0, 54, 55, 1, 24, 0x59a006ed, F=0x0, S=1, 8
-0, 55, 56, 1, 24, 0x4b74062e, F=0x0, S=1, 8
-0, 56, 57, 1, 24, 0x5034066e, F=0x0, S=1, 8
-0, 57, 58, 1, 24, 0x54f406ae, F=0x0, S=1, 8
-0, 58, 59, 1, 24, 0x59b406ee, F=0x0, S=1, 8
-0, 59, 60, 1, 24, 0x4b88062f, F=0x0, S=1, 8
-0, 60, 61, 1, 24, 0x5048066f, F=0x0, S=1, 8
-0, 61, 62, 1, 24, 0x550806af, F=0x0, S=1, 8
-0, 62, 63, 1, 24, 0x59c806ef, F=0x0, S=1, 8
-0, 63, 64, 1, 24, 0x4b9c0630, F=0x0, S=1, 8
-0, 64, 65, 1, 24, 0x505c0670, F=0x0, S=1, 8
-0, 65, 66, 1, 24, 0x551c06b0, F=0x0, S=1, 8
-0, 66, 67, 1, 24, 0x59dc06f0, F=0x0, S=1, 8
-0, 67, 68, 1, 24, 0x4bb00631, F=0x0, S=1, 8
-0, 68, 69, 1, 24, 0x50700671, F=0x0, S=1, 8
-0, 69, 70, 1, 24, 0x553006b1, F=0x0, S=1, 8
-0, 70, 71, 1, 24, 0x59f006f1, F=0x0, S=1, 8
-0, 71, 72, 1, 24, 0x4bc40632, F=0x0, S=1, 8
-0, 72, 73, 1, 24, 0x50840672, F=0x0, S=1, 8
-0, 73, 74, 1, 24, 0x554406b2, F=0x0, S=1, 8
-0, 74, 75, 1, 24, 0x5a0406f2, F=0x0, S=1, 8
-0, 75, 76, 1, 24, 0x4bd80633, F=0x0, S=1, 8
-0, 76, 77, 1, 24, 0x50980673, F=0x0, S=1, 8
-0, 77, 78, 1, 24, 0x555806b3, F=0x0, S=1, 8
-0, 78, 79, 1, 24, 0x5a1806f3, F=0x0, S=1, 8
-0, 79, 80, 1, 24, 0x4bec0634, F=0x0, S=1, 8
-0, 80, 81, 1, 24, 0x50ac0674, F=0x0, S=1, 8
-0, 81, 82, 1, 24, 0x556c06b4, F=0x0, S=1, 8
-0, 82, 83, 1, 24, 0x5a2c06f4, F=0x0, S=1, 8
-0, 83, 84, 1, 24, 0x4c000635, F=0x0, S=1, 8
-0, 84, 85, 1, 24, 0x50c00675, F=0x0, S=1, 8
-0, 85, 86, 1, 24, 0x558006b5, F=0x0, S=1, 8
-0, 86, 87, 1, 24, 0x5a4006f5, F=0x0, S=1, 8
-0, 87, 88, 1, 24, 0x4c140636, F=0x0, S=1, 8
-0, 88, 89, 1, 24, 0x50d40676, F=0x0, S=1, 8
-0, 89, 90, 1, 24, 0x559406b6, F=0x0, S=1, 8
-0, 90, 91, 1, 24, 0x5a5406f6, F=0x0, S=1, 8
-0, 91, 92, 1, 24, 0x4c280637, F=0x0, S=1, 8
-0, 92, 93, 1, 24, 0x50e80677, F=0x0, S=1, 8
-0, 93, 94, 1, 24, 0x55a806b7, F=0x0, S=1, 8
-0, 94, 95, 1, 24, 0x5a6806f7, F=0x0, S=1, 8
-0, 95, 96, 1, 24, 0x4c3c0638, F=0x0, S=1, 8
-0, 96, 97, 1, 24, 0x50fc0678, F=0x0, S=1, 8
-0, 97, 98, 1, 24, 0x55bc06b8, F=0x0, S=1, 8
-0, 98, 99, 1, 24, 0x5a7c06f8, F=0x0, S=1, 8
-0, 99, 100, 1, 24, 0x4c500639, F=0x0, S=1, 8
-0, 100, 101, 1, 24, 0x51100679, F=0x0, S=1, 8
-0, 101, 102, 1, 24, 0x55d006b9, F=0x0, S=1, 8
-0, 102, 103, 1, 24, 0x5a9006f9, F=0x0, S=1, 8
-0, 103, 104, 1, 24, 0x4c64063a, F=0x0, S=1, 8
-0, 104, 105, 1, 24, 0x5124067a, F=0x0, S=1, 8
-0, 105, 106, 1, 24, 0x55e406ba, F=0x0, S=1, 8
-0, 106, 107, 1, 24, 0x5aa406fa, F=0x0, S=1, 8
-0, 107, 108, 1, 24, 0x4c78063b, F=0x0, S=1, 8
-0, 108, 109, 1, 24, 0x5138067b, F=0x0, S=1, 8
-0, 109, 110, 1, 24, 0x55f806bb, F=0x0, S=1, 8
-0, 110, 111, 1, 24, 0x5ab806fb, F=0x0, S=1, 8
-0, 111, 112, 1, 24, 0x4c8c063c, F=0x0, S=1, 8
-0, 112, 113, 1, 24, 0x514c067c, F=0x0, S=1, 8
-0, 113, 114, 1, 24, 0x560c06bc, F=0x0, S=1, 8
-0, 114, 115, 1, 24, 0x5acc06fc, F=0x0, S=1, 8
-0, 115, 116, 1, 24, 0x4ca0063d, F=0x0, S=1, 8
-0, 116, 117, 1, 24, 0x5160067d, F=0x0, S=1, 8
-0, 117, 118, 1, 24, 0x562006bd, F=0x0, S=1, 8
-0, 118, 119, 1, 24, 0x5ae006fd, F=0x0, S=1, 8
-0, 119, 120, 1, 24, 0x4cb4063e, F=0x0, S=1, 8
-0, 120, 121, 1, 24, 0x5174067e, F=0x0, S=1, 8
-0, 121, 122, 1, 24, 0x563406be, F=0x0, S=1, 8
-0, 122, 123, 1, 24, 0x5af406fe, F=0x0, S=1, 8
-0, 123, 124, 1, 24, 0x4cc8063f, F=0x0, S=1, 8
-0, 124, 125, 1, 24, 0x5188067f, F=0x0, S=1, 8
-0, 125, 126, 1, 24, 0x564806bf, F=0x0, S=1, 8
-0, 126, 127, 1, 24, 0x5b0806ff, F=0x0, S=1, 8
-0, 127, 128, 1, 24, 0x4cdc0640, F=0x0, S=1, 8
-0, 128, 129, 1, 24, 0x519c0680, F=0x0, S=1, 8
-0, 129, 130, 1, 24, 0x565c06c0, F=0x0, S=1, 8
-0, 130, 131, 1, 24, 0x5b1c0700, F=0x0, S=1, 8
-0, 131, 132, 1, 24, 0x4cf00641, F=0x0, S=1, 8
-0, 132, 133, 1, 24, 0x51b00681, F=0x0, S=1, 8
-0, 133, 134, 1, 24, 0x567006c1, F=0x0, S=1, 8
-0, 134, 135, 1, 24, 0x5b300701, F=0x0, S=1, 8
-0, 135, 136, 1, 24, 0x4d040642, F=0x0, S=1, 8
-0, 136, 137, 1, 24, 0x51c40682, F=0x0, S=1, 8
-0, 137, 138, 1, 24, 0x568406c2, F=0x0, S=1, 8
-0, 138, 139, 1, 24, 0x5b440702, F=0x0, S=1, 8
-0, 139, 140, 1, 24, 0x4d180643, F=0x0, S=1, 8
-0, 140, 141, 1, 24, 0x51d80683, F=0x0, S=1, 8
-0, 141, 142, 1, 24, 0x569806c3, F=0x0, S=1, 8
-0, 142, 143, 1, 24, 0x5b580703, F=0x0, S=1, 8
-0, 143, 144, 1, 24, 0x4d2c0644, F=0x0, S=1, 8
-0, 144, 145, 1, 24, 0x51ec0684, F=0x0, S=1, 8
-0, 145, 146, 1, 24, 0x56ac06c4, F=0x0, S=1, 8
-0, 146, 147, 1, 24, 0x5b6c0704, F=0x0, S=1, 8
-0, 147, 148, 1, 24, 0x4d400645, F=0x0, S=1, 8
-0, 148, 149, 1, 24, 0x52000685, F=0x0, S=1, 8
-0, 149, 150, 1, 24, 0x56c006c5, F=0x0, S=1, 8
-0, 150, 151, 1, 24, 0x5b800705, F=0x0, S=1, 8
-0, 151, 152, 1, 24, 0x4d540646, F=0x0, S=1, 8
-0, 152, 153, 1, 24, 0x52140686, F=0x0, S=1, 8
-0, 153, 154, 1, 24, 0x56d406c6, F=0x0, S=1, 8
-0, 154, 155, 1, 24, 0x5b940706, F=0x0, S=1, 8
-0, 155, 156, 1, 24, 0x4d680647, F=0x0, S=1, 8
-0, 156, 157, 1, 24, 0x52280687, F=0x0, S=1, 8
-0, 157, 158, 1, 24, 0x56e806c7, F=0x0, S=1, 8
-0, 158, 159, 1, 24, 0x5ba80707, F=0x0, S=1, 8
-0, 159, 160, 1, 24, 0x4d7c0648, F=0x0, S=1, 8
-0, 160, 161, 1, 24, 0x523c0688, F=0x0, S=1, 8
-0, 161, 162, 1, 24, 0x56fc06c8, F=0x0, S=1, 8
-0, 162, 163, 1, 24, 0x5bbc0708, F=0x0, S=1, 8
-0, 163, 164, 1, 24, 0x4d900649, F=0x0, S=1, 8
-0, 164, 165, 1, 24, 0x52500689, F=0x0, S=1, 8
-0, 165, 166, 1, 24, 0x571006c9, F=0x0, S=1, 8
-0, 166, 167, 1, 24, 0x5bd00709, F=0x0, S=1, 8
-0, 167, 168, 1, 57, 0x97cf0f83, S=1, 8
-0, 168, 169, 1, 24, 0x4f1c0660, F=0x0, S=1, 8
-0, 169, 170, 1, 24, 0x53dc06a0, F=0x0, S=1, 8
-0, 170, 171, 1, 24, 0x589c06e0, F=0x0, S=1, 8
-0, 171, 172, 1, 24, 0x4a700621, F=0x0, S=1, 8
-0, 172, 173, 1, 24, 0x4f300661, F=0x0, S=1, 8
-0, 173, 174, 1, 24, 0x53f006a1, F=0x0, S=1, 8
-0, 174, 175, 1, 24, 0x58b006e1, F=0x0, S=1, 8
-0, 175, 176, 1, 24, 0x4a840622, F=0x0, S=1, 8
-0, 176, 177, 1, 24, 0x4f440662, F=0x0, S=1, 8
-0, 177, 178, 1, 24, 0x540406a2, F=0x0, S=1, 8
-0, 178, 179, 1, 24, 0x58c406e2, F=0x0, S=1, 8
-0, 179, 180, 1, 24, 0x4a980623, F=0x0, S=1, 8
-0, 180, 181, 1, 24, 0x4f580663, F=0x0, S=1, 8
-0, 181, 182, 1, 24, 0x541806a3, F=0x0, S=1, 8
-0, 182, 183, 1, 24, 0x58d806e3, F=0x0, S=1, 8
-0, 183, 184, 1, 24, 0x4aac0624, F=0x0, S=1, 8
-0, 184, 185, 1, 24, 0x4f6c0664, F=0x0, S=1, 8
-0, 185, 186, 1, 24, 0x542c06a4, F=0x0, S=1, 8
-0, 186, 187, 1, 24, 0x58ec06e4, F=0x0, S=1, 8
-0, 187, 188, 1, 24, 0x4ac00625, F=0x0, S=1, 8
-0, 188, 189, 1, 24, 0x4f800665, F=0x0, S=1, 8
-0, 189, 190, 1, 24, 0x544006a5, F=0x0, S=1, 8
-0, 190, 191, 1, 24, 0x590006e5, F=0x0, S=1, 8
-0, 191, 192, 1, 24, 0x4ad40626, F=0x0, S=1, 8
-0, 192, 193, 1, 24, 0x4f940666, F=0x0, S=1, 8
-0, 193, 194, 1, 24, 0x545406a6, F=0x0, S=1, 8
-0, 194, 195, 1, 24, 0x591406e6, F=0x0, S=1, 8
-0, 195, 196, 1, 24, 0x4ae80627, F=0x0, S=1, 8
-0, 196, 197, 1, 24, 0x4fa80667, F=0x0, S=1, 8
-0, 197, 198, 1, 24, 0x546806a7, F=0x0, S=1, 8
-0, 198, 199, 1, 24, 0x592806e7, F=0x0, S=1, 8
-0, 199, 200, 1, 24, 0x4afc0628, F=0x0, S=1, 8
-0, 200, 201, 1, 24, 0x4fbc0668, F=0x0, S=1, 8
-0, 201, 202, 1, 24, 0x547c06a8, F=0x0, S=1, 8
-0, 202, 203, 1, 24, 0x593c06e8, F=0x0, S=1, 8
-0, 203, 204, 1, 24, 0x4b100629, F=0x0, S=1, 8
-0, 204, 205, 1, 24, 0x4fd00669, F=0x0, S=1, 8
-0, 205, 206, 1, 24, 0x549006a9, F=0x0, S=1, 8
-0, 206, 207, 1, 24, 0x595006e9, F=0x0, S=1, 8
-0, 207, 208, 1, 24, 0x4b24062a, F=0x0, S=1, 8
-0, 208, 209, 1, 24, 0x4fe4066a, F=0x0, S=1, 8
-0, 209, 210, 1, 24, 0x54a406aa, F=0x0, S=1, 8
-0, 210, 211, 1, 24, 0x596406ea, F=0x0, S=1, 8
-0, 211, 212, 1, 24, 0x4b38062b, F=0x0, S=1, 8
-0, 212, 213, 1, 24, 0x4ff8066b, F=0x0, S=1, 8
-0, 213, 214, 1, 24, 0x54b806ab, F=0x0, S=1, 8
-0, 214, 215, 1, 24, 0x597806eb, F=0x0, S=1, 8
-0, 215, 216, 1, 24, 0x4b4c062c, F=0x0, S=1, 8
-0, 216, 217, 1, 24, 0x500c066c, F=0x0, S=1, 8
-0, 217, 218, 1, 24, 0x54cc06ac, F=0x0, S=1, 8
-0, 218, 219, 1, 24, 0x598c06ec, F=0x0, S=1, 8
-0, 219, 220, 1, 24, 0x4b60062d, F=0x0, S=1, 8
-0, 220, 221, 1, 24, 0x5020066d, F=0x0, S=1, 8
-0, 221, 222, 1, 24, 0x54e006ad, F=0x0, S=1, 8
-0, 222, 223, 1, 24, 0x59a006ed, F=0x0, S=1, 8
-0, 223, 224, 1, 24, 0x4b74062e, F=0x0, S=1, 8
-0, 224, 225, 1, 24, 0x5034066e, F=0x0, S=1, 8
-0, 225, 226, 1, 24, 0x54f406ae, F=0x0, S=1, 8
-0, 226, 227, 1, 24, 0x59b406ee, F=0x0, S=1, 8
-0, 227, 228, 1, 24, 0x4b88062f, F=0x0, S=1, 8
-0, 228, 229, 1, 24, 0x5048066f, F=0x0, S=1, 8
-0, 229, 230, 1, 24, 0x550806af, F=0x0, S=1, 8
-0, 230, 231, 1, 24, 0x59c806ef, F=0x0, S=1, 8
-0, 231, 232, 1, 24, 0x4b9c0630, F=0x0, S=1, 8
-0, 232, 233, 1, 24, 0x505c0670, F=0x0, S=1, 8
-0, 233, 234, 1, 24, 0x551c06b0, F=0x0, S=1, 8
-0, 234, 235, 1, 24, 0x59dc06f0, F=0x0, S=1, 8
-0, 235, 236, 1, 24, 0x4bb00631, F=0x0, S=1, 8
-0, 236, 237, 1, 24, 0x50700671, F=0x0, S=1, 8
-0, 237, 238, 1, 24, 0x553006b1, F=0x0, S=1, 8
-0, 238, 239, 1, 24, 0x59f006f1, F=0x0, S=1, 8
-0, 239, 240, 1, 24, 0x4bc40632, F=0x0, S=1, 8
-0, 240, 241, 1, 24, 0x50840672, F=0x0, S=1, 8
-0, 241, 242, 1, 24, 0x554406b2, F=0x0, S=1, 8
-0, 242, 243, 1, 24, 0x5a0406f2, F=0x0, S=1, 8
-0, 243, 244, 1, 24, 0x4bd80633, F=0x0, S=1, 8
-0, 244, 245, 1, 24, 0x50980673, F=0x0, S=1, 8
-0, 245, 246, 1, 24, 0x555806b3, F=0x0, S=1, 8
-0, 246, 247, 1, 24, 0x5a1806f3, F=0x0, S=1, 8
-0, 247, 248, 1, 24, 0x4bec0634, F=0x0, S=1, 8
-0, 248, 249, 1, 24, 0x50ac0674, F=0x0, S=1, 8
-0, 249, 250, 1, 24, 0x556c06b4, F=0x0, S=1, 8
-0, 250, 251, 1, 24, 0x5a2c06f4, F=0x0, S=1, 8
-0, 251, 252, 1, 24, 0x4c000635, F=0x0, S=1, 8
-0, 252, 253, 1, 24, 0x50c00675, F=0x0, S=1, 8
-0, 253, 254, 1, 24, 0x558006b5, F=0x0, S=1, 8
-0, 254, 255, 1, 24, 0x5a4006f5, F=0x0, S=1, 8
-0, 255, 256, 1, 24, 0x4c140636, F=0x0, S=1, 8
-0, 256, 257, 1, 24, 0x50d40676, F=0x0, S=1, 8
-0, 257, 258, 1, 24, 0x559406b6, F=0x0, S=1, 8
-0, 258, 259, 1, 24, 0x5a5406f6, F=0x0, S=1, 8
-0, 259, 260, 1, 24, 0x4c280637, F=0x0, S=1, 8
-0, 260, 261, 1, 24, 0x50e80677, F=0x0, S=1, 8
-0, 261, 262, 1, 24, 0x55a806b7, F=0x0, S=1, 8
-0, 262, 263, 1, 24, 0x5a6806f7, F=0x0, S=1, 8
-0, 263, 264, 1, 24, 0x4c3c0638, F=0x0, S=1, 8
-0, 264, 265, 1, 24, 0x50fc0678, F=0x0, S=1, 8
-0, 265, 266, 1, 24, 0x55bc06b8, F=0x0, S=1, 8
-0, 266, 267, 1, 24, 0x5a7c06f8, F=0x0, S=1, 8
-0, 267, 268, 1, 24, 0x4c500639, F=0x0, S=1, 8
-0, 268, 269, 1, 24, 0x51100679, F=0x0, S=1, 8
-0, 269, 270, 1, 24, 0x55d006b9, F=0x0, S=1, 8
-0, 270, 271, 1, 24, 0x5a9006f9, F=0x0, S=1, 8
-0, 271, 272, 1, 24, 0x4c64063a, F=0x0, S=1, 8
-0, 272, 273, 1, 24, 0x5124067a, F=0x0, S=1, 8
-0, 273, 274, 1, 24, 0x55e406ba, F=0x0, S=1, 8
-0, 274, 275, 1, 24, 0x5aa406fa, F=0x0, S=1, 8
-0, 275, 276, 1, 24, 0x4c78063b, F=0x0, S=1, 8
-0, 276, 277, 1, 24, 0x5138067b, F=0x0, S=1, 8
-0, 277, 278, 1, 24, 0x55f806bb, F=0x0, S=1, 8
-0, 278, 279, 1, 24, 0x5ab806fb, F=0x0, S=1, 8
-0, 279, 280, 1, 24, 0x4c8c063c, F=0x0, S=1, 8
-0, 280, 281, 1, 24, 0x514c067c, F=0x0, S=1, 8
-0, 281, 282, 1, 24, 0x560c06bc, F=0x0, S=1, 8
-0, 282, 283, 1, 24, 0x5acc06fc, F=0x0, S=1, 8
-0, 283, 284, 1, 24, 0x4ca0063d, F=0x0, S=1, 8
-0, 284, 285, 1, 24, 0x5160067d, F=0x0, S=1, 8
-0, 285, 286, 1, 24, 0x562006bd, F=0x0, S=1, 8
-0, 286, 287, 1, 24, 0x5ae006fd, F=0x0, S=1, 8
-0, 287, 288, 1, 24, 0x4cb4063e, F=0x0, S=1, 8
-0, 288, 289, 1, 24, 0x5174067e, F=0x0, S=1, 8
-0, 289, 290, 1, 24, 0x563406be, F=0x0, S=1, 8
-0, 290, 291, 1, 24, 0x5af406fe, F=0x0, S=1, 8
-0, 291, 292, 1, 24, 0x4cc8063f, F=0x0, S=1, 8
-0, 292, 293, 1, 24, 0x5188067f, F=0x0, S=1, 8
-0, 293, 294, 1, 24, 0x564806bf, F=0x0, S=1, 8
-0, 294, 295, 1, 24, 0x5b0806ff, F=0x0, S=1, 8
-0, 295, 296, 1, 24, 0x4cdc0640, F=0x0, S=1, 8
-0, 296, 297, 1, 24, 0x519c0680, F=0x0, S=1, 8
-0, 297, 298, 1, 24, 0x565c06c0, F=0x0, S=1, 8
-0, 298, 299, 1, 24, 0x5b1c0700, F=0x0, S=1, 8
-0, 299, 300, 1, 24, 0x4cf00641, F=0x0, S=1, 8
-0, 300, 301, 1, 24, 0x51b00681, F=0x0, S=1, 8
-0, 301, 302, 1, 24, 0x567006c1, F=0x0, S=1, 8
-0, 302, 303, 1, 24, 0x5b300701, F=0x0, S=1, 8
-0, 303, 304, 1, 24, 0x4d040642, F=0x0, S=1, 8
-0, 304, 305, 1, 24, 0x51c40682, F=0x0, S=1, 8
-0, 305, 306, 1, 24, 0x568406c2, F=0x0, S=1, 8
-0, 306, 307, 1, 24, 0x5b440702, F=0x0, S=1, 8
-0, 307, 308, 1, 24, 0x4d180643, F=0x0, S=1, 8
-0, 308, 309, 1, 24, 0x51d80683, F=0x0, S=1, 8
-0, 309, 310, 1, 24, 0x569806c3, F=0x0, S=1, 8
-0, 310, 311, 1, 24, 0x5b580703, F=0x0, S=1, 8
-0, 311, 312, 1, 24, 0x4d2c0644, F=0x0, S=1, 8
-0, 312, 313, 1, 24, 0x51ec0684, F=0x0, S=1, 8
-0, 313, 314, 1, 24, 0x56ac06c4, F=0x0, S=1, 8
-0, 314, 315, 1, 24, 0x5b6c0704, F=0x0, S=1, 8
-0, 315, 316, 1, 24, 0x4d400645, F=0x0, S=1, 8
-0, 316, 317, 1, 24, 0x52000685, F=0x0, S=1, 8
-0, 317, 318, 1, 24, 0x56c006c5, F=0x0, S=1, 8
-0, 318, 319, 1, 24, 0x5b800705, F=0x0, S=1, 8
-0, 319, 320, 1, 24, 0x4d540646, F=0x0, S=1, 8
-0, 320, 321, 1, 24, 0x52140686, F=0x0, S=1, 8
-0, 321, 322, 1, 24, 0x56d406c6, F=0x0, S=1, 8
-0, 322, 323, 1, 24, 0x5b940706, F=0x0, S=1, 8
-0, 323, 324, 1, 24, 0x4d680647, F=0x0, S=1, 8
-0, 324, 325, 1, 24, 0x52280687, F=0x0, S=1, 8
-0, 325, 326, 1, 24, 0x56e806c7, F=0x0, S=1, 8
-0, 326, 327, 1, 24, 0x5ba80707, F=0x0, S=1, 8
-0, 327, 328, 1, 24, 0x4d7c0648, F=0x0, S=1, 8
-0, 328, 329, 1, 24, 0x523c0688, F=0x0, S=1, 8
-0, 329, 330, 1, 24, 0x56fc06c8, F=0x0, S=1, 8
-0, 330, 331, 1, 24, 0x5bbc0708, F=0x0, S=1, 8
-0, 331, 332, 1, 24, 0x4d900649, F=0x0, S=1, 8
-0, 332, 333, 1, 24, 0x52500689, F=0x0, S=1, 8
-0, 333, 334, 1, 24, 0x571006c9, F=0x0, S=1, 8
-0, 334, 335, 1, 24, 0x5bd00709, F=0x0, S=1, 8
-0, 335, 336, 1, 24, 0x4da4064a, F=0x0, S=1, 8
-0, 336, 337, 1, 24, 0x5264068a, F=0x0, S=1, 8
-0, 337, 338, 1, 24, 0x572406ca, F=0x0, S=1, 8
-0, 338, 339, 1, 24, 0x5be4070a, F=0x0, S=1, 8
-0, 339, 340, 1, 24, 0x4db8064b, F=0x0, S=1, 8
-0, 340, 341, 1, 24, 0x5278068b, F=0x0, S=1, 8
-0, 341, 342, 1, 24, 0x573806cb, F=0x0, S=1, 8
-0, 342, 343, 1, 24, 0x5bf8070b, F=0x0, S=1, 8
-0, 343, 344, 1, 24, 0x4dcc064c, F=0x0, S=1, 8
-0, 344, 345, 1, 24, 0x528c068c, F=0x0, S=1, 8
-0, 345, 346, 1, 24, 0x574c06cc, F=0x0, S=1, 8
-0, 346, 347, 1, 24, 0x5c0c070c, F=0x0, S=1, 8
-0, 347, 348, 1, 24, 0x4de0064d, F=0x0, S=1, 8
-0, 348, 349, 1, 24, 0x52a0068d, F=0x0, S=1, 8
-0, 349, 350, 1, 24, 0x576006cd, F=0x0, S=1, 8
-0, 350, 351, 1, 24, 0x5c20070d, F=0x0, S=1, 8
-0, 351, 352, 1, 24, 0x4df4064e, F=0x0, S=1, 8
-0, 352, 353, 1, 24, 0x52b4068e, F=0x0, S=1, 8
-0, 353, 354, 1, 24, 0x577406ce, F=0x0, S=1, 8
-0, 354, 355, 1, 24, 0x5c34070e, F=0x0, S=1, 8
-0, 355, 356, 1, 24, 0x4e08064f, F=0x0, S=1, 8
-0, 356, 357, 1, 24, 0x52c8068f, F=0x0, S=1, 8
-0, 357, 358, 1, 24, 0x578806cf, F=0x0, S=1, 8
-0, 358, 359, 1, 24, 0x5c48070f, F=0x0, S=1, 8
-0, 359, 360, 1, 24, 0x4e1c0650, F=0x0, S=1, 8
-0, 360, 361, 1, 24, 0x52dc0690, F=0x0, S=1, 8
-0, 361, 362, 1, 24, 0x579c06d0, F=0x0, S=1, 8
-0, 362, 363, 1, 24, 0x5c5c0710, F=0x0, S=1, 8
-0, 363, 364, 1, 24, 0x4e300651, F=0x0, S=1, 8
-0, 364, 365, 1, 24, 0x52f00691, F=0x0, S=1, 8
-0, 365, 366, 1, 24, 0x57b006d1, F=0x0, S=1, 8
-0, 366, 367, 1, 24, 0x5c700711, F=0x0, S=1, 8
-0, 367, 368, 1, 24, 0x4e440652, F=0x0, S=1, 8
-0, 368, 369, 1, 24, 0x53040692, F=0x0, S=1, 8
-0, 369, 370, 1, 24, 0x57c406d2, F=0x0, S=1, 8
-0, 370, 371, 1, 24, 0x5c840712, F=0x0, S=1, 8
-0, 371, 372, 1, 24, 0x4e580653, F=0x0, S=1, 8
-0, 372, 373, 1, 24, 0x53180693, F=0x0, S=1, 8
-0, 373, 374, 1, 24, 0x57d806d3, F=0x0, S=1, 8
-0, 374, 375, 1, 24, 0x5c980713, F=0x0, S=1, 8
-0, 375, 376, 1, 24, 0x4e6c0654, F=0x0, S=1, 8
-0, 376, 377, 1, 24, 0x532c0694, F=0x0, S=1, 8
-0, 377, 378, 1, 24, 0x57ec06d4, F=0x0, S=1, 8
-0, 378, 379, 1, 24, 0x5cac0714, F=0x0, S=1, 8
-0, 379, 380, 1, 24, 0x4e800655, F=0x0, S=1, 8
-0, 380, 381, 1, 24, 0x53400695, F=0x0, S=1, 8
-0, 381, 382, 1, 24, 0x580006d5, F=0x0, S=1, 8
-0, 382, 383, 1, 24, 0x5cc00715, F=0x0, S=1, 8
-0, 383, 384, 1, 24, 0x4e940656, F=0x0, S=1, 8
-0, 384, 385, 1, 24, 0x53540696, F=0x0, S=1, 8
-0, 385, 386, 1, 24, 0x581406d6, F=0x0, S=1, 8
-0, 386, 387, 1, 24, 0x5cd40716, F=0x0, S=1, 8
-0, 387, 388, 1, 24, 0x4ea80657, F=0x0, S=1, 8
-0, 388, 389, 1, 24, 0x53680697, F=0x0, S=1, 8
-0, 389, 390, 1, 24, 0x582806d7, F=0x0, S=1, 8
-0, 390, 391, 1, 24, 0x5ce80717, F=0x0, S=1, 8
-0, 391, 392, 1, 24, 0x4ebc0658, F=0x0, S=1, 8
-0, 392, 393, 1, 24, 0x537c0698, F=0x0, S=1, 8
-0, 393, 394, 1, 24, 0x583c06d8, F=0x0, S=1, 8
-0, 394, 395, 1, 24, 0x5cfc0718, F=0x0, S=1, 8
-0, 395, 396, 1, 24, 0x4ed00659, F=0x0, S=1, 8
-0, 396, 397, 1, 24, 0x53900699, F=0x0, S=1, 8
-0, 397, 398, 1, 24, 0x585006d9, F=0x0, S=1, 8
-0, 398, 399, 1, 24, 0x5d100719, F=0x0, S=1, 8
-0, 399, 400, 1, 24, 0x4ee4065a, F=0x0, S=1, 8
-0, 400, 401, 1, 24, 0x53a4069a, F=0x0, S=1, 8
-0, 401, 402, 1, 24, 0x586406da, F=0x0, S=1, 8
-0, 402, 403, 1, 24, 0x5d24071a, F=0x0, S=1, 8
-0, 403, 404, 1, 24, 0x4ef8065b, F=0x0, S=1, 8
-0, 404, 405, 1, 24, 0x53b8069b, F=0x0, S=1, 8
-0, 405, 406, 1, 24, 0x587806db, F=0x0, S=1, 8
-0, 406, 407, 1, 24, 0x5d38071b, F=0x0, S=1, 8
-0, 407, 408, 1, 24, 0x4f0c065c, F=0x0, S=1, 8
-0, 408, 409, 1, 24, 0x53cc069c, F=0x0, S=1, 8
-0, 409, 410, 1, 24, 0x588c06dc, F=0x0, S=1, 8
-0, 410, 411, 1, 24, 0x5d4c071c, F=0x0, S=1, 8
-0, 411, 412, 1, 24, 0x4f20065d, F=0x0, S=1, 8
-0, 412, 413, 1, 24, 0x53e0069d, F=0x0, S=1, 8
-0, 413, 414, 1, 24, 0x58a006dd, F=0x0, S=1, 8
-0, 414, 415, 1, 24, 0x5d60071d, F=0x0, S=1, 8
-0, 415, 416, 1, 24, 0x4f34065e, F=0x0, S=1, 8
-0, 416, 417, 1, 24, 0x53f4069e, F=0x0, S=1, 8
-0, 417, 418, 1, 24, 0x58b406de, F=0x0, S=1, 8
-0, 418, 419, 1, 24, 0x5d74071e, F=0x0, S=1, 8
-0, 419, 420, 1, 24, 0x4f48065f, F=0x0, S=1, 8
-0, 420, 421, 1, 24, 0x5408069f, F=0x0, S=1, 8
-0, 421, 422, 1, 24, 0x58c806df, F=0x0, S=1, 8
-0, 422, 423, 1, 24, 0x5d88071f, F=0x0, S=1, 8
-0, 423, 424, 1, 24, 0x4f5c0660, F=0x0, S=1, 8
-0, 424, 425, 1, 24, 0x541c06a0, F=0x0, S=1, 8
-0, 425, 426, 1, 24, 0x58dc06e0, F=0x0, S=1, 8
-0, 426, 427, 1, 24, 0x5d9c0720, F=0x0, S=1, 8
-0, 427, 428, 1, 24, 0x4f700661, F=0x0, S=1, 8
-0, 428, 429, 1, 24, 0x543006a1, F=0x0, S=1, 8
-0, 429, 430, 1, 24, 0x58f006e1, F=0x0, S=1, 8
-0, 430, 431, 1, 24, 0x5db00721, F=0x0, S=1, 8
-0, 431, 432, 1, 24, 0x4f840662, F=0x0, S=1, 8
-0, 432, 433, 1, 24, 0x544406a2, F=0x0, S=1, 8
-0, 433, 434, 1, 24, 0x590406e2, F=0x0, S=1, 8
-0, 434, 435, 1, 24, 0x5dc40722, F=0x0, S=1, 8
-0, 435, 436, 1, 24, 0x4f980663, F=0x0, S=1, 8
-0, 436, 437, 1, 24, 0x545806a3, F=0x0, S=1, 8
-0, 437, 438, 1, 24, 0x591806e3, F=0x0, S=1, 8
-0, 438, 439, 1, 24, 0x5dd80723, F=0x0, S=1, 8
-0, 439, 440, 1, 24, 0x4fac0664, F=0x0, S=1, 8
-0, 440, 441, 1, 24, 0x546c06a4, F=0x0, S=1, 8
-0, 441, 442, 1, 24, 0x592c06e4, F=0x0, S=1, 8
-0, 442, 443, 1, 24, 0x5dec0724, F=0x0, S=1, 8
-0, 443, 444, 1, 24, 0x4fc00665, F=0x0, S=1, 8
-0, 444, 445, 1, 24, 0x548006a5, F=0x0, S=1, 8
-0, 445, 446, 1, 24, 0x594006e5, F=0x0, S=1, 8
-0, 446, 447, 1, 24, 0x5e000725, F=0x0, S=1, 8
-0, 447, 448, 1, 24, 0x4fd40666, F=0x0, S=1, 8
-0, 448, 449, 1, 24, 0x549406a6, F=0x0, S=1, 8
-0, 449, 450, 1, 24, 0x595406e6, F=0x0, S=1, 8
-0, 450, 451, 1, 24, 0x5e140726, F=0x0, S=1, 8
-0, 451, 452, 1, 24, 0x4fe80667, F=0x0, S=1, 8
-0, 452, 453, 1, 24, 0x54a806a7, F=0x0, S=1, 8
-0, 453, 454, 1, 24, 0x596806e7, F=0x0, S=1, 8
-0, 454, 455, 1, 24, 0x5e280727, F=0x0, S=1, 8
-0, 455, 456, 1, 24, 0x4ffc0668, F=0x0, S=1, 8
-0, 456, 457, 1, 24, 0x54bc06a8, F=0x0, S=1, 8
-0, 457, 458, 1, 24, 0x597c06e8, F=0x0, S=1, 8
-0, 458, 459, 1, 24, 0x5e3c0728, F=0x0, S=1, 8
-0, 459, 460, 1, 24, 0x50100669, F=0x0, S=1, 8
-0, 460, 461, 1, 24, 0x54d006a9, F=0x0, S=1, 8
-0, 461, 462, 1, 24, 0x599006e9, F=0x0, S=1, 8
-0, 462, 463, 1, 24, 0x5e500729, F=0x0, S=1, 8
-0, 463, 464, 1, 24, 0x5024066a, F=0x0, S=1, 8
-0, 464, 465, 1, 24, 0x54e406aa, F=0x0, S=1, 8
-0, 465, 466, 1, 24, 0x59a406ea, F=0x0, S=1, 8
-0, 466, 467, 1, 24, 0x5e64072a, F=0x0, S=1, 8
-0, 467, 468, 1, 24, 0x5038066b, F=0x0, S=1, 8
-0, 468, 469, 1, 24, 0x54f806ab, F=0x0, S=1, 8
-0, 469, 470, 1, 24, 0x59b806eb, F=0x0, S=1, 8
-0, 470, 471, 1, 24, 0x5e78072b, F=0x0, S=1, 8
-0, 471, 472, 1, 24, 0x504c066c, F=0x0, S=1, 8
-0, 472, 473, 1, 24, 0x550c06ac, F=0x0, S=1, 8
-0, 473, 474, 1, 24, 0x59cc06ec, F=0x0, S=1, 8
-0, 474, 475, 1, 24, 0x5e8c072c, F=0x0, S=1, 8
-0, 475, 476, 1, 24, 0x5060066d, F=0x0, S=1, 8
-0, 476, 477, 1, 24, 0x552006ad, F=0x0, S=1, 8
-0, 477, 478, 1, 24, 0x59e006ed, F=0x0, S=1, 8
-0, 478, 479, 1, 24, 0x5ea0072d, F=0x0, S=1, 8
-0, 479, 480, 1, 24, 0x5074066e, F=0x0, S=1, 8
-0, 480, 481, 1, 24, 0x553406ae, F=0x0, S=1, 8
-0, 481, 482, 1, 24, 0x59f406ee, F=0x0, S=1, 8
-0, 482, 483, 1, 24, 0x5eb4072e, F=0x0, S=1, 8
-0, 483, 484, 1, 24, 0x5088066f, F=0x0, S=1, 8
-0, 484, 485, 1, 24, 0x554806af, F=0x0, S=1, 8
-0, 485, 486, 1, 24, 0x5a0806ef, F=0x0, S=1, 8
-0, 486, 487, 1, 24, 0x5ec8072f, F=0x0, S=1, 8
-0, 487, 488, 1, 24, 0x509c0670, F=0x0, S=1, 8
-0, 488, 489, 1, 24, 0x555c06b0, F=0x0, S=1, 8
-0, 489, 490, 1, 24, 0x5a1c06f0, F=0x0, S=1, 8
-0, 490, 491, 1, 24, 0x5edc0730, F=0x0, S=1, 8
-0, 491, 492, 1, 24, 0x50b00671, F=0x0, S=1, 8
-0, 492, 493, 1, 24, 0x557006b1, F=0x0, S=1, 8
-0, 493, 494, 1, 24, 0x5a3006f1, F=0x0, S=1, 8
-0, 494, 495, 1, 24, 0x5ef00731, F=0x0, S=1, 8
-0, 495, 496, 1, 24, 0x50c40672, F=0x0, S=1, 8
-0, 496, 497, 1, 24, 0x558406b2, F=0x0, S=1, 8
-0, 497, 498, 1, 24, 0x5a4406f2, F=0x0, S=1, 8
-0, 498, 499, 1, 24, 0x5f040732, F=0x0, S=1, 8
-0, 499, 500, 1, 24, 0x50d80673, F=0x0, S=1, 8
-0, 500, 501, 1, 24, 0x559806b3, F=0x0, S=1, 8
-0, 501, 502, 1, 24, 0x5a5806f3, F=0x0, S=1, 8
-0, 502, 503, 1, 24, 0x5f180733, F=0x0, S=1, 8
-0, 503, 504, 1, 24, 0x50ec0674, F=0x0, S=1, 8
-0, 504, 505, 1, 24, 0x55ac06b4, F=0x0, S=1, 8
-0, 505, 506, 1, 24, 0x5a6c06f4, F=0x0, S=1, 8
-0, 506, 507, 1, 24, 0x5f2c0734, F=0x0, S=1, 8
-0, 507, 508, 1, 24, 0x51000675, F=0x0, S=1, 8
-0, 508, 509, 1, 24, 0x55c006b5, F=0x0, S=1, 8
-0, 509, 510, 1, 24, 0x5a8006f5, F=0x0, S=1, 8
-0, 510, 511, 1, 24, 0x5f400735, F=0x0, S=1, 8
-0, 511, 512, 1, 24, 0x51140676, F=0x0, S=1, 8
-0, 512, 513, 1, 24, 0x55d406b6, F=0x0, S=1, 8
-0, 513, 514, 1, 24, 0x5a9406f6, F=0x0, S=1, 8
-0, 514, 515, 1, 24, 0x5f540736, F=0x0, S=1, 8
-0, 515, 516, 1, 24, 0x51280677, F=0x0, S=1, 8
-0, 516, 517, 1, 24, 0x55e806b7, F=0x0, S=1, 8
-0, 517, 518, 1, 24, 0x5aa806f7, F=0x0, S=1, 8
-0, 518, 519, 1, 24, 0x5f680737, F=0x0, S=1, 8
-0, 519, 520, 1, 24, 0x513c0678, F=0x0, S=1, 8
-0, 520, 521, 1, 24, 0x55fc06b8, F=0x0, S=1, 8
-0, 521, 522, 1, 24, 0x5abc06f8, F=0x0, S=1, 8
-0, 522, 523, 1, 24, 0x5f7c0738, F=0x0, S=1, 8
-0, 523, 524, 1, 24, 0x51500679, F=0x0, S=1, 8
-0, 524, 525, 1, 24, 0x561006b9, F=0x0, S=1, 8
-0, 525, 526, 1, 57, 0x896e0f04, S=1, 8
-0, 526, 527, 1, 24, 0x4f1c0660, F=0x0, S=1, 8
-0, 527, 528, 1, 24, 0x53dc06a0, F=0x0, S=1, 8
-0, 528, 529, 1, 24, 0x589c06e0, F=0x0, S=1, 8
-0, 529, 530, 1, 24, 0x4a700621, F=0x0, S=1, 8
-0, 530, 531, 1, 24, 0x4f300661, F=0x0, S=1, 8
-0, 531, 532, 1, 24, 0x53f006a1, F=0x0, S=1, 8
-0, 532, 533, 1, 24, 0x58b006e1, F=0x0, S=1, 8
-0, 533, 534, 1, 24, 0x4a840622, F=0x0, S=1, 8
-0, 534, 535, 1, 24, 0x4f440662, F=0x0, S=1, 8
-0, 535, 536, 1, 24, 0x540406a2, F=0x0, S=1, 8
-0, 536, 537, 1, 24, 0x58c406e2, F=0x0, S=1, 8
-0, 537, 538, 1, 24, 0x4a980623, F=0x0, S=1, 8
-0, 538, 539, 1, 24, 0x4f580663, F=0x0, S=1, 8
-0, 539, 540, 1, 24, 0x541806a3, F=0x0, S=1, 8
-0, 540, 541, 1, 24, 0x58d806e3, F=0x0, S=1, 8
-0, 541, 542, 1, 24, 0x4aac0624, F=0x0, S=1, 8
-0, 542, 543, 1, 24, 0x4f6c0664, F=0x0, S=1, 8
-0, 543, 544, 1, 24, 0x542c06a4, F=0x0, S=1, 8
-0, 544, 545, 1, 24, 0x58ec06e4, F=0x0, S=1, 8
-0, 545, 546, 1, 24, 0x4ac00625, F=0x0, S=1, 8
-0, 546, 547, 1, 24, 0x4f800665, F=0x0, S=1, 8
-0, 547, 548, 1, 24, 0x544006a5, F=0x0, S=1, 8
-0, 548, 549, 1, 24, 0x590006e5, F=0x0, S=1, 8
-0, 549, 550, 1, 24, 0x4ad40626, F=0x0, S=1, 8
-0, 550, 551, 1, 24, 0x4f940666, F=0x0, S=1, 8
-0, 551, 552, 1, 24, 0x545406a6, F=0x0, S=1, 8
-0, 552, 553, 1, 24, 0x591406e6, F=0x0, S=1, 8
-0, 553, 554, 1, 24, 0x4ae80627, F=0x0, S=1, 8
-0, 554, 555, 1, 24, 0x4fa80667, F=0x0, S=1, 8
-0, 555, 556, 1, 24, 0x546806a7, F=0x0, S=1, 8
-0, 556, 557, 1, 24, 0x592806e7, F=0x0, S=1, 8
-0, 557, 558, 1, 24, 0x4afc0628, F=0x0, S=1, 8
-0, 558, 559, 1, 24, 0x4fbc0668, F=0x0, S=1, 8
-0, 559, 560, 1, 24, 0x547c06a8, F=0x0, S=1, 8
-0, 560, 561, 1, 24, 0x593c06e8, F=0x0, S=1, 8
-0, 561, 562, 1, 24, 0x4b100629, F=0x0, S=1, 8
-0, 562, 563, 1, 24, 0x4fd00669, F=0x0, S=1, 8
-0, 563, 564, 1, 24, 0x549006a9, F=0x0, S=1, 8
-0, 564, 565, 1, 24, 0x595006e9, F=0x0, S=1, 8
-0, 565, 566, 1, 24, 0x4b24062a, F=0x0, S=1, 8
-0, 566, 567, 1, 24, 0x4fe4066a, F=0x0, S=1, 8
-0, 567, 568, 1, 24, 0x54a406aa, F=0x0, S=1, 8
-0, 568, 569, 1, 24, 0x596406ea, F=0x0, S=1, 8
-0, 569, 570, 1, 24, 0x4b38062b, F=0x0, S=1, 8
-0, 570, 571, 1, 24, 0x4ff8066b, F=0x0, S=1, 8
-0, 571, 572, 1, 24, 0x54b806ab, F=0x0, S=1, 8
-0, 572, 573, 1, 24, 0x597806eb, F=0x0, S=1, 8
-0, 573, 574, 1, 24, 0x4b4c062c, F=0x0, S=1, 8
-0, 574, 575, 1, 24, 0x500c066c, F=0x0, S=1, 8
-0, 575, 576, 1, 57, 0x901d0f3f, S=1, 8
-0, 576, 577, 1, 24, 0x4f1c0660, F=0x0, S=1, 8
-0, 577, 578, 1, 24, 0x53dc06a0, F=0x0, S=1, 8
-0, 578, 579, 1, 24, 0x589c06e0, F=0x0, S=1, 8
-0, 579, 580, 1, 24, 0x4a700621, F=0x0, S=1, 8
-0, 580, 581, 1, 24, 0x4f300661, F=0x0, S=1, 8
-0, 581, 582, 1, 24, 0x53f006a1, F=0x0, S=1, 8
-0, 582, 583, 1, 24, 0x58b006e1, F=0x0, S=1, 8
-0, 583, 584, 1, 24, 0x4a840622, F=0x0, S=1, 8
-0, 584, 585, 1, 24, 0x4f440662, F=0x0, S=1, 8
-0, 585, 586, 1, 24, 0x540406a2, F=0x0, S=1, 8
-0, 586, 587, 1, 24, 0x58c406e2, F=0x0, S=1, 8
-0, 587, 588, 1, 24, 0x4a980623, F=0x0, S=1, 8
-0, 588, 589, 1, 24, 0x4f580663, F=0x0, S=1, 8
-0, 589, 590, 1, 24, 0x541806a3, F=0x0, S=1, 8
-0, 590, 591, 1, 24, 0x58d806e3, F=0x0, S=1, 8
-0, 591, 592, 1, 24, 0x4aac0624, F=0x0, S=1, 8
-0, 592, 593, 1, 24, 0x4f6c0664, F=0x0, S=1, 8
-0, 593, 594, 1, 24, 0x542c06a4, F=0x0, S=1, 8
-0, 594, 595, 1, 24, 0x58ec06e4, F=0x0, S=1, 8
-0, 595, 596, 1, 24, 0x4ac00625, F=0x0, S=1, 8
-0, 596, 597, 1, 24, 0x4f800665, F=0x0, S=1, 8
-0, 597, 598, 1, 24, 0x544006a5, F=0x0, S=1, 8
-0, 598, 599, 1, 24, 0x590006e5, F=0x0, S=1, 8
-0, 599, 600, 1, 24, 0x4ad40626, F=0x0, S=1, 8
-0, 600, 601, 1, 24, 0x4f940666, F=0x0, S=1, 8
-0, 601, 602, 1, 24, 0x545406a6, F=0x0, S=1, 8
-0, 602, 603, 1, 24, 0x591406e6, F=0x0, S=1, 8
-0, 603, 604, 1, 24, 0x4ae80627, F=0x0, S=1, 8
-0, 604, 605, 1, 24, 0x4fa80667, F=0x0, S=1, 8
-0, 605, 606, 1, 24, 0x546806a7, F=0x0, S=1, 8
-0, 606, 607, 1, 24, 0x592806e7, F=0x0, S=1, 8
-0, 607, 608, 1, 24, 0x4afc0628, F=0x0, S=1, 8
-0, 608, 609, 1, 24, 0x4fbc0668, F=0x0, S=1, 8
-0, 609, 610, 1, 24, 0x547c06a8, F=0x0, S=1, 8
-0, 610, 611, 1, 24, 0x593c06e8, F=0x0, S=1, 8
+0, -1, 0, 1, 57, 0x8baa0f1a, S=1, 8, 0x05ec00be
+0, 0, 1, 1, 24, 0x4f1c0660, F=0x0, S=1, 8, 0x076800ee
+0, 1, 2, 1, 24, 0x53dc06a0, F=0x0, S=1, 8, 0x076800ee
+0, 2, 3, 1, 24, 0x589c06e0, F=0x0, S=1, 8, 0x076800ee
+0, 3, 4, 1, 24, 0x4a700621, F=0x0, S=1, 8, 0x076800ee
+0, 4, 5, 1, 24, 0x4f300661, F=0x0, S=1, 8, 0x076800ee
+0, 5, 6, 1, 24, 0x53f006a1, F=0x0, S=1, 8, 0x076800ee
+0, 6, 7, 1, 24, 0x58b006e1, F=0x0, S=1, 8, 0x076800ee
+0, 7, 8, 1, 24, 0x4a840622, F=0x0, S=1, 8, 0x076800ee
+0, 8, 9, 1, 24, 0x4f440662, F=0x0, S=1, 8, 0x076800ee
+0, 9, 10, 1, 24, 0x540406a2, F=0x0, S=1, 8, 0x076800ee
+0, 10, 11, 1, 24, 0x58c406e2, F=0x0, S=1, 8, 0x076800ee
+0, 11, 12, 1, 24, 0x4a980623, F=0x0, S=1, 8, 0x076800ee
+0, 12, 13, 1, 24, 0x4f580663, F=0x0, S=1, 8, 0x076800ee
+0, 13, 14, 1, 24, 0x541806a3, F=0x0, S=1, 8, 0x076800ee
+0, 14, 15, 1, 24, 0x58d806e3, F=0x0, S=1, 8, 0x076800ee
+0, 15, 16, 1, 24, 0x4aac0624, F=0x0, S=1, 8, 0x076800ee
+0, 16, 17, 1, 24, 0x4f6c0664, F=0x0, S=1, 8, 0x076800ee
+0, 17, 18, 1, 24, 0x542c06a4, F=0x0, S=1, 8, 0x076800ee
+0, 18, 19, 1, 24, 0x58ec06e4, F=0x0, S=1, 8, 0x076800ee
+0, 19, 20, 1, 24, 0x4ac00625, F=0x0, S=1, 8, 0x076800ee
+0, 20, 21, 1, 24, 0x4f800665, F=0x0, S=1, 8, 0x076800ee
+0, 21, 22, 1, 24, 0x544006a5, F=0x0, S=1, 8, 0x076800ee
+0, 22, 23, 1, 24, 0x590006e5, F=0x0, S=1, 8, 0x076800ee
+0, 23, 24, 1, 24, 0x4ad40626, F=0x0, S=1, 8, 0x076800ee
+0, 24, 25, 1, 24, 0x4f940666, F=0x0, S=1, 8, 0x076800ee
+0, 25, 26, 1, 24, 0x545406a6, F=0x0, S=1, 8, 0x076800ee
+0, 26, 27, 1, 24, 0x591406e6, F=0x0, S=1, 8, 0x076800ee
+0, 27, 28, 1, 24, 0x4ae80627, F=0x0, S=1, 8, 0x076800ee
+0, 28, 29, 1, 24, 0x4fa80667, F=0x0, S=1, 8, 0x076800ee
+0, 29, 30, 1, 24, 0x546806a7, F=0x0, S=1, 8, 0x076800ee
+0, 30, 31, 1, 24, 0x592806e7, F=0x0, S=1, 8, 0x076800ee
+0, 31, 32, 1, 24, 0x4afc0628, F=0x0, S=1, 8, 0x076800ee
+0, 32, 33, 1, 24, 0x4fbc0668, F=0x0, S=1, 8, 0x076800ee
+0, 33, 34, 1, 24, 0x547c06a8, F=0x0, S=1, 8, 0x076800ee
+0, 34, 35, 1, 24, 0x593c06e8, F=0x0, S=1, 8, 0x076800ee
+0, 35, 36, 1, 24, 0x4b100629, F=0x0, S=1, 8, 0x076800ee
+0, 36, 37, 1, 24, 0x4fd00669, F=0x0, S=1, 8, 0x076800ee
+0, 37, 38, 1, 24, 0x549006a9, F=0x0, S=1, 8, 0x076800ee
+0, 38, 39, 1, 24, 0x595006e9, F=0x0, S=1, 8, 0x076800ee
+0, 39, 40, 1, 24, 0x4b24062a, F=0x0, S=1, 8, 0x076800ee
+0, 40, 41, 1, 24, 0x4fe4066a, F=0x0, S=1, 8, 0x076800ee
+0, 41, 42, 1, 24, 0x54a406aa, F=0x0, S=1, 8, 0x076800ee
+0, 42, 43, 1, 24, 0x596406ea, F=0x0, S=1, 8, 0x076800ee
+0, 43, 44, 1, 24, 0x4b38062b, F=0x0, S=1, 8, 0x076800ee
+0, 44, 45, 1, 24, 0x4ff8066b, F=0x0, S=1, 8, 0x076800ee
+0, 45, 46, 1, 24, 0x54b806ab, F=0x0, S=1, 8, 0x076800ee
+0, 46, 47, 1, 24, 0x597806eb, F=0x0, S=1, 8, 0x076800ee
+0, 47, 48, 1, 24, 0x4b4c062c, F=0x0, S=1, 8, 0x076800ee
+0, 48, 49, 1, 24, 0x500c066c, F=0x0, S=1, 8, 0x076800ee
+0, 49, 50, 1, 24, 0x54cc06ac, F=0x0, S=1, 8, 0x076800ee
+0, 50, 51, 1, 24, 0x598c06ec, F=0x0, S=1, 8, 0x076800ee
+0, 51, 52, 1, 24, 0x4b60062d, F=0x0, S=1, 8, 0x076800ee
+0, 52, 53, 1, 24, 0x5020066d, F=0x0, S=1, 8, 0x076800ee
+0, 53, 54, 1, 24, 0x54e006ad, F=0x0, S=1, 8, 0x076800ee
+0, 54, 55, 1, 24, 0x59a006ed, F=0x0, S=1, 8, 0x076800ee
+0, 55, 56, 1, 24, 0x4b74062e, F=0x0, S=1, 8, 0x076800ee
+0, 56, 57, 1, 24, 0x5034066e, F=0x0, S=1, 8, 0x076800ee
+0, 57, 58, 1, 24, 0x54f406ae, F=0x0, S=1, 8, 0x076800ee
+0, 58, 59, 1, 24, 0x59b406ee, F=0x0, S=1, 8, 0x076800ee
+0, 59, 60, 1, 24, 0x4b88062f, F=0x0, S=1, 8, 0x076800ee
+0, 60, 61, 1, 24, 0x5048066f, F=0x0, S=1, 8, 0x076800ee
+0, 61, 62, 1, 24, 0x550806af, F=0x0, S=1, 8, 0x076800ee
+0, 62, 63, 1, 24, 0x59c806ef, F=0x0, S=1, 8, 0x076800ee
+0, 63, 64, 1, 24, 0x4b9c0630, F=0x0, S=1, 8, 0x076800ee
+0, 64, 65, 1, 24, 0x505c0670, F=0x0, S=1, 8, 0x076800ee
+0, 65, 66, 1, 24, 0x551c06b0, F=0x0, S=1, 8, 0x076800ee
+0, 66, 67, 1, 24, 0x59dc06f0, F=0x0, S=1, 8, 0x076800ee
+0, 67, 68, 1, 24, 0x4bb00631, F=0x0, S=1, 8, 0x076800ee
+0, 68, 69, 1, 24, 0x50700671, F=0x0, S=1, 8, 0x076800ee
+0, 69, 70, 1, 24, 0x553006b1, F=0x0, S=1, 8, 0x076800ee
+0, 70, 71, 1, 24, 0x59f006f1, F=0x0, S=1, 8, 0x076800ee
+0, 71, 72, 1, 24, 0x4bc40632, F=0x0, S=1, 8, 0x076800ee
+0, 72, 73, 1, 24, 0x50840672, F=0x0, S=1, 8, 0x076800ee
+0, 73, 74, 1, 24, 0x554406b2, F=0x0, S=1, 8, 0x076800ee
+0, 74, 75, 1, 24, 0x5a0406f2, F=0x0, S=1, 8, 0x076800ee
+0, 75, 76, 1, 24, 0x4bd80633, F=0x0, S=1, 8, 0x076800ee
+0, 76, 77, 1, 24, 0x50980673, F=0x0, S=1, 8, 0x076800ee
+0, 77, 78, 1, 24, 0x555806b3, F=0x0, S=1, 8, 0x076800ee
+0, 78, 79, 1, 24, 0x5a1806f3, F=0x0, S=1, 8, 0x076800ee
+0, 79, 80, 1, 24, 0x4bec0634, F=0x0, S=1, 8, 0x076800ee
+0, 80, 81, 1, 24, 0x50ac0674, F=0x0, S=1, 8, 0x076800ee
+0, 81, 82, 1, 24, 0x556c06b4, F=0x0, S=1, 8, 0x076800ee
+0, 82, 83, 1, 24, 0x5a2c06f4, F=0x0, S=1, 8, 0x076800ee
+0, 83, 84, 1, 24, 0x4c000635, F=0x0, S=1, 8, 0x076800ee
+0, 84, 85, 1, 24, 0x50c00675, F=0x0, S=1, 8, 0x076800ee
+0, 85, 86, 1, 24, 0x558006b5, F=0x0, S=1, 8, 0x076800ee
+0, 86, 87, 1, 24, 0x5a4006f5, F=0x0, S=1, 8, 0x076800ee
+0, 87, 88, 1, 24, 0x4c140636, F=0x0, S=1, 8, 0x076800ee
+0, 88, 89, 1, 24, 0x50d40676, F=0x0, S=1, 8, 0x076800ee
+0, 89, 90, 1, 24, 0x559406b6, F=0x0, S=1, 8, 0x076800ee
+0, 90, 91, 1, 24, 0x5a5406f6, F=0x0, S=1, 8, 0x076800ee
+0, 91, 92, 1, 24, 0x4c280637, F=0x0, S=1, 8, 0x076800ee
+0, 92, 93, 1, 24, 0x50e80677, F=0x0, S=1, 8, 0x076800ee
+0, 93, 94, 1, 24, 0x55a806b7, F=0x0, S=1, 8, 0x076800ee
+0, 94, 95, 1, 24, 0x5a6806f7, F=0x0, S=1, 8, 0x076800ee
+0, 95, 96, 1, 24, 0x4c3c0638, F=0x0, S=1, 8, 0x076800ee
+0, 96, 97, 1, 24, 0x50fc0678, F=0x0, S=1, 8, 0x076800ee
+0, 97, 98, 1, 24, 0x55bc06b8, F=0x0, S=1, 8, 0x076800ee
+0, 98, 99, 1, 24, 0x5a7c06f8, F=0x0, S=1, 8, 0x076800ee
+0, 99, 100, 1, 24, 0x4c500639, F=0x0, S=1, 8, 0x076800ee
+0, 100, 101, 1, 24, 0x51100679, F=0x0, S=1, 8, 0x076800ee
+0, 101, 102, 1, 24, 0x55d006b9, F=0x0, S=1, 8, 0x076800ee
+0, 102, 103, 1, 24, 0x5a9006f9, F=0x0, S=1, 8, 0x076800ee
+0, 103, 104, 1, 24, 0x4c64063a, F=0x0, S=1, 8, 0x076800ee
+0, 104, 105, 1, 24, 0x5124067a, F=0x0, S=1, 8, 0x076800ee
+0, 105, 106, 1, 24, 0x55e406ba, F=0x0, S=1, 8, 0x076800ee
+0, 106, 107, 1, 24, 0x5aa406fa, F=0x0, S=1, 8, 0x076800ee
+0, 107, 108, 1, 24, 0x4c78063b, F=0x0, S=1, 8, 0x076800ee
+0, 108, 109, 1, 24, 0x5138067b, F=0x0, S=1, 8, 0x076800ee
+0, 109, 110, 1, 24, 0x55f806bb, F=0x0, S=1, 8, 0x076800ee
+0, 110, 111, 1, 24, 0x5ab806fb, F=0x0, S=1, 8, 0x076800ee
+0, 111, 112, 1, 24, 0x4c8c063c, F=0x0, S=1, 8, 0x076800ee
+0, 112, 113, 1, 24, 0x514c067c, F=0x0, S=1, 8, 0x076800ee
+0, 113, 114, 1, 24, 0x560c06bc, F=0x0, S=1, 8, 0x076800ee
+0, 114, 115, 1, 24, 0x5acc06fc, F=0x0, S=1, 8, 0x076800ee
+0, 115, 116, 1, 24, 0x4ca0063d, F=0x0, S=1, 8, 0x076800ee
+0, 116, 117, 1, 24, 0x5160067d, F=0x0, S=1, 8, 0x076800ee
+0, 117, 118, 1, 24, 0x562006bd, F=0x0, S=1, 8, 0x076800ee
+0, 118, 119, 1, 24, 0x5ae006fd, F=0x0, S=1, 8, 0x076800ee
+0, 119, 120, 1, 24, 0x4cb4063e, F=0x0, S=1, 8, 0x076800ee
+0, 120, 121, 1, 24, 0x5174067e, F=0x0, S=1, 8, 0x076800ee
+0, 121, 122, 1, 24, 0x563406be, F=0x0, S=1, 8, 0x076800ee
+0, 122, 123, 1, 24, 0x5af406fe, F=0x0, S=1, 8, 0x076800ee
+0, 123, 124, 1, 24, 0x4cc8063f, F=0x0, S=1, 8, 0x076800ee
+0, 124, 125, 1, 24, 0x5188067f, F=0x0, S=1, 8, 0x076800ee
+0, 125, 126, 1, 24, 0x564806bf, F=0x0, S=1, 8, 0x076800ee
+0, 126, 127, 1, 24, 0x5b0806ff, F=0x0, S=1, 8, 0x076800ee
+0, 127, 128, 1, 24, 0x4cdc0640, F=0x0, S=1, 8, 0x076800ee
+0, 128, 129, 1, 24, 0x519c0680, F=0x0, S=1, 8, 0x076800ee
+0, 129, 130, 1, 24, 0x565c06c0, F=0x0, S=1, 8, 0x076800ee
+0, 130, 131, 1, 24, 0x5b1c0700, F=0x0, S=1, 8, 0x076800ee
+0, 131, 132, 1, 24, 0x4cf00641, F=0x0, S=1, 8, 0x076800ee
+0, 132, 133, 1, 24, 0x51b00681, F=0x0, S=1, 8, 0x076800ee
+0, 133, 134, 1, 24, 0x567006c1, F=0x0, S=1, 8, 0x076800ee
+0, 134, 135, 1, 24, 0x5b300701, F=0x0, S=1, 8, 0x076800ee
+0, 135, 136, 1, 24, 0x4d040642, F=0x0, S=1, 8, 0x076800ee
+0, 136, 137, 1, 24, 0x51c40682, F=0x0, S=1, 8, 0x076800ee
+0, 137, 138, 1, 24, 0x568406c2, F=0x0, S=1, 8, 0x076800ee
+0, 138, 139, 1, 24, 0x5b440702, F=0x0, S=1, 8, 0x076800ee
+0, 139, 140, 1, 24, 0x4d180643, F=0x0, S=1, 8, 0x076800ee
+0, 140, 141, 1, 24, 0x51d80683, F=0x0, S=1, 8, 0x076800ee
+0, 141, 142, 1, 24, 0x569806c3, F=0x0, S=1, 8, 0x076800ee
+0, 142, 143, 1, 24, 0x5b580703, F=0x0, S=1, 8, 0x076800ee
+0, 143, 144, 1, 24, 0x4d2c0644, F=0x0, S=1, 8, 0x076800ee
+0, 144, 145, 1, 24, 0x51ec0684, F=0x0, S=1, 8, 0x076800ee
+0, 145, 146, 1, 24, 0x56ac06c4, F=0x0, S=1, 8, 0x076800ee
+0, 146, 147, 1, 24, 0x5b6c0704, F=0x0, S=1, 8, 0x076800ee
+0, 147, 148, 1, 24, 0x4d400645, F=0x0, S=1, 8, 0x076800ee
+0, 148, 149, 1, 24, 0x52000685, F=0x0, S=1, 8, 0x076800ee
+0, 149, 150, 1, 24, 0x56c006c5, F=0x0, S=1, 8, 0x076800ee
+0, 150, 151, 1, 24, 0x5b800705, F=0x0, S=1, 8, 0x076800ee
+0, 151, 152, 1, 24, 0x4d540646, F=0x0, S=1, 8, 0x076800ee
+0, 152, 153, 1, 24, 0x52140686, F=0x0, S=1, 8, 0x076800ee
+0, 153, 154, 1, 24, 0x56d406c6, F=0x0, S=1, 8, 0x076800ee
+0, 154, 155, 1, 24, 0x5b940706, F=0x0, S=1, 8, 0x076800ee
+0, 155, 156, 1, 24, 0x4d680647, F=0x0, S=1, 8, 0x076800ee
+0, 156, 157, 1, 24, 0x52280687, F=0x0, S=1, 8, 0x076800ee
+0, 157, 158, 1, 24, 0x56e806c7, F=0x0, S=1, 8, 0x076800ee
+0, 158, 159, 1, 24, 0x5ba80707, F=0x0, S=1, 8, 0x076800ee
+0, 159, 160, 1, 24, 0x4d7c0648, F=0x0, S=1, 8, 0x076800ee
+0, 160, 161, 1, 24, 0x523c0688, F=0x0, S=1, 8, 0x076800ee
+0, 161, 162, 1, 24, 0x56fc06c8, F=0x0, S=1, 8, 0x076800ee
+0, 162, 163, 1, 24, 0x5bbc0708, F=0x0, S=1, 8, 0x076800ee
+0, 163, 164, 1, 24, 0x4d900649, F=0x0, S=1, 8, 0x076800ee
+0, 164, 165, 1, 24, 0x52500689, F=0x0, S=1, 8, 0x076800ee
+0, 165, 166, 1, 24, 0x571006c9, F=0x0, S=1, 8, 0x076800ee
+0, 166, 167, 1, 24, 0x5bd00709, F=0x0, S=1, 8, 0x076800ee
+0, 167, 168, 1, 57, 0x97cf0f83, S=1, 8, 0x05ec00be
+0, 168, 169, 1, 24, 0x4f1c0660, F=0x0, S=1, 8, 0x076800ee
+0, 169, 170, 1, 24, 0x53dc06a0, F=0x0, S=1, 8, 0x076800ee
+0, 170, 171, 1, 24, 0x589c06e0, F=0x0, S=1, 8, 0x076800ee
+0, 171, 172, 1, 24, 0x4a700621, F=0x0, S=1, 8, 0x076800ee
+0, 172, 173, 1, 24, 0x4f300661, F=0x0, S=1, 8, 0x076800ee
+0, 173, 174, 1, 24, 0x53f006a1, F=0x0, S=1, 8, 0x076800ee
+0, 174, 175, 1, 24, 0x58b006e1, F=0x0, S=1, 8, 0x076800ee
+0, 175, 176, 1, 24, 0x4a840622, F=0x0, S=1, 8, 0x076800ee
+0, 176, 177, 1, 24, 0x4f440662, F=0x0, S=1, 8, 0x076800ee
+0, 177, 178, 1, 24, 0x540406a2, F=0x0, S=1, 8, 0x076800ee
+0, 178, 179, 1, 24, 0x58c406e2, F=0x0, S=1, 8, 0x076800ee
+0, 179, 180, 1, 24, 0x4a980623, F=0x0, S=1, 8, 0x076800ee
+0, 180, 181, 1, 24, 0x4f580663, F=0x0, S=1, 8, 0x076800ee
+0, 181, 182, 1, 24, 0x541806a3, F=0x0, S=1, 8, 0x076800ee
+0, 182, 183, 1, 24, 0x58d806e3, F=0x0, S=1, 8, 0x076800ee
+0, 183, 184, 1, 24, 0x4aac0624, F=0x0, S=1, 8, 0x076800ee
+0, 184, 185, 1, 24, 0x4f6c0664, F=0x0, S=1, 8, 0x076800ee
+0, 185, 186, 1, 24, 0x542c06a4, F=0x0, S=1, 8, 0x076800ee
+0, 186, 187, 1, 24, 0x58ec06e4, F=0x0, S=1, 8, 0x076800ee
+0, 187, 188, 1, 24, 0x4ac00625, F=0x0, S=1, 8, 0x076800ee
+0, 188, 189, 1, 24, 0x4f800665, F=0x0, S=1, 8, 0x076800ee
+0, 189, 190, 1, 24, 0x544006a5, F=0x0, S=1, 8, 0x076800ee
+0, 190, 191, 1, 24, 0x590006e5, F=0x0, S=1, 8, 0x076800ee
+0, 191, 192, 1, 24, 0x4ad40626, F=0x0, S=1, 8, 0x076800ee
+0, 192, 193, 1, 24, 0x4f940666, F=0x0, S=1, 8, 0x076800ee
+0, 193, 194, 1, 24, 0x545406a6, F=0x0, S=1, 8, 0x076800ee
+0, 194, 195, 1, 24, 0x591406e6, F=0x0, S=1, 8, 0x076800ee
+0, 195, 196, 1, 24, 0x4ae80627, F=0x0, S=1, 8, 0x076800ee
+0, 196, 197, 1, 24, 0x4fa80667, F=0x0, S=1, 8, 0x076800ee
+0, 197, 198, 1, 24, 0x546806a7, F=0x0, S=1, 8, 0x076800ee
+0, 198, 199, 1, 24, 0x592806e7, F=0x0, S=1, 8, 0x076800ee
+0, 199, 200, 1, 24, 0x4afc0628, F=0x0, S=1, 8, 0x076800ee
+0, 200, 201, 1, 24, 0x4fbc0668, F=0x0, S=1, 8, 0x076800ee
+0, 201, 202, 1, 24, 0x547c06a8, F=0x0, S=1, 8, 0x076800ee
+0, 202, 203, 1, 24, 0x593c06e8, F=0x0, S=1, 8, 0x076800ee
+0, 203, 204, 1, 24, 0x4b100629, F=0x0, S=1, 8, 0x076800ee
+0, 204, 205, 1, 24, 0x4fd00669, F=0x0, S=1, 8, 0x076800ee
+0, 205, 206, 1, 24, 0x549006a9, F=0x0, S=1, 8, 0x076800ee
+0, 206, 207, 1, 24, 0x595006e9, F=0x0, S=1, 8, 0x076800ee
+0, 207, 208, 1, 24, 0x4b24062a, F=0x0, S=1, 8, 0x076800ee
+0, 208, 209, 1, 24, 0x4fe4066a, F=0x0, S=1, 8, 0x076800ee
+0, 209, 210, 1, 24, 0x54a406aa, F=0x0, S=1, 8, 0x076800ee
+0, 210, 211, 1, 24, 0x596406ea, F=0x0, S=1, 8, 0x076800ee
+0, 211, 212, 1, 24, 0x4b38062b, F=0x0, S=1, 8, 0x076800ee
+0, 212, 213, 1, 24, 0x4ff8066b, F=0x0, S=1, 8, 0x076800ee
+0, 213, 214, 1, 24, 0x54b806ab, F=0x0, S=1, 8, 0x076800ee
+0, 214, 215, 1, 24, 0x597806eb, F=0x0, S=1, 8, 0x076800ee
+0, 215, 216, 1, 24, 0x4b4c062c, F=0x0, S=1, 8, 0x076800ee
+0, 216, 217, 1, 24, 0x500c066c, F=0x0, S=1, 8, 0x076800ee
+0, 217, 218, 1, 24, 0x54cc06ac, F=0x0, S=1, 8, 0x076800ee
+0, 218, 219, 1, 24, 0x598c06ec, F=0x0, S=1, 8, 0x076800ee
+0, 219, 220, 1, 24, 0x4b60062d, F=0x0, S=1, 8, 0x076800ee
+0, 220, 221, 1, 24, 0x5020066d, F=0x0, S=1, 8, 0x076800ee
+0, 221, 222, 1, 24, 0x54e006ad, F=0x0, S=1, 8, 0x076800ee
+0, 222, 223, 1, 24, 0x59a006ed, F=0x0, S=1, 8, 0x076800ee
+0, 223, 224, 1, 24, 0x4b74062e, F=0x0, S=1, 8, 0x076800ee
+0, 224, 225, 1, 24, 0x5034066e, F=0x0, S=1, 8, 0x076800ee
+0, 225, 226, 1, 24, 0x54f406ae, F=0x0, S=1, 8, 0x076800ee
+0, 226, 227, 1, 24, 0x59b406ee, F=0x0, S=1, 8, 0x076800ee
+0, 227, 228, 1, 24, 0x4b88062f, F=0x0, S=1, 8, 0x076800ee
+0, 228, 229, 1, 24, 0x5048066f, F=0x0, S=1, 8, 0x076800ee
+0, 229, 230, 1, 24, 0x550806af, F=0x0, S=1, 8, 0x076800ee
+0, 230, 231, 1, 24, 0x59c806ef, F=0x0, S=1, 8, 0x076800ee
+0, 231, 232, 1, 24, 0x4b9c0630, F=0x0, S=1, 8, 0x076800ee
+0, 232, 233, 1, 24, 0x505c0670, F=0x0, S=1, 8, 0x076800ee
+0, 233, 234, 1, 24, 0x551c06b0, F=0x0, S=1, 8, 0x076800ee
+0, 234, 235, 1, 24, 0x59dc06f0, F=0x0, S=1, 8, 0x076800ee
+0, 235, 236, 1, 24, 0x4bb00631, F=0x0, S=1, 8, 0x076800ee
+0, 236, 237, 1, 24, 0x50700671, F=0x0, S=1, 8, 0x076800ee
+0, 237, 238, 1, 24, 0x553006b1, F=0x0, S=1, 8, 0x076800ee
+0, 238, 239, 1, 24, 0x59f006f1, F=0x0, S=1, 8, 0x076800ee
+0, 239, 240, 1, 24, 0x4bc40632, F=0x0, S=1, 8, 0x076800ee
+0, 240, 241, 1, 24, 0x50840672, F=0x0, S=1, 8, 0x076800ee
+0, 241, 242, 1, 24, 0x554406b2, F=0x0, S=1, 8, 0x076800ee
+0, 242, 243, 1, 24, 0x5a0406f2, F=0x0, S=1, 8, 0x076800ee
+0, 243, 244, 1, 24, 0x4bd80633, F=0x0, S=1, 8, 0x076800ee
+0, 244, 245, 1, 24, 0x50980673, F=0x0, S=1, 8, 0x076800ee
+0, 245, 246, 1, 24, 0x555806b3, F=0x0, S=1, 8, 0x076800ee
+0, 246, 247, 1, 24, 0x5a1806f3, F=0x0, S=1, 8, 0x076800ee
+0, 247, 248, 1, 24, 0x4bec0634, F=0x0, S=1, 8, 0x076800ee
+0, 248, 249, 1, 24, 0x50ac0674, F=0x0, S=1, 8, 0x076800ee
+0, 249, 250, 1, 24, 0x556c06b4, F=0x0, S=1, 8, 0x076800ee
+0, 250, 251, 1, 24, 0x5a2c06f4, F=0x0, S=1, 8, 0x076800ee
+0, 251, 252, 1, 24, 0x4c000635, F=0x0, S=1, 8, 0x076800ee
+0, 252, 253, 1, 24, 0x50c00675, F=0x0, S=1, 8, 0x076800ee
+0, 253, 254, 1, 24, 0x558006b5, F=0x0, S=1, 8, 0x076800ee
+0, 254, 255, 1, 24, 0x5a4006f5, F=0x0, S=1, 8, 0x076800ee
+0, 255, 256, 1, 24, 0x4c140636, F=0x0, S=1, 8, 0x076800ee
+0, 256, 257, 1, 24, 0x50d40676, F=0x0, S=1, 8, 0x076800ee
+0, 257, 258, 1, 24, 0x559406b6, F=0x0, S=1, 8, 0x076800ee
+0, 258, 259, 1, 24, 0x5a5406f6, F=0x0, S=1, 8, 0x076800ee
+0, 259, 260, 1, 24, 0x4c280637, F=0x0, S=1, 8, 0x076800ee
+0, 260, 261, 1, 24, 0x50e80677, F=0x0, S=1, 8, 0x076800ee
+0, 261, 262, 1, 24, 0x55a806b7, F=0x0, S=1, 8, 0x076800ee
+0, 262, 263, 1, 24, 0x5a6806f7, F=0x0, S=1, 8, 0x076800ee
+0, 263, 264, 1, 24, 0x4c3c0638, F=0x0, S=1, 8, 0x076800ee
+0, 264, 265, 1, 24, 0x50fc0678, F=0x0, S=1, 8, 0x076800ee
+0, 265, 266, 1, 24, 0x55bc06b8, F=0x0, S=1, 8, 0x076800ee
+0, 266, 267, 1, 24, 0x5a7c06f8, F=0x0, S=1, 8, 0x076800ee
+0, 267, 268, 1, 24, 0x4c500639, F=0x0, S=1, 8, 0x076800ee
+0, 268, 269, 1, 24, 0x51100679, F=0x0, S=1, 8, 0x076800ee
+0, 269, 270, 1, 24, 0x55d006b9, F=0x0, S=1, 8, 0x076800ee
+0, 270, 271, 1, 24, 0x5a9006f9, F=0x0, S=1, 8, 0x076800ee
+0, 271, 272, 1, 24, 0x4c64063a, F=0x0, S=1, 8, 0x076800ee
+0, 272, 273, 1, 24, 0x5124067a, F=0x0, S=1, 8, 0x076800ee
+0, 273, 274, 1, 24, 0x55e406ba, F=0x0, S=1, 8, 0x076800ee
+0, 274, 275, 1, 24, 0x5aa406fa, F=0x0, S=1, 8, 0x076800ee
+0, 275, 276, 1, 24, 0x4c78063b, F=0x0, S=1, 8, 0x076800ee
+0, 276, 277, 1, 24, 0x5138067b, F=0x0, S=1, 8, 0x076800ee
+0, 277, 278, 1, 24, 0x55f806bb, F=0x0, S=1, 8, 0x076800ee
+0, 278, 279, 1, 24, 0x5ab806fb, F=0x0, S=1, 8, 0x076800ee
+0, 279, 280, 1, 24, 0x4c8c063c, F=0x0, S=1, 8, 0x076800ee
+0, 280, 281, 1, 24, 0x514c067c, F=0x0, S=1, 8, 0x076800ee
+0, 281, 282, 1, 24, 0x560c06bc, F=0x0, S=1, 8, 0x076800ee
+0, 282, 283, 1, 24, 0x5acc06fc, F=0x0, S=1, 8, 0x076800ee
+0, 283, 284, 1, 24, 0x4ca0063d, F=0x0, S=1, 8, 0x076800ee
+0, 284, 285, 1, 24, 0x5160067d, F=0x0, S=1, 8, 0x076800ee
+0, 285, 286, 1, 24, 0x562006bd, F=0x0, S=1, 8, 0x076800ee
+0, 286, 287, 1, 24, 0x5ae006fd, F=0x0, S=1, 8, 0x076800ee
+0, 287, 288, 1, 24, 0x4cb4063e, F=0x0, S=1, 8, 0x076800ee
+0, 288, 289, 1, 24, 0x5174067e, F=0x0, S=1, 8, 0x076800ee
+0, 289, 290, 1, 24, 0x563406be, F=0x0, S=1, 8, 0x076800ee
+0, 290, 291, 1, 24, 0x5af406fe, F=0x0, S=1, 8, 0x076800ee
+0, 291, 292, 1, 24, 0x4cc8063f, F=0x0, S=1, 8, 0x076800ee
+0, 292, 293, 1, 24, 0x5188067f, F=0x0, S=1, 8, 0x076800ee
+0, 293, 294, 1, 24, 0x564806bf, F=0x0, S=1, 8, 0x076800ee
+0, 294, 295, 1, 24, 0x5b0806ff, F=0x0, S=1, 8, 0x076800ee
+0, 295, 296, 1, 24, 0x4cdc0640, F=0x0, S=1, 8, 0x076800ee
+0, 296, 297, 1, 24, 0x519c0680, F=0x0, S=1, 8, 0x076800ee
+0, 297, 298, 1, 24, 0x565c06c0, F=0x0, S=1, 8, 0x076800ee
+0, 298, 299, 1, 24, 0x5b1c0700, F=0x0, S=1, 8, 0x076800ee
+0, 299, 300, 1, 24, 0x4cf00641, F=0x0, S=1, 8, 0x076800ee
+0, 300, 301, 1, 24, 0x51b00681, F=0x0, S=1, 8, 0x076800ee
+0, 301, 302, 1, 24, 0x567006c1, F=0x0, S=1, 8, 0x076800ee
+0, 302, 303, 1, 24, 0x5b300701, F=0x0, S=1, 8, 0x076800ee
+0, 303, 304, 1, 24, 0x4d040642, F=0x0, S=1, 8, 0x076800ee
+0, 304, 305, 1, 24, 0x51c40682, F=0x0, S=1, 8, 0x076800ee
+0, 305, 306, 1, 24, 0x568406c2, F=0x0, S=1, 8, 0x076800ee
+0, 306, 307, 1, 24, 0x5b440702, F=0x0, S=1, 8, 0x076800ee
+0, 307, 308, 1, 24, 0x4d180643, F=0x0, S=1, 8, 0x076800ee
+0, 308, 309, 1, 24, 0x51d80683, F=0x0, S=1, 8, 0x076800ee
+0, 309, 310, 1, 24, 0x569806c3, F=0x0, S=1, 8, 0x076800ee
+0, 310, 311, 1, 24, 0x5b580703, F=0x0, S=1, 8, 0x076800ee
+0, 311, 312, 1, 24, 0x4d2c0644, F=0x0, S=1, 8, 0x076800ee
+0, 312, 313, 1, 24, 0x51ec0684, F=0x0, S=1, 8, 0x076800ee
+0, 313, 314, 1, 24, 0x56ac06c4, F=0x0, S=1, 8, 0x076800ee
+0, 314, 315, 1, 24, 0x5b6c0704, F=0x0, S=1, 8, 0x076800ee
+0, 315, 316, 1, 24, 0x4d400645, F=0x0, S=1, 8, 0x076800ee
+0, 316, 317, 1, 24, 0x52000685, F=0x0, S=1, 8, 0x076800ee
+0, 317, 318, 1, 24, 0x56c006c5, F=0x0, S=1, 8, 0x076800ee
+0, 318, 319, 1, 24, 0x5b800705, F=0x0, S=1, 8, 0x076800ee
+0, 319, 320, 1, 24, 0x4d540646, F=0x0, S=1, 8, 0x076800ee
+0, 320, 321, 1, 24, 0x52140686, F=0x0, S=1, 8, 0x076800ee
+0, 321, 322, 1, 24, 0x56d406c6, F=0x0, S=1, 8, 0x076800ee
+0, 322, 323, 1, 24, 0x5b940706, F=0x0, S=1, 8, 0x076800ee
+0, 323, 324, 1, 24, 0x4d680647, F=0x0, S=1, 8, 0x076800ee
+0, 324, 325, 1, 24, 0x52280687, F=0x0, S=1, 8, 0x076800ee
+0, 325, 326, 1, 24, 0x56e806c7, F=0x0, S=1, 8, 0x076800ee
+0, 326, 327, 1, 24, 0x5ba80707, F=0x0, S=1, 8, 0x076800ee
+0, 327, 328, 1, 24, 0x4d7c0648, F=0x0, S=1, 8, 0x076800ee
+0, 328, 329, 1, 24, 0x523c0688, F=0x0, S=1, 8, 0x076800ee
+0, 329, 330, 1, 24, 0x56fc06c8, F=0x0, S=1, 8, 0x076800ee
+0, 330, 331, 1, 24, 0x5bbc0708, F=0x0, S=1, 8, 0x076800ee
+0, 331, 332, 1, 24, 0x4d900649, F=0x0, S=1, 8, 0x076800ee
+0, 332, 333, 1, 24, 0x52500689, F=0x0, S=1, 8, 0x076800ee
+0, 333, 334, 1, 24, 0x571006c9, F=0x0, S=1, 8, 0x076800ee
+0, 334, 335, 1, 24, 0x5bd00709, F=0x0, S=1, 8, 0x076800ee
+0, 335, 336, 1, 24, 0x4da4064a, F=0x0, S=1, 8, 0x076800ee
+0, 336, 337, 1, 24, 0x5264068a, F=0x0, S=1, 8, 0x076800ee
+0, 337, 338, 1, 24, 0x572406ca, F=0x0, S=1, 8, 0x076800ee
+0, 338, 339, 1, 24, 0x5be4070a, F=0x0, S=1, 8, 0x076800ee
+0, 339, 340, 1, 24, 0x4db8064b, F=0x0, S=1, 8, 0x076800ee
+0, 340, 341, 1, 24, 0x5278068b, F=0x0, S=1, 8, 0x076800ee
+0, 341, 342, 1, 24, 0x573806cb, F=0x0, S=1, 8, 0x076800ee
+0, 342, 343, 1, 24, 0x5bf8070b, F=0x0, S=1, 8, 0x076800ee
+0, 343, 344, 1, 24, 0x4dcc064c, F=0x0, S=1, 8, 0x076800ee
+0, 344, 345, 1, 24, 0x528c068c, F=0x0, S=1, 8, 0x076800ee
+0, 345, 346, 1, 24, 0x574c06cc, F=0x0, S=1, 8, 0x076800ee
+0, 346, 347, 1, 24, 0x5c0c070c, F=0x0, S=1, 8, 0x076800ee
+0, 347, 348, 1, 24, 0x4de0064d, F=0x0, S=1, 8, 0x076800ee
+0, 348, 349, 1, 24, 0x52a0068d, F=0x0, S=1, 8, 0x076800ee
+0, 349, 350, 1, 24, 0x576006cd, F=0x0, S=1, 8, 0x076800ee
+0, 350, 351, 1, 24, 0x5c20070d, F=0x0, S=1, 8, 0x076800ee
+0, 351, 352, 1, 24, 0x4df4064e, F=0x0, S=1, 8, 0x076800ee
+0, 352, 353, 1, 24, 0x52b4068e, F=0x0, S=1, 8, 0x076800ee
+0, 353, 354, 1, 24, 0x577406ce, F=0x0, S=1, 8, 0x076800ee
+0, 354, 355, 1, 24, 0x5c34070e, F=0x0, S=1, 8, 0x076800ee
+0, 355, 356, 1, 24, 0x4e08064f, F=0x0, S=1, 8, 0x076800ee
+0, 356, 357, 1, 24, 0x52c8068f, F=0x0, S=1, 8, 0x076800ee
+0, 357, 358, 1, 24, 0x578806cf, F=0x0, S=1, 8, 0x076800ee
+0, 358, 359, 1, 24, 0x5c48070f, F=0x0, S=1, 8, 0x076800ee
+0, 359, 360, 1, 24, 0x4e1c0650, F=0x0, S=1, 8, 0x076800ee
+0, 360, 361, 1, 24, 0x52dc0690, F=0x0, S=1, 8, 0x076800ee
+0, 361, 362, 1, 24, 0x579c06d0, F=0x0, S=1, 8, 0x076800ee
+0, 362, 363, 1, 24, 0x5c5c0710, F=0x0, S=1, 8, 0x076800ee
+0, 363, 364, 1, 24, 0x4e300651, F=0x0, S=1, 8, 0x076800ee
+0, 364, 365, 1, 24, 0x52f00691, F=0x0, S=1, 8, 0x076800ee
+0, 365, 366, 1, 24, 0x57b006d1, F=0x0, S=1, 8, 0x076800ee
+0, 366, 367, 1, 24, 0x5c700711, F=0x0, S=1, 8, 0x076800ee
+0, 367, 368, 1, 24, 0x4e440652, F=0x0, S=1, 8, 0x076800ee
+0, 368, 369, 1, 24, 0x53040692, F=0x0, S=1, 8, 0x076800ee
+0, 369, 370, 1, 24, 0x57c406d2, F=0x0, S=1, 8, 0x076800ee
+0, 370, 371, 1, 24, 0x5c840712, F=0x0, S=1, 8, 0x076800ee
+0, 371, 372, 1, 24, 0x4e580653, F=0x0, S=1, 8, 0x076800ee
+0, 372, 373, 1, 24, 0x53180693, F=0x0, S=1, 8, 0x076800ee
+0, 373, 374, 1, 24, 0x57d806d3, F=0x0, S=1, 8, 0x076800ee
+0, 374, 375, 1, 24, 0x5c980713, F=0x0, S=1, 8, 0x076800ee
+0, 375, 376, 1, 24, 0x4e6c0654, F=0x0, S=1, 8, 0x076800ee
+0, 376, 377, 1, 24, 0x532c0694, F=0x0, S=1, 8, 0x076800ee
+0, 377, 378, 1, 24, 0x57ec06d4, F=0x0, S=1, 8, 0x076800ee
+0, 378, 379, 1, 24, 0x5cac0714, F=0x0, S=1, 8, 0x076800ee
+0, 379, 380, 1, 24, 0x4e800655, F=0x0, S=1, 8, 0x076800ee
+0, 380, 381, 1, 24, 0x53400695, F=0x0, S=1, 8, 0x076800ee
+0, 381, 382, 1, 24, 0x580006d5, F=0x0, S=1, 8, 0x076800ee
+0, 382, 383, 1, 24, 0x5cc00715, F=0x0, S=1, 8, 0x076800ee
+0, 383, 384, 1, 24, 0x4e940656, F=0x0, S=1, 8, 0x076800ee
+0, 384, 385, 1, 24, 0x53540696, F=0x0, S=1, 8, 0x076800ee
+0, 385, 386, 1, 24, 0x581406d6, F=0x0, S=1, 8, 0x076800ee
+0, 386, 387, 1, 24, 0x5cd40716, F=0x0, S=1, 8, 0x076800ee
+0, 387, 388, 1, 24, 0x4ea80657, F=0x0, S=1, 8, 0x076800ee
+0, 388, 389, 1, 24, 0x53680697, F=0x0, S=1, 8, 0x076800ee
+0, 389, 390, 1, 24, 0x582806d7, F=0x0, S=1, 8, 0x076800ee
+0, 390, 391, 1, 24, 0x5ce80717, F=0x0, S=1, 8, 0x076800ee
+0, 391, 392, 1, 24, 0x4ebc0658, F=0x0, S=1, 8, 0x076800ee
+0, 392, 393, 1, 24, 0x537c0698, F=0x0, S=1, 8, 0x076800ee
+0, 393, 394, 1, 24, 0x583c06d8, F=0x0, S=1, 8, 0x076800ee
+0, 394, 395, 1, 24, 0x5cfc0718, F=0x0, S=1, 8, 0x076800ee
+0, 395, 396, 1, 24, 0x4ed00659, F=0x0, S=1, 8, 0x076800ee
+0, 396, 397, 1, 24, 0x53900699, F=0x0, S=1, 8, 0x076800ee
+0, 397, 398, 1, 24, 0x585006d9, F=0x0, S=1, 8, 0x076800ee
+0, 398, 399, 1, 24, 0x5d100719, F=0x0, S=1, 8, 0x076800ee
+0, 399, 400, 1, 24, 0x4ee4065a, F=0x0, S=1, 8, 0x076800ee
+0, 400, 401, 1, 24, 0x53a4069a, F=0x0, S=1, 8, 0x076800ee
+0, 401, 402, 1, 24, 0x586406da, F=0x0, S=1, 8, 0x076800ee
+0, 402, 403, 1, 24, 0x5d24071a, F=0x0, S=1, 8, 0x076800ee
+0, 403, 404, 1, 24, 0x4ef8065b, F=0x0, S=1, 8, 0x076800ee
+0, 404, 405, 1, 24, 0x53b8069b, F=0x0, S=1, 8, 0x076800ee
+0, 405, 406, 1, 24, 0x587806db, F=0x0, S=1, 8, 0x076800ee
+0, 406, 407, 1, 24, 0x5d38071b, F=0x0, S=1, 8, 0x076800ee
+0, 407, 408, 1, 24, 0x4f0c065c, F=0x0, S=1, 8, 0x076800ee
+0, 408, 409, 1, 24, 0x53cc069c, F=0x0, S=1, 8, 0x076800ee
+0, 409, 410, 1, 24, 0x588c06dc, F=0x0, S=1, 8, 0x076800ee
+0, 410, 411, 1, 24, 0x5d4c071c, F=0x0, S=1, 8, 0x076800ee
+0, 411, 412, 1, 24, 0x4f20065d, F=0x0, S=1, 8, 0x076800ee
+0, 412, 413, 1, 24, 0x53e0069d, F=0x0, S=1, 8, 0x076800ee
+0, 413, 414, 1, 24, 0x58a006dd, F=0x0, S=1, 8, 0x076800ee
+0, 414, 415, 1, 24, 0x5d60071d, F=0x0, S=1, 8, 0x076800ee
+0, 415, 416, 1, 24, 0x4f34065e, F=0x0, S=1, 8, 0x076800ee
+0, 416, 417, 1, 24, 0x53f4069e, F=0x0, S=1, 8, 0x076800ee
+0, 417, 418, 1, 24, 0x58b406de, F=0x0, S=1, 8, 0x076800ee
+0, 418, 419, 1, 24, 0x5d74071e, F=0x0, S=1, 8, 0x076800ee
+0, 419, 420, 1, 24, 0x4f48065f, F=0x0, S=1, 8, 0x076800ee
+0, 420, 421, 1, 24, 0x5408069f, F=0x0, S=1, 8, 0x076800ee
+0, 421, 422, 1, 24, 0x58c806df, F=0x0, S=1, 8, 0x076800ee
+0, 422, 423, 1, 24, 0x5d88071f, F=0x0, S=1, 8, 0x076800ee
+0, 423, 424, 1, 24, 0x4f5c0660, F=0x0, S=1, 8, 0x076800ee
+0, 424, 425, 1, 24, 0x541c06a0, F=0x0, S=1, 8, 0x076800ee
+0, 425, 426, 1, 24, 0x58dc06e0, F=0x0, S=1, 8, 0x076800ee
+0, 426, 427, 1, 24, 0x5d9c0720, F=0x0, S=1, 8, 0x076800ee
+0, 427, 428, 1, 24, 0x4f700661, F=0x0, S=1, 8, 0x076800ee
+0, 428, 429, 1, 24, 0x543006a1, F=0x0, S=1, 8, 0x076800ee
+0, 429, 430, 1, 24, 0x58f006e1, F=0x0, S=1, 8, 0x076800ee
+0, 430, 431, 1, 24, 0x5db00721, F=0x0, S=1, 8, 0x076800ee
+0, 431, 432, 1, 24, 0x4f840662, F=0x0, S=1, 8, 0x076800ee
+0, 432, 433, 1, 24, 0x544406a2, F=0x0, S=1, 8, 0x076800ee
+0, 433, 434, 1, 24, 0x590406e2, F=0x0, S=1, 8, 0x076800ee
+0, 434, 435, 1, 24, 0x5dc40722, F=0x0, S=1, 8, 0x076800ee
+0, 435, 436, 1, 24, 0x4f980663, F=0x0, S=1, 8, 0x076800ee
+0, 436, 437, 1, 24, 0x545806a3, F=0x0, S=1, 8, 0x076800ee
+0, 437, 438, 1, 24, 0x591806e3, F=0x0, S=1, 8, 0x076800ee
+0, 438, 439, 1, 24, 0x5dd80723, F=0x0, S=1, 8, 0x076800ee
+0, 439, 440, 1, 24, 0x4fac0664, F=0x0, S=1, 8, 0x076800ee
+0, 440, 441, 1, 24, 0x546c06a4, F=0x0, S=1, 8, 0x076800ee
+0, 441, 442, 1, 24, 0x592c06e4, F=0x0, S=1, 8, 0x076800ee
+0, 442, 443, 1, 24, 0x5dec0724, F=0x0, S=1, 8, 0x076800ee
+0, 443, 444, 1, 24, 0x4fc00665, F=0x0, S=1, 8, 0x076800ee
+0, 444, 445, 1, 24, 0x548006a5, F=0x0, S=1, 8, 0x076800ee
+0, 445, 446, 1, 24, 0x594006e5, F=0x0, S=1, 8, 0x076800ee
+0, 446, 447, 1, 24, 0x5e000725, F=0x0, S=1, 8, 0x076800ee
+0, 447, 448, 1, 24, 0x4fd40666, F=0x0, S=1, 8, 0x076800ee
+0, 448, 449, 1, 24, 0x549406a6, F=0x0, S=1, 8, 0x076800ee
+0, 449, 450, 1, 24, 0x595406e6, F=0x0, S=1, 8, 0x076800ee
+0, 450, 451, 1, 24, 0x5e140726, F=0x0, S=1, 8, 0x076800ee
+0, 451, 452, 1, 24, 0x4fe80667, F=0x0, S=1, 8, 0x076800ee
+0, 452, 453, 1, 24, 0x54a806a7, F=0x0, S=1, 8, 0x076800ee
+0, 453, 454, 1, 24, 0x596806e7, F=0x0, S=1, 8, 0x076800ee
+0, 454, 455, 1, 24, 0x5e280727, F=0x0, S=1, 8, 0x076800ee
+0, 455, 456, 1, 24, 0x4ffc0668, F=0x0, S=1, 8, 0x076800ee
+0, 456, 457, 1, 24, 0x54bc06a8, F=0x0, S=1, 8, 0x076800ee
+0, 457, 458, 1, 24, 0x597c06e8, F=0x0, S=1, 8, 0x076800ee
+0, 458, 459, 1, 24, 0x5e3c0728, F=0x0, S=1, 8, 0x076800ee
+0, 459, 460, 1, 24, 0x50100669, F=0x0, S=1, 8, 0x076800ee
+0, 460, 461, 1, 24, 0x54d006a9, F=0x0, S=1, 8, 0x076800ee
+0, 461, 462, 1, 24, 0x599006e9, F=0x0, S=1, 8, 0x076800ee
+0, 462, 463, 1, 24, 0x5e500729, F=0x0, S=1, 8, 0x076800ee
+0, 463, 464, 1, 24, 0x5024066a, F=0x0, S=1, 8, 0x076800ee
+0, 464, 465, 1, 24, 0x54e406aa, F=0x0, S=1, 8, 0x076800ee
+0, 465, 466, 1, 24, 0x59a406ea, F=0x0, S=1, 8, 0x076800ee
+0, 466, 467, 1, 24, 0x5e64072a, F=0x0, S=1, 8, 0x076800ee
+0, 467, 468, 1, 24, 0x5038066b, F=0x0, S=1, 8, 0x076800ee
+0, 468, 469, 1, 24, 0x54f806ab, F=0x0, S=1, 8, 0x076800ee
+0, 469, 470, 1, 24, 0x59b806eb, F=0x0, S=1, 8, 0x076800ee
+0, 470, 471, 1, 24, 0x5e78072b, F=0x0, S=1, 8, 0x076800ee
+0, 471, 472, 1, 24, 0x504c066c, F=0x0, S=1, 8, 0x076800ee
+0, 472, 473, 1, 24, 0x550c06ac, F=0x0, S=1, 8, 0x076800ee
+0, 473, 474, 1, 24, 0x59cc06ec, F=0x0, S=1, 8, 0x076800ee
+0, 474, 475, 1, 24, 0x5e8c072c, F=0x0, S=1, 8, 0x076800ee
+0, 475, 476, 1, 24, 0x5060066d, F=0x0, S=1, 8, 0x076800ee
+0, 476, 477, 1, 24, 0x552006ad, F=0x0, S=1, 8, 0x076800ee
+0, 477, 478, 1, 24, 0x59e006ed, F=0x0, S=1, 8, 0x076800ee
+0, 478, 479, 1, 24, 0x5ea0072d, F=0x0, S=1, 8, 0x076800ee
+0, 479, 480, 1, 24, 0x5074066e, F=0x0, S=1, 8, 0x076800ee
+0, 480, 481, 1, 24, 0x553406ae, F=0x0, S=1, 8, 0x076800ee
+0, 481, 482, 1, 24, 0x59f406ee, F=0x0, S=1, 8, 0x076800ee
+0, 482, 483, 1, 24, 0x5eb4072e, F=0x0, S=1, 8, 0x076800ee
+0, 483, 484, 1, 24, 0x5088066f, F=0x0, S=1, 8, 0x076800ee
+0, 484, 485, 1, 24, 0x554806af, F=0x0, S=1, 8, 0x076800ee
+0, 485, 486, 1, 24, 0x5a0806ef, F=0x0, S=1, 8, 0x076800ee
+0, 486, 487, 1, 24, 0x5ec8072f, F=0x0, S=1, 8, 0x076800ee
+0, 487, 488, 1, 24, 0x509c0670, F=0x0, S=1, 8, 0x076800ee
+0, 488, 489, 1, 24, 0x555c06b0, F=0x0, S=1, 8, 0x076800ee
+0, 489, 490, 1, 24, 0x5a1c06f0, F=0x0, S=1, 8, 0x076800ee
+0, 490, 491, 1, 24, 0x5edc0730, F=0x0, S=1, 8, 0x076800ee
+0, 491, 492, 1, 24, 0x50b00671, F=0x0, S=1, 8, 0x076800ee
+0, 492, 493, 1, 24, 0x557006b1, F=0x0, S=1, 8, 0x076800ee
+0, 493, 494, 1, 24, 0x5a3006f1, F=0x0, S=1, 8, 0x076800ee
+0, 494, 495, 1, 24, 0x5ef00731, F=0x0, S=1, 8, 0x076800ee
+0, 495, 496, 1, 24, 0x50c40672, F=0x0, S=1, 8, 0x076800ee
+0, 496, 497, 1, 24, 0x558406b2, F=0x0, S=1, 8, 0x076800ee
+0, 497, 498, 1, 24, 0x5a4406f2, F=0x0, S=1, 8, 0x076800ee
+0, 498, 499, 1, 24, 0x5f040732, F=0x0, S=1, 8, 0x076800ee
+0, 499, 500, 1, 24, 0x50d80673, F=0x0, S=1, 8, 0x076800ee
+0, 500, 501, 1, 24, 0x559806b3, F=0x0, S=1, 8, 0x076800ee
+0, 501, 502, 1, 24, 0x5a5806f3, F=0x0, S=1, 8, 0x076800ee
+0, 502, 503, 1, 24, 0x5f180733, F=0x0, S=1, 8, 0x076800ee
+0, 503, 504, 1, 24, 0x50ec0674, F=0x0, S=1, 8, 0x076800ee
+0, 504, 505, 1, 24, 0x55ac06b4, F=0x0, S=1, 8, 0x076800ee
+0, 505, 506, 1, 24, 0x5a6c06f4, F=0x0, S=1, 8, 0x076800ee
+0, 506, 507, 1, 24, 0x5f2c0734, F=0x0, S=1, 8, 0x076800ee
+0, 507, 508, 1, 24, 0x51000675, F=0x0, S=1, 8, 0x076800ee
+0, 508, 509, 1, 24, 0x55c006b5, F=0x0, S=1, 8, 0x076800ee
+0, 509, 510, 1, 24, 0x5a8006f5, F=0x0, S=1, 8, 0x076800ee
+0, 510, 511, 1, 24, 0x5f400735, F=0x0, S=1, 8, 0x076800ee
+0, 511, 512, 1, 24, 0x51140676, F=0x0, S=1, 8, 0x076800ee
+0, 512, 513, 1, 24, 0x55d406b6, F=0x0, S=1, 8, 0x076800ee
+0, 513, 514, 1, 24, 0x5a9406f6, F=0x0, S=1, 8, 0x076800ee
+0, 514, 515, 1, 24, 0x5f540736, F=0x0, S=1, 8, 0x076800ee
+0, 515, 516, 1, 24, 0x51280677, F=0x0, S=1, 8, 0x076800ee
+0, 516, 517, 1, 24, 0x55e806b7, F=0x0, S=1, 8, 0x076800ee
+0, 517, 518, 1, 24, 0x5aa806f7, F=0x0, S=1, 8, 0x076800ee
+0, 518, 519, 1, 24, 0x5f680737, F=0x0, S=1, 8, 0x076800ee
+0, 519, 520, 1, 24, 0x513c0678, F=0x0, S=1, 8, 0x076800ee
+0, 520, 521, 1, 24, 0x55fc06b8, F=0x0, S=1, 8, 0x076800ee
+0, 521, 522, 1, 24, 0x5abc06f8, F=0x0, S=1, 8, 0x076800ee
+0, 522, 523, 1, 24, 0x5f7c0738, F=0x0, S=1, 8, 0x076800ee
+0, 523, 524, 1, 24, 0x51500679, F=0x0, S=1, 8, 0x076800ee
+0, 524, 525, 1, 24, 0x561006b9, F=0x0, S=1, 8, 0x076800ee
+0, 525, 526, 1, 57, 0x896e0f04, S=1, 8, 0x05ec00be
+0, 526, 527, 1, 24, 0x4f1c0660, F=0x0, S=1, 8, 0x076800ee
+0, 527, 528, 1, 24, 0x53dc06a0, F=0x0, S=1, 8, 0x076800ee
+0, 528, 529, 1, 24, 0x589c06e0, F=0x0, S=1, 8, 0x076800ee
+0, 529, 530, 1, 24, 0x4a700621, F=0x0, S=1, 8, 0x076800ee
+0, 530, 531, 1, 24, 0x4f300661, F=0x0, S=1, 8, 0x076800ee
+0, 531, 532, 1, 24, 0x53f006a1, F=0x0, S=1, 8, 0x076800ee
+0, 532, 533, 1, 24, 0x58b006e1, F=0x0, S=1, 8, 0x076800ee
+0, 533, 534, 1, 24, 0x4a840622, F=0x0, S=1, 8, 0x076800ee
+0, 534, 535, 1, 24, 0x4f440662, F=0x0, S=1, 8, 0x076800ee
+0, 535, 536, 1, 24, 0x540406a2, F=0x0, S=1, 8, 0x076800ee
+0, 536, 537, 1, 24, 0x58c406e2, F=0x0, S=1, 8, 0x076800ee
+0, 537, 538, 1, 24, 0x4a980623, F=0x0, S=1, 8, 0x076800ee
+0, 538, 539, 1, 24, 0x4f580663, F=0x0, S=1, 8, 0x076800ee
+0, 539, 540, 1, 24, 0x541806a3, F=0x0, S=1, 8, 0x076800ee
+0, 540, 541, 1, 24, 0x58d806e3, F=0x0, S=1, 8, 0x076800ee
+0, 541, 542, 1, 24, 0x4aac0624, F=0x0, S=1, 8, 0x076800ee
+0, 542, 543, 1, 24, 0x4f6c0664, F=0x0, S=1, 8, 0x076800ee
+0, 543, 544, 1, 24, 0x542c06a4, F=0x0, S=1, 8, 0x076800ee
+0, 544, 545, 1, 24, 0x58ec06e4, F=0x0, S=1, 8, 0x076800ee
+0, 545, 546, 1, 24, 0x4ac00625, F=0x0, S=1, 8, 0x076800ee
+0, 546, 547, 1, 24, 0x4f800665, F=0x0, S=1, 8, 0x076800ee
+0, 547, 548, 1, 24, 0x544006a5, F=0x0, S=1, 8, 0x076800ee
+0, 548, 549, 1, 24, 0x590006e5, F=0x0, S=1, 8, 0x076800ee
+0, 549, 550, 1, 24, 0x4ad40626, F=0x0, S=1, 8, 0x076800ee
+0, 550, 551, 1, 24, 0x4f940666, F=0x0, S=1, 8, 0x076800ee
+0, 551, 552, 1, 24, 0x545406a6, F=0x0, S=1, 8, 0x076800ee
+0, 552, 553, 1, 24, 0x591406e6, F=0x0, S=1, 8, 0x076800ee
+0, 553, 554, 1, 24, 0x4ae80627, F=0x0, S=1, 8, 0x076800ee
+0, 554, 555, 1, 24, 0x4fa80667, F=0x0, S=1, 8, 0x076800ee
+0, 555, 556, 1, 24, 0x546806a7, F=0x0, S=1, 8, 0x076800ee
+0, 556, 557, 1, 24, 0x592806e7, F=0x0, S=1, 8, 0x076800ee
+0, 557, 558, 1, 24, 0x4afc0628, F=0x0, S=1, 8, 0x076800ee
+0, 558, 559, 1, 24, 0x4fbc0668, F=0x0, S=1, 8, 0x076800ee
+0, 559, 560, 1, 24, 0x547c06a8, F=0x0, S=1, 8, 0x076800ee
+0, 560, 561, 1, 24, 0x593c06e8, F=0x0, S=1, 8, 0x076800ee
+0, 561, 562, 1, 24, 0x4b100629, F=0x0, S=1, 8, 0x076800ee
+0, 562, 563, 1, 24, 0x4fd00669, F=0x0, S=1, 8, 0x076800ee
+0, 563, 564, 1, 24, 0x549006a9, F=0x0, S=1, 8, 0x076800ee
+0, 564, 565, 1, 24, 0x595006e9, F=0x0, S=1, 8, 0x076800ee
+0, 565, 566, 1, 24, 0x4b24062a, F=0x0, S=1, 8, 0x076800ee
+0, 566, 567, 1, 24, 0x4fe4066a, F=0x0, S=1, 8, 0x076800ee
+0, 567, 568, 1, 24, 0x54a406aa, F=0x0, S=1, 8, 0x076800ee
+0, 568, 569, 1, 24, 0x596406ea, F=0x0, S=1, 8, 0x076800ee
+0, 569, 570, 1, 24, 0x4b38062b, F=0x0, S=1, 8, 0x076800ee
+0, 570, 571, 1, 24, 0x4ff8066b, F=0x0, S=1, 8, 0x076800ee
+0, 571, 572, 1, 24, 0x54b806ab, F=0x0, S=1, 8, 0x076800ee
+0, 572, 573, 1, 24, 0x597806eb, F=0x0, S=1, 8, 0x076800ee
+0, 573, 574, 1, 24, 0x4b4c062c, F=0x0, S=1, 8, 0x076800ee
+0, 574, 575, 1, 24, 0x500c066c, F=0x0, S=1, 8, 0x076800ee
+0, 575, 576, 1, 57, 0x901d0f3f, S=1, 8, 0x05ec00be
+0, 576, 577, 1, 24, 0x4f1c0660, F=0x0, S=1, 8, 0x076800ee
+0, 577, 578, 1, 24, 0x53dc06a0, F=0x0, S=1, 8, 0x076800ee
+0, 578, 579, 1, 24, 0x589c06e0, F=0x0, S=1, 8, 0x076800ee
+0, 579, 580, 1, 24, 0x4a700621, F=0x0, S=1, 8, 0x076800ee
+0, 580, 581, 1, 24, 0x4f300661, F=0x0, S=1, 8, 0x076800ee
+0, 581, 582, 1, 24, 0x53f006a1, F=0x0, S=1, 8, 0x076800ee
+0, 582, 583, 1, 24, 0x58b006e1, F=0x0, S=1, 8, 0x076800ee
+0, 583, 584, 1, 24, 0x4a840622, F=0x0, S=1, 8, 0x076800ee
+0, 584, 585, 1, 24, 0x4f440662, F=0x0, S=1, 8, 0x076800ee
+0, 585, 586, 1, 24, 0x540406a2, F=0x0, S=1, 8, 0x076800ee
+0, 586, 587, 1, 24, 0x58c406e2, F=0x0, S=1, 8, 0x076800ee
+0, 587, 588, 1, 24, 0x4a980623, F=0x0, S=1, 8, 0x076800ee
+0, 588, 589, 1, 24, 0x4f580663, F=0x0, S=1, 8, 0x076800ee
+0, 589, 590, 1, 24, 0x541806a3, F=0x0, S=1, 8, 0x076800ee
+0, 590, 591, 1, 24, 0x58d806e3, F=0x0, S=1, 8, 0x076800ee
+0, 591, 592, 1, 24, 0x4aac0624, F=0x0, S=1, 8, 0x076800ee
+0, 592, 593, 1, 24, 0x4f6c0664, F=0x0, S=1, 8, 0x076800ee
+0, 593, 594, 1, 24, 0x542c06a4, F=0x0, S=1, 8, 0x076800ee
+0, 594, 595, 1, 24, 0x58ec06e4, F=0x0, S=1, 8, 0x076800ee
+0, 595, 596, 1, 24, 0x4ac00625, F=0x0, S=1, 8, 0x076800ee
+0, 596, 597, 1, 24, 0x4f800665, F=0x0, S=1, 8, 0x076800ee
+0, 597, 598, 1, 24, 0x544006a5, F=0x0, S=1, 8, 0x076800ee
+0, 598, 599, 1, 24, 0x590006e5, F=0x0, S=1, 8, 0x076800ee
+0, 599, 600, 1, 24, 0x4ad40626, F=0x0, S=1, 8, 0x076800ee
+0, 600, 601, 1, 24, 0x4f940666, F=0x0, S=1, 8, 0x076800ee
+0, 601, 602, 1, 24, 0x545406a6, F=0x0, S=1, 8, 0x076800ee
+0, 602, 603, 1, 24, 0x591406e6, F=0x0, S=1, 8, 0x076800ee
+0, 603, 604, 1, 24, 0x4ae80627, F=0x0, S=1, 8, 0x076800ee
+0, 604, 605, 1, 24, 0x4fa80667, F=0x0, S=1, 8, 0x076800ee
+0, 605, 606, 1, 24, 0x546806a7, F=0x0, S=1, 8, 0x076800ee
+0, 606, 607, 1, 24, 0x592806e7, F=0x0, S=1, 8, 0x076800ee
+0, 607, 608, 1, 24, 0x4afc0628, F=0x0, S=1, 8, 0x076800ee
+0, 608, 609, 1, 24, 0x4fbc0668, F=0x0, S=1, 8, 0x076800ee
+0, 609, 610, 1, 24, 0x547c06a8, F=0x0, S=1, 8, 0x076800ee
+0, 610, 611, 1, 24, 0x593c06e8, F=0x0, S=1, 8, 0x076800ee
diff --git a/tests/ref/fate/gapless-mp3 b/tests/ref/fate/gapless-mp3
index 578db55534e..c81168ecea2 100644
--- a/tests/ref/fate/gapless-mp3
+++ b/tests/ref/fate/gapless-mp3
@@ -1,5 +1,5 @@
-d7e884aea266b63f1547f1ad10188c08 *tests/data/fate/gapless-mp3.out-1
+f019ded6e72b62993b8c12af7ca2a7b9 *tests/data/fate/gapless-mp3.out-1
c96c3ae7bd3300fd2f4debac222de5b7
-75bc539914297a191f40af2d737d7380 *tests/data/fate/gapless-mp3.out-2
+a7c7a5d3fd88f50e61377a6cd4adcc1f *tests/data/fate/gapless-mp3.out-2
c96c3ae7bd3300fd2f4debac222de5b7
-ab21e0bd0c2d84426153d4cde919a1e3 *tests/data/fate/gapless-mp3.out-3
+1bc7462e7ebaaf54fc5123414fd0fd74 *tests/data/fate/gapless-mp3.out-3
diff --git a/tests/ref/fate/h264_redundant_pps-side_data b/tests/ref/fate/h264_redundant_pps-side_data
index c1c00eebaec..373312222bd 100644
--- a/tests/ref/fate/h264_redundant_pps-side_data
+++ b/tests/ref/fate/h264_redundant_pps-side_data
@@ -6,7 +6,7 @@ a35cca13c3f91d1a279bf576b8264d05 *tests/data/fate/h264_redundant_pps-side_data.n
#codec_id 0: h264
#dimensions 0: 1920x1080
#sar 0: 0/1
-0, -2002, 0, 2002, 247959, 0xdb721881, S=1, 34
+0, -2002, 0, 2002, 247959, 0xdb721881, S=1, 34, 0x850408e3
0, 0, 4004, 2002, 43356, 0xa366eb79, F=0x0
0, 2002, 2002, 2002, 11423, 0x9c0a86fa, F=0x0
0, 4004, 8008, 2002, 50801, 0xfbfe860d, F=0x0
diff --git a/tests/ref/fate/iamf-5_1-copy b/tests/ref/fate/iamf-5_1-copy
index 1f0b67b1f74..4bf9bdf3ffa 100644
--- a/tests/ref/fate/iamf-5_1-copy
+++ b/tests/ref/fate/iamf-5_1-copy
@@ -22,110 +22,110 @@
#codec_id 3: opus
#sample_rate 3: 48000
#channel_layout_name 3: mono
-0, 0, 0, 960, 371, 0x552eba36, S=3, 10, 96, 136
-1, 0, 0, 960, 381, 0x6779b329, S=3, 10, 96, 136
-2, 0, 0, 960, 66, 0x4ce02142, S=3, 10, 96, 136
-3, 0, 0, 960, 67, 0x935223f9, S=3, 10, 96, 136
-0, 960, 960, 960, 313, 0xa5e19a4f, S=2, 96, 136
-1, 960, 960, 960, 339, 0xf83daf6a, S=2, 96, 136
-2, 960, 960, 960, 62, 0x80c91ca8, S=2, 96, 136
-3, 960, 960, 960, 64, 0xaae41dd7, S=2, 96, 136
-0, 1920, 1920, 960, 210, 0x5fc26f7a, S=2, 96, 136
-1, 1920, 1920, 960, 207, 0xc8c768e8, S=2, 96, 136
-2, 1920, 1920, 960, 75, 0x85012598, S=2, 96, 136
-3, 1920, 1920, 960, 94, 0x5dc52d3b, S=2, 96, 136
-0, 2880, 2880, 960, 211, 0x8f006c62, S=2, 96, 136
-1, 2880, 2880, 960, 215, 0x30c8674d, S=2, 96, 136
-2, 2880, 2880, 960, 88, 0x46772b87, S=2, 96, 136
-3, 2880, 2880, 960, 105, 0x831c3191, S=2, 96, 136
-0, 3840, 3840, 960, 340, 0x3c92a527, S=2, 96, 136
-1, 3840, 3840, 960, 303, 0x65e09e91, S=2, 96, 136
-2, 3840, 3840, 960, 121, 0xc45d3ec1, S=2, 96, 136
-3, 3840, 3840, 960, 126, 0xff3a44d7, S=2, 96, 136
-0, 4800, 4800, 960, 206, 0x3087662a, S=2, 96, 136
-1, 4800, 4800, 960, 206, 0xd2b469de, S=2, 96, 136
-2, 4800, 4800, 960, 124, 0xd9423baf, S=2, 96, 136
-3, 4800, 4800, 960, 121, 0x24073ab0, S=2, 96, 136
-0, 5760, 5760, 960, 212, 0x85686b01, S=2, 96, 136
-1, 5760, 5760, 960, 230, 0x7ce56f22, S=2, 96, 136
-2, 5760, 5760, 960, 128, 0xca6840ad, S=2, 96, 136
-3, 5760, 5760, 960, 138, 0xa1f24207, S=2, 96, 136
-0, 6720, 6720, 960, 220, 0xd40572ca, S=2, 96, 136
-1, 6720, 6720, 960, 223, 0x760c74ce, S=2, 96, 136
-2, 6720, 6720, 960, 125, 0xd0674094, S=2, 96, 136
-3, 6720, 6720, 960, 130, 0x58f64293, S=2, 96, 136
-0, 7680, 7680, 960, 249, 0x9b6c77bb, S=2, 96, 136
-1, 7680, 7680, 960, 247, 0x660475b6, S=2, 96, 136
-2, 7680, 7680, 960, 125, 0x43de3911, S=2, 96, 136
-3, 7680, 7680, 960, 122, 0x0d4137b3, S=2, 96, 136
-0, 8640, 8640, 960, 262, 0x0d718316, S=2, 96, 136
-1, 8640, 8640, 960, 260, 0xce698563, S=2, 96, 136
-2, 8640, 8640, 960, 121, 0x7f1b4025, S=2, 96, 136
-3, 8640, 8640, 960, 121, 0xdae34205, S=2, 96, 136
-0, 9600, 9600, 960, 266, 0x6ffb86f0, S=2, 96, 136
-1, 9600, 9600, 960, 266, 0xa16f87bb, S=2, 96, 136
-2, 9600, 9600, 960, 119, 0x57703c74, S=2, 96, 136
-3, 9600, 9600, 960, 114, 0x06853bf5, S=2, 96, 136
-0, 10560, 10560, 960, 269, 0x43078081, S=2, 96, 136
-1, 10560, 10560, 960, 255, 0xff767870, S=2, 96, 136
-2, 10560, 10560, 960, 117, 0x86a43b70, S=2, 96, 136
-3, 10560, 10560, 960, 114, 0x4be5388e, S=2, 96, 136
-0, 11520, 11520, 960, 244, 0xd56f7885, S=2, 96, 136
-1, 11520, 11520, 960, 241, 0xbd1777f2, S=2, 96, 136
-2, 11520, 11520, 960, 110, 0xce96366a, S=2, 96, 136
-3, 11520, 11520, 960, 109, 0x120234bd, S=2, 96, 136
-0, 12480, 12480, 960, 241, 0xb8847e12, S=2, 96, 136
-1, 12480, 12480, 960, 241, 0x1bd27430, S=2, 96, 136
-2, 12480, 12480, 960, 127, 0x38ce3ff0, S=2, 96, 136
-3, 12480, 12480, 960, 127, 0x9f763c9b, S=2, 96, 136
-0, 13440, 13440, 960, 241, 0x9ee4787e, S=2, 96, 136
-1, 13440, 13440, 960, 241, 0x85ad821d, S=2, 96, 136
-2, 13440, 13440, 960, 141, 0xdc414884, S=2, 96, 136
-3, 13440, 13440, 960, 134, 0x95c9405e, S=2, 96, 136
-0, 14400, 14400, 960, 241, 0x060c78e3, S=2, 96, 136
-1, 14400, 14400, 960, 241, 0x03bb7e7e, S=2, 96, 136
-2, 14400, 14400, 960, 133, 0xfe184321, S=2, 96, 136
-3, 14400, 14400, 960, 125, 0x70523d7d, S=2, 96, 136
-0, 15360, 15360, 960, 241, 0xf7c57f6b, S=2, 96, 136
-1, 15360, 15360, 960, 241, 0x58ed7656, S=2, 96, 136
-2, 15360, 15360, 960, 119, 0x33b83af3, S=2, 96, 136
-3, 15360, 15360, 960, 121, 0x3f353eb3, S=2, 96, 136
-0, 16320, 16320, 960, 241, 0xc0077948, S=2, 96, 136
-1, 16320, 16320, 960, 241, 0x886a7f2a, S=2, 96, 136
-2, 16320, 16320, 960, 118, 0x122d3d16, S=2, 96, 136
-3, 16320, 16320, 960, 123, 0x673d3bbd, S=2, 96, 136
-0, 17280, 17280, 960, 241, 0x51777d39, S=2, 96, 136
-1, 17280, 17280, 960, 241, 0x25aa7240, S=2, 96, 136
-2, 17280, 17280, 960, 116, 0xe4ff3d75, S=2, 96, 136
-3, 17280, 17280, 960, 114, 0x95c638df, S=2, 96, 136
-0, 18240, 18240, 960, 241, 0x8a038527, S=2, 96, 136
-1, 18240, 18240, 960, 241, 0x151877bf, S=2, 96, 136
-2, 18240, 18240, 960, 116, 0xcb0238e6, S=2, 96, 136
-3, 18240, 18240, 960, 122, 0xc1fb4201, S=2, 96, 136
-0, 19200, 19200, 960, 241, 0xff1a839d, S=2, 96, 136
-1, 19200, 19200, 960, 241, 0x243c7927, S=2, 96, 136
-2, 19200, 19200, 960, 117, 0x4b723619, S=2, 96, 136
-3, 19200, 19200, 960, 113, 0xccf439e2, S=2, 96, 136
-0, 20160, 20160, 960, 241, 0x9aab7903, S=2, 96, 136
-1, 20160, 20160, 960, 241, 0x718b795d, S=2, 96, 136
-2, 20160, 20160, 960, 123, 0xd2fb3c10, S=2, 96, 136
-3, 20160, 20160, 960, 130, 0x28d03f70, S=2, 96, 136
-0, 21120, 21120, 960, 241, 0xc4246f83, S=2, 96, 136
-1, 21120, 21120, 960, 241, 0xec9577fe, S=2, 96, 136
-2, 21120, 21120, 960, 128, 0x269b4147, S=2, 96, 136
-3, 21120, 21120, 960, 135, 0xeb5d473a, S=2, 96, 136
-0, 22080, 22080, 960, 241, 0x4b69803f, S=2, 96, 136
-1, 22080, 22080, 960, 241, 0xd9d37f47, S=2, 96, 136
-2, 22080, 22080, 960, 122, 0x521c3fd0, S=2, 96, 136
-3, 22080, 22080, 960, 123, 0x9f0c3b46, S=2, 96, 136
-0, 23040, 23040, 960, 241, 0x2dbc77e4, S=2, 96, 136
-1, 23040, 23040, 960, 241, 0x8a4e784f, S=2, 96, 136
-2, 23040, 23040, 960, 179, 0xa53e5481, S=2, 96, 136
-3, 23040, 23040, 960, 175, 0x18d157ee, S=2, 96, 136
-0, 24000, 24000, 960, 241, 0x4f5b722d, S=3, 10, 96, 136
-1, 24000, 24000, 960, 241, 0xc7e67e1e, S=3, 10, 96, 136
-2, 24000, 24000, 960, 189, 0x736c5f4c, S=3, 10, 96, 136
-3, 24000, 24000, 960, 189, 0x63256352, S=3, 10, 96, 136
+0, 0, 0, 960, 371, 0x552eba36, S=3, 10, 0x02390039, 96, 0x00000000, 136, 0x00000000
+1, 0, 0, 960, 381, 0x6779b329, S=3, 10, 0x02390039, 96, 0x00000000, 136, 0x00000000
+2, 0, 0, 960, 66, 0x4ce02142, S=3, 10, 0x02390039, 96, 0x00000000, 136, 0x00000000
+3, 0, 0, 960, 67, 0x935223f9, S=3, 10, 0x02390039, 96, 0x00000000, 136, 0x00000000
+0, 960, 960, 960, 313, 0xa5e19a4f, S=2, 96, 0x00000000, 136, 0x00000000
+1, 960, 960, 960, 339, 0xf83daf6a, S=2, 96, 0x00000000, 136, 0x00000000
+2, 960, 960, 960, 62, 0x80c91ca8, S=2, 96, 0x00000000, 136, 0x00000000
+3, 960, 960, 960, 64, 0xaae41dd7, S=2, 96, 0x00000000, 136, 0x00000000
+0, 1920, 1920, 960, 210, 0x5fc26f7a, S=2, 96, 0x00000000, 136, 0x00000000
+1, 1920, 1920, 960, 207, 0xc8c768e8, S=2, 96, 0x00000000, 136, 0x00000000
+2, 1920, 1920, 960, 75, 0x85012598, S=2, 96, 0x00000000, 136, 0x00000000
+3, 1920, 1920, 960, 94, 0x5dc52d3b, S=2, 96, 0x00000000, 136, 0x00000000
+0, 2880, 2880, 960, 211, 0x8f006c62, S=2, 96, 0x00000000, 136, 0x00000000
+1, 2880, 2880, 960, 215, 0x30c8674d, S=2, 96, 0x00000000, 136, 0x00000000
+2, 2880, 2880, 960, 88, 0x46772b87, S=2, 96, 0x00000000, 136, 0x00000000
+3, 2880, 2880, 960, 105, 0x831c3191, S=2, 96, 0x00000000, 136, 0x00000000
+0, 3840, 3840, 960, 340, 0x3c92a527, S=2, 96, 0x00000000, 136, 0x00000000
+1, 3840, 3840, 960, 303, 0x65e09e91, S=2, 96, 0x00000000, 136, 0x00000000
+2, 3840, 3840, 960, 121, 0xc45d3ec1, S=2, 96, 0x00000000, 136, 0x00000000
+3, 3840, 3840, 960, 126, 0xff3a44d7, S=2, 96, 0x00000000, 136, 0x00000000
+0, 4800, 4800, 960, 206, 0x3087662a, S=2, 96, 0x00000000, 136, 0x00000000
+1, 4800, 4800, 960, 206, 0xd2b469de, S=2, 96, 0x00000000, 136, 0x00000000
+2, 4800, 4800, 960, 124, 0xd9423baf, S=2, 96, 0x00000000, 136, 0x00000000
+3, 4800, 4800, 960, 121, 0x24073ab0, S=2, 96, 0x00000000, 136, 0x00000000
+0, 5760, 5760, 960, 212, 0x85686b01, S=2, 96, 0x00000000, 136, 0x00000000
+1, 5760, 5760, 960, 230, 0x7ce56f22, S=2, 96, 0x00000000, 136, 0x00000000
+2, 5760, 5760, 960, 128, 0xca6840ad, S=2, 96, 0x00000000, 136, 0x00000000
+3, 5760, 5760, 960, 138, 0xa1f24207, S=2, 96, 0x00000000, 136, 0x00000000
+0, 6720, 6720, 960, 220, 0xd40572ca, S=2, 96, 0x00000000, 136, 0x00000000
+1, 6720, 6720, 960, 223, 0x760c74ce, S=2, 96, 0x00000000, 136, 0x00000000
+2, 6720, 6720, 960, 125, 0xd0674094, S=2, 96, 0x00000000, 136, 0x00000000
+3, 6720, 6720, 960, 130, 0x58f64293, S=2, 96, 0x00000000, 136, 0x00000000
+0, 7680, 7680, 960, 249, 0x9b6c77bb, S=2, 96, 0x00000000, 136, 0x00000000
+1, 7680, 7680, 960, 247, 0x660475b6, S=2, 96, 0x00000000, 136, 0x00000000
+2, 7680, 7680, 960, 125, 0x43de3911, S=2, 96, 0x00000000, 136, 0x00000000
+3, 7680, 7680, 960, 122, 0x0d4137b3, S=2, 96, 0x00000000, 136, 0x00000000
+0, 8640, 8640, 960, 262, 0x0d718316, S=2, 96, 0x00000000, 136, 0x00000000
+1, 8640, 8640, 960, 260, 0xce698563, S=2, 96, 0x00000000, 136, 0x00000000
+2, 8640, 8640, 960, 121, 0x7f1b4025, S=2, 96, 0x00000000, 136, 0x00000000
+3, 8640, 8640, 960, 121, 0xdae34205, S=2, 96, 0x00000000, 136, 0x00000000
+0, 9600, 9600, 960, 266, 0x6ffb86f0, S=2, 96, 0x00000000, 136, 0x00000000
+1, 9600, 9600, 960, 266, 0xa16f87bb, S=2, 96, 0x00000000, 136, 0x00000000
+2, 9600, 9600, 960, 119, 0x57703c74, S=2, 96, 0x00000000, 136, 0x00000000
+3, 9600, 9600, 960, 114, 0x06853bf5, S=2, 96, 0x00000000, 136, 0x00000000
+0, 10560, 10560, 960, 269, 0x43078081, S=2, 96, 0x00000000, 136, 0x00000000
+1, 10560, 10560, 960, 255, 0xff767870, S=2, 96, 0x00000000, 136, 0x00000000
+2, 10560, 10560, 960, 117, 0x86a43b70, S=2, 96, 0x00000000, 136, 0x00000000
+3, 10560, 10560, 960, 114, 0x4be5388e, S=2, 96, 0x00000000, 136, 0x00000000
+0, 11520, 11520, 960, 244, 0xd56f7885, S=2, 96, 0x00000000, 136, 0x00000000
+1, 11520, 11520, 960, 241, 0xbd1777f2, S=2, 96, 0x00000000, 136, 0x00000000
+2, 11520, 11520, 960, 110, 0xce96366a, S=2, 96, 0x00000000, 136, 0x00000000
+3, 11520, 11520, 960, 109, 0x120234bd, S=2, 96, 0x00000000, 136, 0x00000000
+0, 12480, 12480, 960, 241, 0xb8847e12, S=2, 96, 0x00000000, 136, 0x00000000
+1, 12480, 12480, 960, 241, 0x1bd27430, S=2, 96, 0x00000000, 136, 0x00000000
+2, 12480, 12480, 960, 127, 0x38ce3ff0, S=2, 96, 0x00000000, 136, 0x00000000
+3, 12480, 12480, 960, 127, 0x9f763c9b, S=2, 96, 0x00000000, 136, 0x00000000
+0, 13440, 13440, 960, 241, 0x9ee4787e, S=2, 96, 0x00000000, 136, 0x00000000
+1, 13440, 13440, 960, 241, 0x85ad821d, S=2, 96, 0x00000000, 136, 0x00000000
+2, 13440, 13440, 960, 141, 0xdc414884, S=2, 96, 0x00000000, 136, 0x00000000
+3, 13440, 13440, 960, 134, 0x95c9405e, S=2, 96, 0x00000000, 136, 0x00000000
+0, 14400, 14400, 960, 241, 0x060c78e3, S=2, 96, 0x00000000, 136, 0x00000000
+1, 14400, 14400, 960, 241, 0x03bb7e7e, S=2, 96, 0x00000000, 136, 0x00000000
+2, 14400, 14400, 960, 133, 0xfe184321, S=2, 96, 0x00000000, 136, 0x00000000
+3, 14400, 14400, 960, 125, 0x70523d7d, S=2, 96, 0x00000000, 136, 0x00000000
+0, 15360, 15360, 960, 241, 0xf7c57f6b, S=2, 96, 0x00000000, 136, 0x00000000
+1, 15360, 15360, 960, 241, 0x58ed7656, S=2, 96, 0x00000000, 136, 0x00000000
+2, 15360, 15360, 960, 119, 0x33b83af3, S=2, 96, 0x00000000, 136, 0x00000000
+3, 15360, 15360, 960, 121, 0x3f353eb3, S=2, 96, 0x00000000, 136, 0x00000000
+0, 16320, 16320, 960, 241, 0xc0077948, S=2, 96, 0x00000000, 136, 0x00000000
+1, 16320, 16320, 960, 241, 0x886a7f2a, S=2, 96, 0x00000000, 136, 0x00000000
+2, 16320, 16320, 960, 118, 0x122d3d16, S=2, 96, 0x00000000, 136, 0x00000000
+3, 16320, 16320, 960, 123, 0x673d3bbd, S=2, 96, 0x00000000, 136, 0x00000000
+0, 17280, 17280, 960, 241, 0x51777d39, S=2, 96, 0x00000000, 136, 0x00000000
+1, 17280, 17280, 960, 241, 0x25aa7240, S=2, 96, 0x00000000, 136, 0x00000000
+2, 17280, 17280, 960, 116, 0xe4ff3d75, S=2, 96, 0x00000000, 136, 0x00000000
+3, 17280, 17280, 960, 114, 0x95c638df, S=2, 96, 0x00000000, 136, 0x00000000
+0, 18240, 18240, 960, 241, 0x8a038527, S=2, 96, 0x00000000, 136, 0x00000000
+1, 18240, 18240, 960, 241, 0x151877bf, S=2, 96, 0x00000000, 136, 0x00000000
+2, 18240, 18240, 960, 116, 0xcb0238e6, S=2, 96, 0x00000000, 136, 0x00000000
+3, 18240, 18240, 960, 122, 0xc1fb4201, S=2, 96, 0x00000000, 136, 0x00000000
+0, 19200, 19200, 960, 241, 0xff1a839d, S=2, 96, 0x00000000, 136, 0x00000000
+1, 19200, 19200, 960, 241, 0x243c7927, S=2, 96, 0x00000000, 136, 0x00000000
+2, 19200, 19200, 960, 117, 0x4b723619, S=2, 96, 0x00000000, 136, 0x00000000
+3, 19200, 19200, 960, 113, 0xccf439e2, S=2, 96, 0x00000000, 136, 0x00000000
+0, 20160, 20160, 960, 241, 0x9aab7903, S=2, 96, 0x00000000, 136, 0x00000000
+1, 20160, 20160, 960, 241, 0x718b795d, S=2, 96, 0x00000000, 136, 0x00000000
+2, 20160, 20160, 960, 123, 0xd2fb3c10, S=2, 96, 0x00000000, 136, 0x00000000
+3, 20160, 20160, 960, 130, 0x28d03f70, S=2, 96, 0x00000000, 136, 0x00000000
+0, 21120, 21120, 960, 241, 0xc4246f83, S=2, 96, 0x00000000, 136, 0x00000000
+1, 21120, 21120, 960, 241, 0xec9577fe, S=2, 96, 0x00000000, 136, 0x00000000
+2, 21120, 21120, 960, 128, 0x269b4147, S=2, 96, 0x00000000, 136, 0x00000000
+3, 21120, 21120, 960, 135, 0xeb5d473a, S=2, 96, 0x00000000, 136, 0x00000000
+0, 22080, 22080, 960, 241, 0x4b69803f, S=2, 96, 0x00000000, 136, 0x00000000
+1, 22080, 22080, 960, 241, 0xd9d37f47, S=2, 96, 0x00000000, 136, 0x00000000
+2, 22080, 22080, 960, 122, 0x521c3fd0, S=2, 96, 0x00000000, 136, 0x00000000
+3, 22080, 22080, 960, 123, 0x9f0c3b46, S=2, 96, 0x00000000, 136, 0x00000000
+0, 23040, 23040, 960, 241, 0x2dbc77e4, S=2, 96, 0x00000000, 136, 0x00000000
+1, 23040, 23040, 960, 241, 0x8a4e784f, S=2, 96, 0x00000000, 136, 0x00000000
+2, 23040, 23040, 960, 179, 0xa53e5481, S=2, 96, 0x00000000, 136, 0x00000000
+3, 23040, 23040, 960, 175, 0x18d157ee, S=2, 96, 0x00000000, 136, 0x00000000
+0, 24000, 24000, 960, 241, 0x4f5b722d, S=3, 10, 0x033a008a, 96, 0x00000000, 136, 0x00000000
+1, 24000, 24000, 960, 241, 0xc7e67e1e, S=3, 10, 0x033a008a, 96, 0x00000000, 136, 0x00000000
+2, 24000, 24000, 960, 189, 0x736c5f4c, S=3, 10, 0x033a008a, 96, 0x00000000, 136, 0x00000000
+3, 24000, 24000, 960, 189, 0x63256352, S=3, 10, 0x033a008a, 96, 0x00000000, 136, 0x00000000
[STREAM_GROUP]
index=0
id=0x12c
diff --git a/tests/ref/fate/iamf-5_1-demux b/tests/ref/fate/iamf-5_1-demux
index 1f0b67b1f74..4bf9bdf3ffa 100644
--- a/tests/ref/fate/iamf-5_1-demux
+++ b/tests/ref/fate/iamf-5_1-demux
@@ -22,110 +22,110 @@
#codec_id 3: opus
#sample_rate 3: 48000
#channel_layout_name 3: mono
-0, 0, 0, 960, 371, 0x552eba36, S=3, 10, 96, 136
-1, 0, 0, 960, 381, 0x6779b329, S=3, 10, 96, 136
-2, 0, 0, 960, 66, 0x4ce02142, S=3, 10, 96, 136
-3, 0, 0, 960, 67, 0x935223f9, S=3, 10, 96, 136
-0, 960, 960, 960, 313, 0xa5e19a4f, S=2, 96, 136
-1, 960, 960, 960, 339, 0xf83daf6a, S=2, 96, 136
-2, 960, 960, 960, 62, 0x80c91ca8, S=2, 96, 136
-3, 960, 960, 960, 64, 0xaae41dd7, S=2, 96, 136
-0, 1920, 1920, 960, 210, 0x5fc26f7a, S=2, 96, 136
-1, 1920, 1920, 960, 207, 0xc8c768e8, S=2, 96, 136
-2, 1920, 1920, 960, 75, 0x85012598, S=2, 96, 136
-3, 1920, 1920, 960, 94, 0x5dc52d3b, S=2, 96, 136
-0, 2880, 2880, 960, 211, 0x8f006c62, S=2, 96, 136
-1, 2880, 2880, 960, 215, 0x30c8674d, S=2, 96, 136
-2, 2880, 2880, 960, 88, 0x46772b87, S=2, 96, 136
-3, 2880, 2880, 960, 105, 0x831c3191, S=2, 96, 136
-0, 3840, 3840, 960, 340, 0x3c92a527, S=2, 96, 136
-1, 3840, 3840, 960, 303, 0x65e09e91, S=2, 96, 136
-2, 3840, 3840, 960, 121, 0xc45d3ec1, S=2, 96, 136
-3, 3840, 3840, 960, 126, 0xff3a44d7, S=2, 96, 136
-0, 4800, 4800, 960, 206, 0x3087662a, S=2, 96, 136
-1, 4800, 4800, 960, 206, 0xd2b469de, S=2, 96, 136
-2, 4800, 4800, 960, 124, 0xd9423baf, S=2, 96, 136
-3, 4800, 4800, 960, 121, 0x24073ab0, S=2, 96, 136
-0, 5760, 5760, 960, 212, 0x85686b01, S=2, 96, 136
-1, 5760, 5760, 960, 230, 0x7ce56f22, S=2, 96, 136
-2, 5760, 5760, 960, 128, 0xca6840ad, S=2, 96, 136
-3, 5760, 5760, 960, 138, 0xa1f24207, S=2, 96, 136
-0, 6720, 6720, 960, 220, 0xd40572ca, S=2, 96, 136
-1, 6720, 6720, 960, 223, 0x760c74ce, S=2, 96, 136
-2, 6720, 6720, 960, 125, 0xd0674094, S=2, 96, 136
-3, 6720, 6720, 960, 130, 0x58f64293, S=2, 96, 136
-0, 7680, 7680, 960, 249, 0x9b6c77bb, S=2, 96, 136
-1, 7680, 7680, 960, 247, 0x660475b6, S=2, 96, 136
-2, 7680, 7680, 960, 125, 0x43de3911, S=2, 96, 136
-3, 7680, 7680, 960, 122, 0x0d4137b3, S=2, 96, 136
-0, 8640, 8640, 960, 262, 0x0d718316, S=2, 96, 136
-1, 8640, 8640, 960, 260, 0xce698563, S=2, 96, 136
-2, 8640, 8640, 960, 121, 0x7f1b4025, S=2, 96, 136
-3, 8640, 8640, 960, 121, 0xdae34205, S=2, 96, 136
-0, 9600, 9600, 960, 266, 0x6ffb86f0, S=2, 96, 136
-1, 9600, 9600, 960, 266, 0xa16f87bb, S=2, 96, 136
-2, 9600, 9600, 960, 119, 0x57703c74, S=2, 96, 136
-3, 9600, 9600, 960, 114, 0x06853bf5, S=2, 96, 136
-0, 10560, 10560, 960, 269, 0x43078081, S=2, 96, 136
-1, 10560, 10560, 960, 255, 0xff767870, S=2, 96, 136
-2, 10560, 10560, 960, 117, 0x86a43b70, S=2, 96, 136
-3, 10560, 10560, 960, 114, 0x4be5388e, S=2, 96, 136
-0, 11520, 11520, 960, 244, 0xd56f7885, S=2, 96, 136
-1, 11520, 11520, 960, 241, 0xbd1777f2, S=2, 96, 136
-2, 11520, 11520, 960, 110, 0xce96366a, S=2, 96, 136
-3, 11520, 11520, 960, 109, 0x120234bd, S=2, 96, 136
-0, 12480, 12480, 960, 241, 0xb8847e12, S=2, 96, 136
-1, 12480, 12480, 960, 241, 0x1bd27430, S=2, 96, 136
-2, 12480, 12480, 960, 127, 0x38ce3ff0, S=2, 96, 136
-3, 12480, 12480, 960, 127, 0x9f763c9b, S=2, 96, 136
-0, 13440, 13440, 960, 241, 0x9ee4787e, S=2, 96, 136
-1, 13440, 13440, 960, 241, 0x85ad821d, S=2, 96, 136
-2, 13440, 13440, 960, 141, 0xdc414884, S=2, 96, 136
-3, 13440, 13440, 960, 134, 0x95c9405e, S=2, 96, 136
-0, 14400, 14400, 960, 241, 0x060c78e3, S=2, 96, 136
-1, 14400, 14400, 960, 241, 0x03bb7e7e, S=2, 96, 136
-2, 14400, 14400, 960, 133, 0xfe184321, S=2, 96, 136
-3, 14400, 14400, 960, 125, 0x70523d7d, S=2, 96, 136
-0, 15360, 15360, 960, 241, 0xf7c57f6b, S=2, 96, 136
-1, 15360, 15360, 960, 241, 0x58ed7656, S=2, 96, 136
-2, 15360, 15360, 960, 119, 0x33b83af3, S=2, 96, 136
-3, 15360, 15360, 960, 121, 0x3f353eb3, S=2, 96, 136
-0, 16320, 16320, 960, 241, 0xc0077948, S=2, 96, 136
-1, 16320, 16320, 960, 241, 0x886a7f2a, S=2, 96, 136
-2, 16320, 16320, 960, 118, 0x122d3d16, S=2, 96, 136
-3, 16320, 16320, 960, 123, 0x673d3bbd, S=2, 96, 136
-0, 17280, 17280, 960, 241, 0x51777d39, S=2, 96, 136
-1, 17280, 17280, 960, 241, 0x25aa7240, S=2, 96, 136
-2, 17280, 17280, 960, 116, 0xe4ff3d75, S=2, 96, 136
-3, 17280, 17280, 960, 114, 0x95c638df, S=2, 96, 136
-0, 18240, 18240, 960, 241, 0x8a038527, S=2, 96, 136
-1, 18240, 18240, 960, 241, 0x151877bf, S=2, 96, 136
-2, 18240, 18240, 960, 116, 0xcb0238e6, S=2, 96, 136
-3, 18240, 18240, 960, 122, 0xc1fb4201, S=2, 96, 136
-0, 19200, 19200, 960, 241, 0xff1a839d, S=2, 96, 136
-1, 19200, 19200, 960, 241, 0x243c7927, S=2, 96, 136
-2, 19200, 19200, 960, 117, 0x4b723619, S=2, 96, 136
-3, 19200, 19200, 960, 113, 0xccf439e2, S=2, 96, 136
-0, 20160, 20160, 960, 241, 0x9aab7903, S=2, 96, 136
-1, 20160, 20160, 960, 241, 0x718b795d, S=2, 96, 136
-2, 20160, 20160, 960, 123, 0xd2fb3c10, S=2, 96, 136
-3, 20160, 20160, 960, 130, 0x28d03f70, S=2, 96, 136
-0, 21120, 21120, 960, 241, 0xc4246f83, S=2, 96, 136
-1, 21120, 21120, 960, 241, 0xec9577fe, S=2, 96, 136
-2, 21120, 21120, 960, 128, 0x269b4147, S=2, 96, 136
-3, 21120, 21120, 960, 135, 0xeb5d473a, S=2, 96, 136
-0, 22080, 22080, 960, 241, 0x4b69803f, S=2, 96, 136
-1, 22080, 22080, 960, 241, 0xd9d37f47, S=2, 96, 136
-2, 22080, 22080, 960, 122, 0x521c3fd0, S=2, 96, 136
-3, 22080, 22080, 960, 123, 0x9f0c3b46, S=2, 96, 136
-0, 23040, 23040, 960, 241, 0x2dbc77e4, S=2, 96, 136
-1, 23040, 23040, 960, 241, 0x8a4e784f, S=2, 96, 136
-2, 23040, 23040, 960, 179, 0xa53e5481, S=2, 96, 136
-3, 23040, 23040, 960, 175, 0x18d157ee, S=2, 96, 136
-0, 24000, 24000, 960, 241, 0x4f5b722d, S=3, 10, 96, 136
-1, 24000, 24000, 960, 241, 0xc7e67e1e, S=3, 10, 96, 136
-2, 24000, 24000, 960, 189, 0x736c5f4c, S=3, 10, 96, 136
-3, 24000, 24000, 960, 189, 0x63256352, S=3, 10, 96, 136
+0, 0, 0, 960, 371, 0x552eba36, S=3, 10, 0x02390039, 96, 0x00000000, 136, 0x00000000
+1, 0, 0, 960, 381, 0x6779b329, S=3, 10, 0x02390039, 96, 0x00000000, 136, 0x00000000
+2, 0, 0, 960, 66, 0x4ce02142, S=3, 10, 0x02390039, 96, 0x00000000, 136, 0x00000000
+3, 0, 0, 960, 67, 0x935223f9, S=3, 10, 0x02390039, 96, 0x00000000, 136, 0x00000000
+0, 960, 960, 960, 313, 0xa5e19a4f, S=2, 96, 0x00000000, 136, 0x00000000
+1, 960, 960, 960, 339, 0xf83daf6a, S=2, 96, 0x00000000, 136, 0x00000000
+2, 960, 960, 960, 62, 0x80c91ca8, S=2, 96, 0x00000000, 136, 0x00000000
+3, 960, 960, 960, 64, 0xaae41dd7, S=2, 96, 0x00000000, 136, 0x00000000
+0, 1920, 1920, 960, 210, 0x5fc26f7a, S=2, 96, 0x00000000, 136, 0x00000000
+1, 1920, 1920, 960, 207, 0xc8c768e8, S=2, 96, 0x00000000, 136, 0x00000000
+2, 1920, 1920, 960, 75, 0x85012598, S=2, 96, 0x00000000, 136, 0x00000000
+3, 1920, 1920, 960, 94, 0x5dc52d3b, S=2, 96, 0x00000000, 136, 0x00000000
+0, 2880, 2880, 960, 211, 0x8f006c62, S=2, 96, 0x00000000, 136, 0x00000000
+1, 2880, 2880, 960, 215, 0x30c8674d, S=2, 96, 0x00000000, 136, 0x00000000
+2, 2880, 2880, 960, 88, 0x46772b87, S=2, 96, 0x00000000, 136, 0x00000000
+3, 2880, 2880, 960, 105, 0x831c3191, S=2, 96, 0x00000000, 136, 0x00000000
+0, 3840, 3840, 960, 340, 0x3c92a527, S=2, 96, 0x00000000, 136, 0x00000000
+1, 3840, 3840, 960, 303, 0x65e09e91, S=2, 96, 0x00000000, 136, 0x00000000
+2, 3840, 3840, 960, 121, 0xc45d3ec1, S=2, 96, 0x00000000, 136, 0x00000000
+3, 3840, 3840, 960, 126, 0xff3a44d7, S=2, 96, 0x00000000, 136, 0x00000000
+0, 4800, 4800, 960, 206, 0x3087662a, S=2, 96, 0x00000000, 136, 0x00000000
+1, 4800, 4800, 960, 206, 0xd2b469de, S=2, 96, 0x00000000, 136, 0x00000000
+2, 4800, 4800, 960, 124, 0xd9423baf, S=2, 96, 0x00000000, 136, 0x00000000
+3, 4800, 4800, 960, 121, 0x24073ab0, S=2, 96, 0x00000000, 136, 0x00000000
+0, 5760, 5760, 960, 212, 0x85686b01, S=2, 96, 0x00000000, 136, 0x00000000
+1, 5760, 5760, 960, 230, 0x7ce56f22, S=2, 96, 0x00000000, 136, 0x00000000
+2, 5760, 5760, 960, 128, 0xca6840ad, S=2, 96, 0x00000000, 136, 0x00000000
+3, 5760, 5760, 960, 138, 0xa1f24207, S=2, 96, 0x00000000, 136, 0x00000000
+0, 6720, 6720, 960, 220, 0xd40572ca, S=2, 96, 0x00000000, 136, 0x00000000
+1, 6720, 6720, 960, 223, 0x760c74ce, S=2, 96, 0x00000000, 136, 0x00000000
+2, 6720, 6720, 960, 125, 0xd0674094, S=2, 96, 0x00000000, 136, 0x00000000
+3, 6720, 6720, 960, 130, 0x58f64293, S=2, 96, 0x00000000, 136, 0x00000000
+0, 7680, 7680, 960, 249, 0x9b6c77bb, S=2, 96, 0x00000000, 136, 0x00000000
+1, 7680, 7680, 960, 247, 0x660475b6, S=2, 96, 0x00000000, 136, 0x00000000
+2, 7680, 7680, 960, 125, 0x43de3911, S=2, 96, 0x00000000, 136, 0x00000000
+3, 7680, 7680, 960, 122, 0x0d4137b3, S=2, 96, 0x00000000, 136, 0x00000000
+0, 8640, 8640, 960, 262, 0x0d718316, S=2, 96, 0x00000000, 136, 0x00000000
+1, 8640, 8640, 960, 260, 0xce698563, S=2, 96, 0x00000000, 136, 0x00000000
+2, 8640, 8640, 960, 121, 0x7f1b4025, S=2, 96, 0x00000000, 136, 0x00000000
+3, 8640, 8640, 960, 121, 0xdae34205, S=2, 96, 0x00000000, 136, 0x00000000
+0, 9600, 9600, 960, 266, 0x6ffb86f0, S=2, 96, 0x00000000, 136, 0x00000000
+1, 9600, 9600, 960, 266, 0xa16f87bb, S=2, 96, 0x00000000, 136, 0x00000000
+2, 9600, 9600, 960, 119, 0x57703c74, S=2, 96, 0x00000000, 136, 0x00000000
+3, 9600, 9600, 960, 114, 0x06853bf5, S=2, 96, 0x00000000, 136, 0x00000000
+0, 10560, 10560, 960, 269, 0x43078081, S=2, 96, 0x00000000, 136, 0x00000000
+1, 10560, 10560, 960, 255, 0xff767870, S=2, 96, 0x00000000, 136, 0x00000000
+2, 10560, 10560, 960, 117, 0x86a43b70, S=2, 96, 0x00000000, 136, 0x00000000
+3, 10560, 10560, 960, 114, 0x4be5388e, S=2, 96, 0x00000000, 136, 0x00000000
+0, 11520, 11520, 960, 244, 0xd56f7885, S=2, 96, 0x00000000, 136, 0x00000000
+1, 11520, 11520, 960, 241, 0xbd1777f2, S=2, 96, 0x00000000, 136, 0x00000000
+2, 11520, 11520, 960, 110, 0xce96366a, S=2, 96, 0x00000000, 136, 0x00000000
+3, 11520, 11520, 960, 109, 0x120234bd, S=2, 96, 0x00000000, 136, 0x00000000
+0, 12480, 12480, 960, 241, 0xb8847e12, S=2, 96, 0x00000000, 136, 0x00000000
+1, 12480, 12480, 960, 241, 0x1bd27430, S=2, 96, 0x00000000, 136, 0x00000000
+2, 12480, 12480, 960, 127, 0x38ce3ff0, S=2, 96, 0x00000000, 136, 0x00000000
+3, 12480, 12480, 960, 127, 0x9f763c9b, S=2, 96, 0x00000000, 136, 0x00000000
+0, 13440, 13440, 960, 241, 0x9ee4787e, S=2, 96, 0x00000000, 136, 0x00000000
+1, 13440, 13440, 960, 241, 0x85ad821d, S=2, 96, 0x00000000, 136, 0x00000000
+2, 13440, 13440, 960, 141, 0xdc414884, S=2, 96, 0x00000000, 136, 0x00000000
+3, 13440, 13440, 960, 134, 0x95c9405e, S=2, 96, 0x00000000, 136, 0x00000000
+0, 14400, 14400, 960, 241, 0x060c78e3, S=2, 96, 0x00000000, 136, 0x00000000
+1, 14400, 14400, 960, 241, 0x03bb7e7e, S=2, 96, 0x00000000, 136, 0x00000000
+2, 14400, 14400, 960, 133, 0xfe184321, S=2, 96, 0x00000000, 136, 0x00000000
+3, 14400, 14400, 960, 125, 0x70523d7d, S=2, 96, 0x00000000, 136, 0x00000000
+0, 15360, 15360, 960, 241, 0xf7c57f6b, S=2, 96, 0x00000000, 136, 0x00000000
+1, 15360, 15360, 960, 241, 0x58ed7656, S=2, 96, 0x00000000, 136, 0x00000000
+2, 15360, 15360, 960, 119, 0x33b83af3, S=2, 96, 0x00000000, 136, 0x00000000
+3, 15360, 15360, 960, 121, 0x3f353eb3, S=2, 96, 0x00000000, 136, 0x00000000
+0, 16320, 16320, 960, 241, 0xc0077948, S=2, 96, 0x00000000, 136, 0x00000000
+1, 16320, 16320, 960, 241, 0x886a7f2a, S=2, 96, 0x00000000, 136, 0x00000000
+2, 16320, 16320, 960, 118, 0x122d3d16, S=2, 96, 0x00000000, 136, 0x00000000
+3, 16320, 16320, 960, 123, 0x673d3bbd, S=2, 96, 0x00000000, 136, 0x00000000
+0, 17280, 17280, 960, 241, 0x51777d39, S=2, 96, 0x00000000, 136, 0x00000000
+1, 17280, 17280, 960, 241, 0x25aa7240, S=2, 96, 0x00000000, 136, 0x00000000
+2, 17280, 17280, 960, 116, 0xe4ff3d75, S=2, 96, 0x00000000, 136, 0x00000000
+3, 17280, 17280, 960, 114, 0x95c638df, S=2, 96, 0x00000000, 136, 0x00000000
+0, 18240, 18240, 960, 241, 0x8a038527, S=2, 96, 0x00000000, 136, 0x00000000
+1, 18240, 18240, 960, 241, 0x151877bf, S=2, 96, 0x00000000, 136, 0x00000000
+2, 18240, 18240, 960, 116, 0xcb0238e6, S=2, 96, 0x00000000, 136, 0x00000000
+3, 18240, 18240, 960, 122, 0xc1fb4201, S=2, 96, 0x00000000, 136, 0x00000000
+0, 19200, 19200, 960, 241, 0xff1a839d, S=2, 96, 0x00000000, 136, 0x00000000
+1, 19200, 19200, 960, 241, 0x243c7927, S=2, 96, 0x00000000, 136, 0x00000000
+2, 19200, 19200, 960, 117, 0x4b723619, S=2, 96, 0x00000000, 136, 0x00000000
+3, 19200, 19200, 960, 113, 0xccf439e2, S=2, 96, 0x00000000, 136, 0x00000000
+0, 20160, 20160, 960, 241, 0x9aab7903, S=2, 96, 0x00000000, 136, 0x00000000
+1, 20160, 20160, 960, 241, 0x718b795d, S=2, 96, 0x00000000, 136, 0x00000000
+2, 20160, 20160, 960, 123, 0xd2fb3c10, S=2, 96, 0x00000000, 136, 0x00000000
+3, 20160, 20160, 960, 130, 0x28d03f70, S=2, 96, 0x00000000, 136, 0x00000000
+0, 21120, 21120, 960, 241, 0xc4246f83, S=2, 96, 0x00000000, 136, 0x00000000
+1, 21120, 21120, 960, 241, 0xec9577fe, S=2, 96, 0x00000000, 136, 0x00000000
+2, 21120, 21120, 960, 128, 0x269b4147, S=2, 96, 0x00000000, 136, 0x00000000
+3, 21120, 21120, 960, 135, 0xeb5d473a, S=2, 96, 0x00000000, 136, 0x00000000
+0, 22080, 22080, 960, 241, 0x4b69803f, S=2, 96, 0x00000000, 136, 0x00000000
+1, 22080, 22080, 960, 241, 0xd9d37f47, S=2, 96, 0x00000000, 136, 0x00000000
+2, 22080, 22080, 960, 122, 0x521c3fd0, S=2, 96, 0x00000000, 136, 0x00000000
+3, 22080, 22080, 960, 123, 0x9f0c3b46, S=2, 96, 0x00000000, 136, 0x00000000
+0, 23040, 23040, 960, 241, 0x2dbc77e4, S=2, 96, 0x00000000, 136, 0x00000000
+1, 23040, 23040, 960, 241, 0x8a4e784f, S=2, 96, 0x00000000, 136, 0x00000000
+2, 23040, 23040, 960, 179, 0xa53e5481, S=2, 96, 0x00000000, 136, 0x00000000
+3, 23040, 23040, 960, 175, 0x18d157ee, S=2, 96, 0x00000000, 136, 0x00000000
+0, 24000, 24000, 960, 241, 0x4f5b722d, S=3, 10, 0x033a008a, 96, 0x00000000, 136, 0x00000000
+1, 24000, 24000, 960, 241, 0xc7e67e1e, S=3, 10, 0x033a008a, 96, 0x00000000, 136, 0x00000000
+2, 24000, 24000, 960, 189, 0x736c5f4c, S=3, 10, 0x033a008a, 96, 0x00000000, 136, 0x00000000
+3, 24000, 24000, 960, 189, 0x63256352, S=3, 10, 0x033a008a, 96, 0x00000000, 136, 0x00000000
[STREAM_GROUP]
index=0
id=0x12c
diff --git a/tests/ref/fate/id3v2-priv-remux b/tests/ref/fate/id3v2-priv-remux
index a0f370142e2..32eb76e41ed 100644
--- a/tests/ref/fate/id3v2-priv-remux
+++ b/tests/ref/fate/id3v2-priv-remux
@@ -5,7 +5,7 @@ bb2816e3a05ce136e9ac14479c1ebe24 *tests/data/fate/id3v2-priv-remux.mp3
#codec_id 0: mp3
#sample_rate 0: 48000
#channel_layout_name 0: mono
-0, -155528, -155528, 338688, 192, 0x3774510e, S=1, 10
+0, -155528, -155528, 338688, 192, 0x3774510e, S=1, 10, 0x00bc0013
0, 183160, 183160, 338688, 192, 0x856c5b02
0, 521848, 521848, 338688, 192, 0xb86e557f
0, 860536, 860536, 338688, 192, 0x3b6c5cb7
diff --git a/tests/ref/fate/matroska-hdr10-plus-remux b/tests/ref/fate/matroska-hdr10-plus-remux
index 923fd2a7abe..699d888c19d 100644
--- a/tests/ref/fate/matroska-hdr10-plus-remux
+++ b/tests/ref/fate/matroska-hdr10-plus-remux
@@ -5,7 +5,7 @@
#codec_id 0: vp9
#dimensions 0: 1280x720
#sar 0: 1/1
-0, 0, 0, 40, 13350, 0x5f64e443, S=1, 11304
+0, 0, 0, 40, 13350, 0x5f64e443, S=1, 11304, 0xf822276d
[PACKET]
codec_type=video
stream_index=0
diff --git a/tests/ref/fate/matroska-ogg-opus-remux b/tests/ref/fate/matroska-ogg-opus-remux
index bf6613e2573..c303b1c9492 100644
--- a/tests/ref/fate/matroska-ogg-opus-remux
+++ b/tests/ref/fate/matroska-ogg-opus-remux
@@ -46,7 +46,7 @@
0, 733, 733, 20, 219, 0xe2906c62
0, 753, 753, 20, 217, 0xcf316ba1
0, 773, 773, 20, 217, 0x470b6eea
-0, 793, 793, 20, 359, 0x36c2a18a, S=1, 10
+0, 793, 793, 20, 359, 0x36c2a18a, S=1, 10, 0x0232005e
[PACKET]
codec_type=audio
stream_index=0
diff --git a/tests/ref/fate/matroska-opus-remux b/tests/ref/fate/matroska-opus-remux
index 9f2526dc575..31c656f8225 100644
--- a/tests/ref/fate/matroska-opus-remux
+++ b/tests/ref/fate/matroska-opus-remux
@@ -57,7 +57,7 @@ b9881205f8945fefc16a6f23474071a6 *tests/data/fate/matroska-opus-remux.matroska
0, 954, 954, 20, 154, 0x9a084dcd
0, 974, 974, 20, 155, 0x90a54ac8
0, 994, 994, 20, 324, 0x8e34a2f5
-0, 1014, 1014, 20, 268, 0x10f37203, S=1, 10
+0, 1014, 1014, 20, 268, 0x10f37203, S=1, 10, 0x049600c4
[PACKET]
codec_type=audio
stream_index=0
diff --git a/tests/ref/fate/matroska-vp8-alpha-remux b/tests/ref/fate/matroska-vp8-alpha-remux
index f6c24dead64..7da58088247 100644
--- a/tests/ref/fate/matroska-vp8-alpha-remux
+++ b/tests/ref/fate/matroska-vp8-alpha-remux
@@ -5,13 +5,13 @@
#codec_id 0: vp8
#dimensions 0: 320x213
#sar 0: 1/1
-0, 0, 0, 33, 2108, 0x59b92a34, S=1, 1900
-0, 32, 32, 33, 142, 0x2f2a3fed, F=0x0, S=1, 160
-0, 65, 65, 33, 157, 0x17804767, F=0x0, S=1, 209
-0, 99, 99, 33, 206, 0x537262ca, F=0x0, S=1, 317
-0, 132, 132, 33, 259, 0x73ff74b6, F=0x0, S=1, 384
-0, 165, 165, 33, 320, 0x0fcf8ce4, F=0x0, S=1, 415
-0, 199, 199, 33, 377, 0x8fffb5f5, F=0x0, S=1, 475
+0, 0, 0, 33, 2108, 0x59b92a34, S=1, 1900, 0x8fb3adc5
+0, 32, 32, 33, 142, 0x2f2a3fed, F=0x0, S=1, 160, 0xa13346af
+0, 65, 65, 33, 157, 0x17804767, F=0x0, S=1, 209, 0x64115f15
+0, 99, 99, 33, 206, 0x537262ca, F=0x0, S=1, 317, 0x44a09dd0
+0, 132, 132, 33, 259, 0x73ff74b6, F=0x0, S=1, 384, 0x2ee2c588
+0, 165, 165, 33, 320, 0x0fcf8ce4, F=0x0, S=1, 415, 0xff68c953
+0, 199, 199, 33, 377, 0x8fffb5f5, F=0x0, S=1, 475, 0x4166f3eb
[STREAM]
DISPOSITION:default=1
DISPOSITION:dub=0
diff --git a/tests/ref/fate/mov-cover-image b/tests/ref/fate/mov-cover-image
index 5f65c630ea2..b463f5da199 100644
--- a/tests/ref/fate/mov-cover-image
+++ b/tests/ref/fate/mov-cover-image
@@ -16,7 +16,7 @@
#codec_id 2: png
#dimensions 2: 600x600
#sar 2: 1/1
-0, -2112, -2112, 1024, 6, 0x027e00e8, F=0x5, S=1, 10
+0, -2112, -2112, 1024, 6, 0x027e00e8, F=0x5, S=1, 10, 0x02c80048
0, -1088, -1088, 1024, 6, 0x027e00e8, F=0x5
0, -64, -64, 1024, 6, 0x027e00e8
1, 0, 0, 0, 25441, 0xe82503b0
diff --git a/tests/ref/fate/segment-mp4-to-ts b/tests/ref/fate/segment-mp4-to-ts
index 29944162704..07fda0cefc1 100644
--- a/tests/ref/fate/segment-mp4-to-ts
+++ b/tests/ref/fate/segment-mp4-to-ts
@@ -4,129 +4,129 @@
#codec_id 0: h264
#dimensions 0: 640x360
#sar 0: 1/1
-0, -7200, 0, 3600, 22630, 0x9b109541, S=1, 1
-0, -3600, 14400, 3600, 4021, 0xbf7cdb02, F=0x0, S=1, 1
-0, 0, 7200, 3600, 1096, 0x4f162690, F=0x0, S=1, 1
-0, 3600, 3600, 3600, 687, 0x00394b95, F=0x0, S=1, 1
-0, 7200, 10800, 3600, 445, 0x08c3d065, F=0x0, S=1, 1
-0, 10800, 28800, 3600, 4212, 0x56d12b8f, F=0x0, S=1, 1
-0, 14400, 21600, 3600, 1117, 0xd521260b, F=0x0, S=1, 1
-0, 18000, 18000, 3600, 892, 0x4262bdbc, F=0x0, S=1, 1
-0, 21600, 25200, 3600, 480, 0x3be1ef0b, F=0x0, S=1, 1
-0, 25200, 43200, 3600, 4065, 0x40dee237, F=0x0, S=1, 1
-0, 28800, 36000, 3600, 962, 0x31a4ceb1, F=0x0, S=1, 1
-0, 32400, 32400, 3600, 651, 0xb2aa317a, F=0x0, S=1, 1
-0, 36000, 39600, 3600, 543, 0x9c4e0024, F=0x0, S=1, 1
-0, 39600, 57600, 3600, 4221, 0x77c23977, F=0x0, S=1, 1
-0, 43200, 50400, 3600, 1040, 0x482cfa34, F=0x0, S=1, 1
-0, 46800, 46800, 3600, 576, 0x2686136a, F=0x0, S=1, 1
-0, 50400, 54000, 3600, 607, 0xc53c2339, F=0x0, S=1, 1
-0, 54000, 72000, 3600, 4755, 0x2f642b58, F=0x0, S=1, 1
-0, 57600, 64800, 3600, 1182, 0xbe1a4847, F=0x0, S=1, 1
-0, 61200, 61200, 3600, 809, 0x8d948a4e, F=0x0, S=1, 1
-0, 64800, 68400, 3600, 656, 0x4fa03c2b, F=0x0, S=1, 1
-0, 68400, 86400, 3600, 26555, 0x5629b584, S=1, 1
-0, 72000, 79200, 3600, 1141, 0x761b31e8, F=0x0, S=1, 1
-0, 75600, 75600, 3600, 717, 0x57746351, F=0x0, S=1, 1
-0, 79200, 82800, 3600, 693, 0x78b24263, F=0x0, S=1, 1
-0, 82800, 100800, 3600, 3417, 0x560dbc89, F=0x0, S=1, 1
-0, 86400, 93600, 3600, 1128, 0xc0f1383c, F=0x0, S=1, 1
-0, 90000, 90000, 3600, 650, 0xc3ad485e, F=0x0, S=1, 1
-0, 93600, 97200, 3600, 766, 0xd3e9757d, F=0x0, S=1, 1
-0, 97200, 115200, 3600, 4268, 0xec1235b5, F=0x0, S=1, 1
-0, 100800, 108000, 3600, 1119, 0x65f51fb7, F=0x0, S=1, 1
-0, 104400, 104400, 3600, 766, 0x213b78d3, F=0x0, S=1, 1
-0, 108000, 111600, 3600, 770, 0xa7537e6d, F=0x0, S=1, 1
-0, 111600, 129600, 3600, 6349, 0xec225cf9, F=0x0, S=1, 1
-0, 115200, 122400, 3600, 1188, 0x9dea396c, F=0x0, S=1, 1
-0, 118800, 118800, 3600, 805, 0xdd9e88d0, F=0x0, S=1, 1
-0, 122400, 126000, 3600, 752, 0x1f93730a, F=0x0, S=1, 1
-0, 126000, 144000, 3600, 5502, 0x501bda5c, F=0x0, S=1, 1
-0, 129600, 136800, 3600, 1240, 0x7e3661ea, F=0x0, S=1, 1
-0, 133200, 133200, 3600, 830, 0xa8249f38, F=0x0, S=1, 1
-0, 136800, 140400, 3600, 754, 0xab1c815e, F=0x0, S=1, 1
-0, 140400, 158400, 3600, 5328, 0xd2c55ac6, F=0x0, S=1, 1
-0, 144000, 151200, 3600, 1271, 0x46006870, F=0x0, S=1, 1
-0, 147600, 147600, 3600, 849, 0x94dc99c7, F=0x2, S=1, 1
-0, 151200, 154800, 3600, 753, 0xf4236cab, F=0x0, S=1, 1
-0, 154800, 172800, 3600, 25825, 0xd5464dee, S=1, 1
-0, 158400, 165600, 3600, 1206, 0x8ce84344, F=0x0, S=1, 1
-0, 162000, 162000, 3600, 867, 0x312fa07d, F=0x0, S=1, 1
-0, 165600, 169200, 3600, 719, 0x810666d1, F=0x0, S=1, 1
-0, 169200, 187200, 3600, 3786, 0xa96a6825, F=0x0, S=1, 1
-0, 172800, 180000, 3600, 1187, 0x77e649a2, F=0x0, S=1, 1
-0, 176400, 176400, 3600, 750, 0x86da6d2e, F=0x0, S=1, 1
-0, 180000, 183600, 3600, 815, 0xf09a9881, F=0x0, S=1, 1
-0, 183600, 201600, 3600, 5275, 0xee3450bb, F=0x0, S=1, 1
-0, 187200, 194400, 3600, 1352, 0x150a96e1, F=0x0, S=1, 1
-0, 190800, 190800, 3600, 877, 0x6062a120, F=0x0, S=1, 1
-0, 194400, 198000, 3600, 829, 0x5180988c, F=0x0, S=1, 1
-0, 198000, 216000, 3600, 4421, 0x623aad33, F=0x0, S=1, 1
-0, 201600, 208800, 3600, 1464, 0xd34dc851, F=0x0, S=1, 1
-0, 205200, 205200, 3600, 903, 0xf63bbed0, F=0x0, S=1, 1
-0, 208800, 212400, 3600, 717, 0xc17054b8, F=0x0, S=1, 1
-0, 212400, 230400, 3600, 4787, 0x75e9400e, F=0x0, S=1, 1
-0, 216000, 223200, 3600, 1435, 0xb01ccabb, F=0x0, S=1, 1
-0, 219600, 219600, 3600, 851, 0x54bda291, F=0x0, S=1, 1
-0, 223200, 226800, 3600, 809, 0x84e37fee, F=0x0, S=1, 1
-0, 226800, 244800, 3600, 4541, 0xd4e5c0de, F=0x0, S=1, 1
-0, 230400, 237600, 3600, 1545, 0x0099fc98, F=0x0, S=1, 1
-0, 234000, 234000, 3600, 929, 0xfd72d049, F=0x2, S=1, 1
-0, 237600, 241200, 3600, 829, 0xcfda9e96, F=0x0, S=1, 1
-0, 241200, 259200, 3600, 24220, 0x5ca21d71, S=1, 1
-0, 244800, 252000, 3600, 1422, 0xcde6cc34, F=0x0, S=1, 1
-0, 248400, 248400, 3600, 883, 0xedacbe25, F=0x0, S=1, 1
-0, 252000, 255600, 3600, 768, 0x89d774bc, F=0x0, S=1, 1
-0, 255600, 273600, 3600, 3802, 0xea1d70d4, F=0x0, S=1, 1
-0, 259200, 266400, 3600, 1284, 0x2c927097, F=0x0, S=1, 1
-0, 262800, 262800, 3600, 745, 0x81076a7f, F=0x0, S=1, 1
-0, 266400, 270000, 3600, 931, 0x3675dbfe, F=0x0, S=1, 1
-0, 270000, 288000, 3600, 4830, 0x7a807a68, F=0x0, S=1, 1
-0, 273600, 280800, 3600, 1446, 0x6224bc81, F=0x0, S=1, 1
-0, 277200, 277200, 3600, 833, 0x56f78ae2, F=0x0, S=1, 1
-0, 280800, 284400, 3600, 873, 0x9caeaf00, F=0x0, S=1, 1
-0, 284400, 302400, 3600, 5167, 0x1703151f, F=0x0, S=1, 1
-0, 288000, 295200, 3600, 1449, 0x0881b0d6, F=0x0, S=1, 1
-0, 291600, 291600, 3600, 866, 0x0bffa719, F=0x0, S=1, 1
-0, 295200, 298800, 3600, 874, 0xc243a65f, F=0x0, S=1, 1
-0, 298800, 316800, 3600, 5426, 0x7c899c30, F=0x0, S=1, 1
-0, 302400, 309600, 3600, 1574, 0x03b00f0d, F=0x0, S=1, 1
-0, 306000, 306000, 3600, 860, 0x65cea74e, F=0x0, S=1, 1
-0, 309600, 313200, 3600, 829, 0xffd795cd, F=0x0, S=1, 1
-0, 313200, 331200, 3600, 5352, 0x59997996, F=0x0, S=1, 1
-0, 316800, 324000, 3600, 1501, 0xb3b8f001, F=0x0, S=1, 1
-0, 320400, 320400, 3600, 941, 0x92b0cb18, F=0x2, S=1, 1
-0, 324000, 327600, 3600, 823, 0x3d548355, F=0x0, S=1, 1
-0, 327600, 345600, 3600, 24042, 0x441e94fb, S=1, 1
-0, 331200, 338400, 3600, 1582, 0x4f5d1049, F=0x0, S=1, 1
-0, 334800, 334800, 3600, 945, 0x4f3cc9e8, F=0x0, S=1, 1
-0, 338400, 342000, 3600, 815, 0x0ca790a4, F=0x0, S=1, 1
-0, 342000, 360000, 3600, 4425, 0x1db2a088, F=0x0, S=1, 1
-0, 345600, 352800, 3600, 1492, 0x881ce798, F=0x0, S=1, 1
-0, 349200, 349200, 3600, 905, 0xbdd9c278, F=0x0, S=1, 1
-0, 352800, 356400, 3600, 870, 0x64fbb0e1, F=0x0, S=1, 1
-0, 356400, 374400, 3600, 5194, 0x138b1e1d, F=0x0, S=1, 1
-0, 360000, 367200, 3600, 1483, 0xc5c9d717, F=0x0, S=1, 1
-0, 363600, 363600, 3600, 977, 0x3648d9fc, F=0x0, S=1, 1
-0, 367200, 370800, 3600, 834, 0x6c5d8969, F=0x0, S=1, 1
-0, 370800, 388800, 3600, 6956, 0x6a548e0b, F=0x0, S=1, 1
-0, 374400, 381600, 3600, 1187, 0x795f4163, F=0x0, S=1, 1
-0, 378000, 378000, 3600, 925, 0x92bfc2fb, F=0x0, S=1, 1
-0, 381600, 385200, 3600, 747, 0xea9978fc, F=0x0, S=1, 1
-0, 385200, 403200, 3600, 5005, 0xc558c189, F=0x0, S=1, 1
-0, 388800, 396000, 3600, 452, 0x7d92d9d8, F=0x0, S=1, 1
-0, 392400, 392400, 3600, 784, 0xfd597a5f, F=0x0, S=1, 1
-0, 396000, 399600, 3600, 199, 0x79b06355, F=0x0, S=1, 1
-0, 399600, 417600, 3600, 1862, 0x22a2a06c, F=0x0, S=1, 1
-0, 403200, 410400, 3600, 359, 0x11bdae52, F=0x0, S=1, 1
-0, 406800, 406800, 3600, 235, 0xbec26964, F=0x2, S=1, 1
-0, 410400, 414000, 3600, 221, 0x8380682c, F=0x0, S=1, 1
-0, 414000, 432000, 3600, 22588, 0xf0ecf072, S=1, 1
-0, 417600, 424800, 3600, 383, 0x4f3bb571, F=0x0, S=1, 1
-0, 421200, 421200, 3600, 257, 0x22e87802, F=0x0, S=1, 1
-0, 424800, 428400, 3600, 261, 0xdb988134, F=0x0, S=1, 1
-0, 428400, 435600, 3600, 156, 0xd2c3406c, F=0x0, S=1, 1
-0, 432000, 439200, 3600, 330, 0x150d9b60, F=0x0, S=1, 1
-0, 435600, 446400, 3600, 324, 0x558194ee, F=0x0, S=1, 1
-0, 439200, 442800, 3600, 191, 0x108e54d1, F=0x0, S=1, 1
+0, -7200, 0, 3600, 22630, 0x9b109541, S=1, 1, 0x00e000e0
+0, -3600, 14400, 3600, 4021, 0xbf7cdb02, F=0x0, S=1, 1, 0x00e000e0
+0, 0, 7200, 3600, 1096, 0x4f162690, F=0x0, S=1, 1, 0x00e000e0
+0, 3600, 3600, 3600, 687, 0x00394b95, F=0x0, S=1, 1, 0x00e000e0
+0, 7200, 10800, 3600, 445, 0x08c3d065, F=0x0, S=1, 1, 0x00e000e0
+0, 10800, 28800, 3600, 4212, 0x56d12b8f, F=0x0, S=1, 1, 0x00e000e0
+0, 14400, 21600, 3600, 1117, 0xd521260b, F=0x0, S=1, 1, 0x00e000e0
+0, 18000, 18000, 3600, 892, 0x4262bdbc, F=0x0, S=1, 1, 0x00e000e0
+0, 21600, 25200, 3600, 480, 0x3be1ef0b, F=0x0, S=1, 1, 0x00e000e0
+0, 25200, 43200, 3600, 4065, 0x40dee237, F=0x0, S=1, 1, 0x00e000e0
+0, 28800, 36000, 3600, 962, 0x31a4ceb1, F=0x0, S=1, 1, 0x00e000e0
+0, 32400, 32400, 3600, 651, 0xb2aa317a, F=0x0, S=1, 1, 0x00e000e0
+0, 36000, 39600, 3600, 543, 0x9c4e0024, F=0x0, S=1, 1, 0x00e000e0
+0, 39600, 57600, 3600, 4221, 0x77c23977, F=0x0, S=1, 1, 0x00e000e0
+0, 43200, 50400, 3600, 1040, 0x482cfa34, F=0x0, S=1, 1, 0x00e000e0
+0, 46800, 46800, 3600, 576, 0x2686136a, F=0x0, S=1, 1, 0x00e000e0
+0, 50400, 54000, 3600, 607, 0xc53c2339, F=0x0, S=1, 1, 0x00e000e0
+0, 54000, 72000, 3600, 4755, 0x2f642b58, F=0x0, S=1, 1, 0x00e000e0
+0, 57600, 64800, 3600, 1182, 0xbe1a4847, F=0x0, S=1, 1, 0x00e000e0
+0, 61200, 61200, 3600, 809, 0x8d948a4e, F=0x0, S=1, 1, 0x00e000e0
+0, 64800, 68400, 3600, 656, 0x4fa03c2b, F=0x0, S=1, 1, 0x00e000e0
+0, 68400, 86400, 3600, 26555, 0x5629b584, S=1, 1, 0x00e000e0
+0, 72000, 79200, 3600, 1141, 0x761b31e8, F=0x0, S=1, 1, 0x00e000e0
+0, 75600, 75600, 3600, 717, 0x57746351, F=0x0, S=1, 1, 0x00e000e0
+0, 79200, 82800, 3600, 693, 0x78b24263, F=0x0, S=1, 1, 0x00e000e0
+0, 82800, 100800, 3600, 3417, 0x560dbc89, F=0x0, S=1, 1, 0x00e000e0
+0, 86400, 93600, 3600, 1128, 0xc0f1383c, F=0x0, S=1, 1, 0x00e000e0
+0, 90000, 90000, 3600, 650, 0xc3ad485e, F=0x0, S=1, 1, 0x00e000e0
+0, 93600, 97200, 3600, 766, 0xd3e9757d, F=0x0, S=1, 1, 0x00e000e0
+0, 97200, 115200, 3600, 4268, 0xec1235b5, F=0x0, S=1, 1, 0x00e000e0
+0, 100800, 108000, 3600, 1119, 0x65f51fb7, F=0x0, S=1, 1, 0x00e000e0
+0, 104400, 104400, 3600, 766, 0x213b78d3, F=0x0, S=1, 1, 0x00e000e0
+0, 108000, 111600, 3600, 770, 0xa7537e6d, F=0x0, S=1, 1, 0x00e000e0
+0, 111600, 129600, 3600, 6349, 0xec225cf9, F=0x0, S=1, 1, 0x00e000e0
+0, 115200, 122400, 3600, 1188, 0x9dea396c, F=0x0, S=1, 1, 0x00e000e0
+0, 118800, 118800, 3600, 805, 0xdd9e88d0, F=0x0, S=1, 1, 0x00e000e0
+0, 122400, 126000, 3600, 752, 0x1f93730a, F=0x0, S=1, 1, 0x00e000e0
+0, 126000, 144000, 3600, 5502, 0x501bda5c, F=0x0, S=1, 1, 0x00e000e0
+0, 129600, 136800, 3600, 1240, 0x7e3661ea, F=0x0, S=1, 1, 0x00e000e0
+0, 133200, 133200, 3600, 830, 0xa8249f38, F=0x0, S=1, 1, 0x00e000e0
+0, 136800, 140400, 3600, 754, 0xab1c815e, F=0x0, S=1, 1, 0x00e000e0
+0, 140400, 158400, 3600, 5328, 0xd2c55ac6, F=0x0, S=1, 1, 0x00e000e0
+0, 144000, 151200, 3600, 1271, 0x46006870, F=0x0, S=1, 1, 0x00e000e0
+0, 147600, 147600, 3600, 849, 0x94dc99c7, F=0x2, S=1, 1, 0x00e000e0
+0, 151200, 154800, 3600, 753, 0xf4236cab, F=0x0, S=1, 1, 0x00e000e0
+0, 154800, 172800, 3600, 25825, 0xd5464dee, S=1, 1, 0x00e000e0
+0, 158400, 165600, 3600, 1206, 0x8ce84344, F=0x0, S=1, 1, 0x00e000e0
+0, 162000, 162000, 3600, 867, 0x312fa07d, F=0x0, S=1, 1, 0x00e000e0
+0, 165600, 169200, 3600, 719, 0x810666d1, F=0x0, S=1, 1, 0x00e000e0
+0, 169200, 187200, 3600, 3786, 0xa96a6825, F=0x0, S=1, 1, 0x00e000e0
+0, 172800, 180000, 3600, 1187, 0x77e649a2, F=0x0, S=1, 1, 0x00e000e0
+0, 176400, 176400, 3600, 750, 0x86da6d2e, F=0x0, S=1, 1, 0x00e000e0
+0, 180000, 183600, 3600, 815, 0xf09a9881, F=0x0, S=1, 1, 0x00e000e0
+0, 183600, 201600, 3600, 5275, 0xee3450bb, F=0x0, S=1, 1, 0x00e000e0
+0, 187200, 194400, 3600, 1352, 0x150a96e1, F=0x0, S=1, 1, 0x00e000e0
+0, 190800, 190800, 3600, 877, 0x6062a120, F=0x0, S=1, 1, 0x00e000e0
+0, 194400, 198000, 3600, 829, 0x5180988c, F=0x0, S=1, 1, 0x00e000e0
+0, 198000, 216000, 3600, 4421, 0x623aad33, F=0x0, S=1, 1, 0x00e000e0
+0, 201600, 208800, 3600, 1464, 0xd34dc851, F=0x0, S=1, 1, 0x00e000e0
+0, 205200, 205200, 3600, 903, 0xf63bbed0, F=0x0, S=1, 1, 0x00e000e0
+0, 208800, 212400, 3600, 717, 0xc17054b8, F=0x0, S=1, 1, 0x00e000e0
+0, 212400, 230400, 3600, 4787, 0x75e9400e, F=0x0, S=1, 1, 0x00e000e0
+0, 216000, 223200, 3600, 1435, 0xb01ccabb, F=0x0, S=1, 1, 0x00e000e0
+0, 219600, 219600, 3600, 851, 0x54bda291, F=0x0, S=1, 1, 0x00e000e0
+0, 223200, 226800, 3600, 809, 0x84e37fee, F=0x0, S=1, 1, 0x00e000e0
+0, 226800, 244800, 3600, 4541, 0xd4e5c0de, F=0x0, S=1, 1, 0x00e000e0
+0, 230400, 237600, 3600, 1545, 0x0099fc98, F=0x0, S=1, 1, 0x00e000e0
+0, 234000, 234000, 3600, 929, 0xfd72d049, F=0x2, S=1, 1, 0x00e000e0
+0, 237600, 241200, 3600, 829, 0xcfda9e96, F=0x0, S=1, 1, 0x00e000e0
+0, 241200, 259200, 3600, 24220, 0x5ca21d71, S=1, 1, 0x00e000e0
+0, 244800, 252000, 3600, 1422, 0xcde6cc34, F=0x0, S=1, 1, 0x00e000e0
+0, 248400, 248400, 3600, 883, 0xedacbe25, F=0x0, S=1, 1, 0x00e000e0
+0, 252000, 255600, 3600, 768, 0x89d774bc, F=0x0, S=1, 1, 0x00e000e0
+0, 255600, 273600, 3600, 3802, 0xea1d70d4, F=0x0, S=1, 1, 0x00e000e0
+0, 259200, 266400, 3600, 1284, 0x2c927097, F=0x0, S=1, 1, 0x00e000e0
+0, 262800, 262800, 3600, 745, 0x81076a7f, F=0x0, S=1, 1, 0x00e000e0
+0, 266400, 270000, 3600, 931, 0x3675dbfe, F=0x0, S=1, 1, 0x00e000e0
+0, 270000, 288000, 3600, 4830, 0x7a807a68, F=0x0, S=1, 1, 0x00e000e0
+0, 273600, 280800, 3600, 1446, 0x6224bc81, F=0x0, S=1, 1, 0x00e000e0
+0, 277200, 277200, 3600, 833, 0x56f78ae2, F=0x0, S=1, 1, 0x00e000e0
+0, 280800, 284400, 3600, 873, 0x9caeaf00, F=0x0, S=1, 1, 0x00e000e0
+0, 284400, 302400, 3600, 5167, 0x1703151f, F=0x0, S=1, 1, 0x00e000e0
+0, 288000, 295200, 3600, 1449, 0x0881b0d6, F=0x0, S=1, 1, 0x00e000e0
+0, 291600, 291600, 3600, 866, 0x0bffa719, F=0x0, S=1, 1, 0x00e000e0
+0, 295200, 298800, 3600, 874, 0xc243a65f, F=0x0, S=1, 1, 0x00e000e0
+0, 298800, 316800, 3600, 5426, 0x7c899c30, F=0x0, S=1, 1, 0x00e000e0
+0, 302400, 309600, 3600, 1574, 0x03b00f0d, F=0x0, S=1, 1, 0x00e000e0
+0, 306000, 306000, 3600, 860, 0x65cea74e, F=0x0, S=1, 1, 0x00e000e0
+0, 309600, 313200, 3600, 829, 0xffd795cd, F=0x0, S=1, 1, 0x00e000e0
+0, 313200, 331200, 3600, 5352, 0x59997996, F=0x0, S=1, 1, 0x00e000e0
+0, 316800, 324000, 3600, 1501, 0xb3b8f001, F=0x0, S=1, 1, 0x00e000e0
+0, 320400, 320400, 3600, 941, 0x92b0cb18, F=0x2, S=1, 1, 0x00e000e0
+0, 324000, 327600, 3600, 823, 0x3d548355, F=0x0, S=1, 1, 0x00e000e0
+0, 327600, 345600, 3600, 24042, 0x441e94fb, S=1, 1, 0x00e000e0
+0, 331200, 338400, 3600, 1582, 0x4f5d1049, F=0x0, S=1, 1, 0x00e000e0
+0, 334800, 334800, 3600, 945, 0x4f3cc9e8, F=0x0, S=1, 1, 0x00e000e0
+0, 338400, 342000, 3600, 815, 0x0ca790a4, F=0x0, S=1, 1, 0x00e000e0
+0, 342000, 360000, 3600, 4425, 0x1db2a088, F=0x0, S=1, 1, 0x00e000e0
+0, 345600, 352800, 3600, 1492, 0x881ce798, F=0x0, S=1, 1, 0x00e000e0
+0, 349200, 349200, 3600, 905, 0xbdd9c278, F=0x0, S=1, 1, 0x00e000e0
+0, 352800, 356400, 3600, 870, 0x64fbb0e1, F=0x0, S=1, 1, 0x00e000e0
+0, 356400, 374400, 3600, 5194, 0x138b1e1d, F=0x0, S=1, 1, 0x00e000e0
+0, 360000, 367200, 3600, 1483, 0xc5c9d717, F=0x0, S=1, 1, 0x00e000e0
+0, 363600, 363600, 3600, 977, 0x3648d9fc, F=0x0, S=1, 1, 0x00e000e0
+0, 367200, 370800, 3600, 834, 0x6c5d8969, F=0x0, S=1, 1, 0x00e000e0
+0, 370800, 388800, 3600, 6956, 0x6a548e0b, F=0x0, S=1, 1, 0x00e000e0
+0, 374400, 381600, 3600, 1187, 0x795f4163, F=0x0, S=1, 1, 0x00e000e0
+0, 378000, 378000, 3600, 925, 0x92bfc2fb, F=0x0, S=1, 1, 0x00e000e0
+0, 381600, 385200, 3600, 747, 0xea9978fc, F=0x0, S=1, 1, 0x00e000e0
+0, 385200, 403200, 3600, 5005, 0xc558c189, F=0x0, S=1, 1, 0x00e000e0
+0, 388800, 396000, 3600, 452, 0x7d92d9d8, F=0x0, S=1, 1, 0x00e000e0
+0, 392400, 392400, 3600, 784, 0xfd597a5f, F=0x0, S=1, 1, 0x00e000e0
+0, 396000, 399600, 3600, 199, 0x79b06355, F=0x0, S=1, 1, 0x00e000e0
+0, 399600, 417600, 3600, 1862, 0x22a2a06c, F=0x0, S=1, 1, 0x00e000e0
+0, 403200, 410400, 3600, 359, 0x11bdae52, F=0x0, S=1, 1, 0x00e000e0
+0, 406800, 406800, 3600, 235, 0xbec26964, F=0x2, S=1, 1, 0x00e000e0
+0, 410400, 414000, 3600, 221, 0x8380682c, F=0x0, S=1, 1, 0x00e000e0
+0, 414000, 432000, 3600, 22588, 0xf0ecf072, S=1, 1, 0x00e000e0
+0, 417600, 424800, 3600, 383, 0x4f3bb571, F=0x0, S=1, 1, 0x00e000e0
+0, 421200, 421200, 3600, 257, 0x22e87802, F=0x0, S=1, 1, 0x00e000e0
+0, 424800, 428400, 3600, 261, 0xdb988134, F=0x0, S=1, 1, 0x00e000e0
+0, 428400, 435600, 3600, 156, 0xd2c3406c, F=0x0, S=1, 1, 0x00e000e0
+0, 432000, 439200, 3600, 330, 0x150d9b60, F=0x0, S=1, 1, 0x00e000e0
+0, 435600, 446400, 3600, 324, 0x558194ee, F=0x0, S=1, 1, 0x00e000e0
+0, 439200, 442800, 3600, 191, 0x108e54d1, F=0x0, S=1, 1, 0x00e000e0
0, 442800, 450000, 3600, 233, 0xac5b6486, F=0x0
diff --git a/tests/ref/fate/shortest b/tests/ref/fate/shortest
index 0690799d8db..c8e594df626 100644
--- a/tests/ref/fate/shortest
+++ b/tests/ref/fate/shortest
@@ -9,109 +9,109 @@
#sample_rate 1: 44100
#channel_layout_name 1: mono
1, -256, -256, 1536, 416, 0x69efcbcc
-0, 0, 0, 1, 27867, 0x1426a0d6, S=1, 8
+0, 0, 0, 1, 27867, 0x1426a0d6, S=1, 8, 0x050000a1
1, 1280, 1280, 1536, 418, 0xa0ccc09d
-0, 1, 1, 1, 9806, 0xbebc2826, F=0x0, S=1, 8
+0, 1, 1, 1, 9806, 0xbebc2826, F=0x0, S=1, 8, 0x050400a2
1, 2816, 2816, 1536, 418, 0xb873cb60
-0, 2, 2, 1, 10453, 0x4a188450, F=0x0, S=1, 8
+0, 2, 2, 1, 10453, 0x4a188450, F=0x0, S=1, 8, 0x050400a2
1, 4352, 4352, 1536, 418, 0x1366c008
-0, 3, 3, 1, 10248, 0x4c831c08, F=0x0, S=1, 8
+0, 3, 3, 1, 10248, 0x4c831c08, F=0x0, S=1, 8, 0x050400a2
1, 5888, 5888, 1536, 418, 0xeb24c8da
-0, 4, 4, 1, 11680, 0x5508c44d, F=0x0, S=1, 8
+0, 4, 4, 1, 11680, 0x5508c44d, F=0x0, S=1, 8, 0x050400a2
1, 7424, 7424, 1536, 418, 0xc75ac55e
-0, 5, 5, 1, 11046, 0x096ca433, F=0x0, S=1, 8
+0, 5, 5, 1, 11046, 0x096ca433, F=0x0, S=1, 8, 0x050400a2
1, 8960, 8960, 1536, 418, 0xe336d28d
1, 10496, 10496, 1536, 418, 0xd0acc452
-0, 6, 6, 1, 9888, 0x440a5b45, F=0x0, S=1, 8
+0, 6, 6, 1, 9888, 0x440a5b45, F=0x0, S=1, 8, 0x050400a2
1, 12032, 12032, 1536, 418, 0xae88c75f
-0, 7, 7, 1, 10165, 0x116d4909, F=0x0, S=1, 8
+0, 7, 7, 1, 10165, 0x116d4909, F=0x0, S=1, 8, 0x050400a2
1, 13568, 13568, 1536, 418, 0xa200b8f0
-0, 8, 8, 1, 11704, 0xb334a24c, F=0x0, S=1, 8
+0, 8, 8, 1, 11704, 0xb334a24c, F=0x0, S=1, 8, 0x050400a2
1, 15104, 15104, 1536, 418, 0x009dccf6
-0, 9, 9, 1, 11059, 0x49aa6515, F=0x0, S=1, 8
+0, 9, 9, 1, 11059, 0x49aa6515, F=0x0, S=1, 8, 0x050400a2
1, 16640, 16640, 1536, 418, 0x585ec129
-0, 10, 10, 1, 8764, 0x8214fab0, F=0x0, S=1, 8
+0, 10, 10, 1, 8764, 0x8214fab0, F=0x0, S=1, 8, 0x050400a2
1, 18176, 18176, 1536, 418, 0xda1acf75
-0, 11, 11, 1, 9328, 0x92987740, F=0x0, S=1, 8
+0, 11, 11, 1, 9328, 0x92987740, F=0x0, S=1, 8, 0x050400a2
1, 19712, 19712, 1536, 418, 0xd326d279
-0, 12, 12, 1, 27955, 0xe25edb6c, S=1, 8
+0, 12, 12, 1, 27955, 0xe25edb6c, S=1, 8, 0x050000a1
1, 21248, 21248, 1536, 418, 0x1b54bf76
1, 22784, 22784, 1536, 418, 0xdb39cbd1
-0, 13, 13, 1, 11181, 0x3cf56687, F=0x0, S=1, 8
+0, 13, 13, 1, 11181, 0x3cf56687, F=0x0, S=1, 8, 0x050400a2
1, 24320, 24320, 1536, 418, 0x6813cefa
-0, 14, 14, 1, 12002, 0x87942530, F=0x0, S=1, 8
+0, 14, 14, 1, 12002, 0x87942530, F=0x0, S=1, 8, 0x050400a2
1, 25856, 25856, 1536, 418, 0xb402d2ec
-0, 15, 15, 1, 10122, 0xbb10e8d9, F=0x0, S=1, 8
+0, 15, 15, 1, 10122, 0xbb10e8d9, F=0x0, S=1, 8, 0x050400a2
1, 27392, 27392, 1536, 418, 0x80c4c8d2
-0, 16, 16, 1, 9715, 0xa4a1325c, F=0x0, S=1, 8
+0, 16, 16, 1, 9715, 0xa4a1325c, F=0x0, S=1, 8, 0x050400a2
1, 28928, 28928, 1536, 418, 0xaeaac123
-0, 17, 17, 1, 11222, 0x15118a48, F=0x0, S=1, 8
+0, 17, 17, 1, 11222, 0x15118a48, F=0x0, S=1, 8, 0x050400a2
1, 30464, 30464, 1536, 418, 0xe2c9c038
-0, 18, 18, 1, 11384, 0xd4304391, F=0x0, S=1, 8
+0, 18, 18, 1, 11384, 0xd4304391, F=0x0, S=1, 8, 0x050400a2
1, 32000, 32000, 1536, 418, 0x3f37c65b
-0, 19, 19, 1, 9141, 0xabd1eb90, F=0x0, S=1, 8
+0, 19, 19, 1, 9141, 0xabd1eb90, F=0x0, S=1, 8, 0x050400a2
1, 33536, 33536, 1536, 418, 0xf9a2cf98
1, 35072, 35072, 1536, 418, 0xc951cbb5
-0, 20, 20, 1, 10049, 0x5b388bc2, F=0x0, S=1, 8
+0, 20, 20, 1, 10049, 0x5b388bc2, F=0x0, S=1, 8, 0x050400a2
1, 36608, 36608, 1536, 418, 0x4e92be94
-0, 21, 21, 1, 9049, 0x214505c3, F=0x0, S=1, 8
+0, 21, 21, 1, 9049, 0x214505c3, F=0x0, S=1, 8, 0x050400a2
1, 38144, 38144, 1536, 418, 0xa9d8c8d0
-0, 22, 22, 1, 9101, 0xdba6e5ba, F=0x0, S=1, 8
+0, 22, 22, 1, 9101, 0xdba6e5ba, F=0x0, S=1, 8, 0x050400a2
1, 39680, 39680, 1536, 418, 0xe4c8bc20
-0, 23, 23, 1, 10351, 0x0aea5644, F=0x0, S=1, 8
+0, 23, 23, 1, 10351, 0x0aea5644, F=0x0, S=1, 8, 0x050400a2
1, 41216, 41216, 1536, 418, 0x2ccac571
-0, 24, 24, 1, 27864, 0xd0287877, S=1, 8
+0, 24, 24, 1, 27864, 0xd0287877, S=1, 8, 0x050000a1
1, 42752, 42752, 1536, 418, 0xd2a0cbff
-0, 25, 25, 1, 9026, 0x01ec7d47, F=0x0, S=1, 8
+0, 25, 25, 1, 9026, 0x01ec7d47, F=0x0, S=1, 8, 0x050400a2
1, 44288, 44288, 1536, 418, 0xffadb489
1, 45824, 45824, 1536, 418, 0x1246cae7
-0, 26, 26, 1, 8894, 0x5917d83b, F=0x0, S=1, 8
+0, 26, 26, 1, 8894, 0x5917d83b, F=0x0, S=1, 8, 0x050400a2
1, 47360, 47360, 1536, 418, 0xa74eb1f7
-0, 27, 27, 1, 10119, 0x3a2ede3a, F=0x0, S=1, 8
+0, 27, 27, 1, 10119, 0x3a2ede3a, F=0x0, S=1, 8, 0x050400a2
1, 48896, 48896, 1536, 418, 0x98cfc032
-0, 28, 28, 1, 10290, 0xea641449, F=0x0, S=1, 8
+0, 28, 28, 1, 10290, 0xea641449, F=0x0, S=1, 8, 0x050400a2
1, 50432, 50432, 1536, 418, 0x8045c0a7
-0, 29, 29, 1, 10922, 0xeb7e9700, F=0x0, S=1, 8
+0, 29, 29, 1, 10922, 0xeb7e9700, F=0x0, S=1, 8, 0x050400a2
1, 51968, 51968, 1536, 418, 0x2180c196
-0, 30, 30, 1, 9680, 0x929d1f59, F=0x0, S=1, 8
+0, 30, 30, 1, 9680, 0x929d1f59, F=0x0, S=1, 8, 0x050400a2
1, 53504, 53504, 1536, 418, 0x35f2b4d1
-0, 31, 31, 1, 8733, 0x8fa8fc4e, F=0x0, S=1, 8
+0, 31, 31, 1, 8733, 0x8fa8fc4e, F=0x0, S=1, 8, 0x050400a2
1, 55040, 55040, 1536, 418, 0x876ec74d
-0, 32, 32, 1, 9878, 0xe3f555e9, F=0x0, S=1, 8
+0, 32, 32, 1, 9878, 0xe3f555e9, F=0x0, S=1, 8, 0x050400a2
1, 56576, 56576, 1536, 418, 0xbccebddd
1, 58112, 58112, 1536, 418, 0x40a1bcc7
-0, 33, 33, 1, 10926, 0x2a2bed74, F=0x0, S=1, 8
+0, 33, 33, 1, 10926, 0x2a2bed74, F=0x0, S=1, 8, 0x050400a2
1, 59648, 59648, 1536, 418, 0xbd10bf09
-0, 34, 34, 1, 12170, 0x70c8ab23, F=0x0, S=1, 8
+0, 34, 34, 1, 12170, 0x70c8ab23, F=0x0, S=1, 8, 0x050400a2
1, 61184, 61184, 1536, 418, 0xb8e4b630
-0, 35, 35, 1, 11631, 0x7d5e8297, F=0x0, S=1, 8
+0, 35, 35, 1, 11631, 0x7d5e8297, F=0x0, S=1, 8, 0x050400a2
1, 62720, 62720, 1536, 418, 0xc667bd39
-0, 36, 36, 1, 28056, 0x10bef294, S=1, 8
+0, 36, 36, 1, 28056, 0x10bef294, S=1, 8, 0x050000a1
1, 64256, 64256, 1536, 418, 0x2985c4ac
-0, 37, 37, 1, 11067, 0x490af43b, F=0x0, S=1, 8
+0, 37, 37, 1, 11067, 0x490af43b, F=0x0, S=1, 8, 0x050400a2
1, 65792, 65792, 1536, 418, 0xb229b697
-0, 38, 38, 1, 11046, 0x6dba2441, F=0x0, S=1, 8
+0, 38, 38, 1, 11046, 0x6dba2441, F=0x0, S=1, 8, 0x050400a2
1, 67328, 67328, 1536, 418, 0xd2eec6d8
-0, 39, 39, 1, 10922, 0x069cfa74, F=0x0, S=1, 8
+0, 39, 39, 1, 10922, 0x069cfa74, F=0x0, S=1, 8, 0x050400a2
1, 68864, 68864, 1536, 418, 0x74a9c1a9
1, 70400, 70400, 1536, 418, 0x2d1cc383
-0, 40, 40, 1, 11477, 0x18baebc1, F=0x0, S=1, 8
+0, 40, 40, 1, 11477, 0x18baebc1, F=0x0, S=1, 8, 0x050400a2
1, 71936, 71936, 1536, 418, 0x0ad9c88a
-0, 41, 41, 1, 10285, 0x792623a6, F=0x0, S=1, 8
+0, 41, 41, 1, 10285, 0x792623a6, F=0x0, S=1, 8, 0x050400a2
1, 73472, 73472, 1536, 418, 0x9aa3d0a7
-0, 42, 42, 1, 9961, 0x69d8a3b1, F=0x0, S=1, 8
+0, 42, 42, 1, 9961, 0x69d8a3b1, F=0x0, S=1, 8, 0x050400a2
1, 75008, 75008, 1536, 416, 0x99f5b2b6
-0, 43, 43, 1, 11162, 0x6f3788c6, F=0x0, S=1, 8
+0, 43, 43, 1, 11162, 0x6f3788c6, F=0x0, S=1, 8, 0x050400a2
1, 76544, 76544, 1536, 418, 0xfb7dc20d
-0, 44, 44, 1, 10696, 0x524ad4f8, F=0x0, S=1, 8
+0, 44, 44, 1, 10696, 0x524ad4f8, F=0x0, S=1, 8, 0x050400a2
1, 78080, 78080, 1536, 418, 0xebc8c568
-0, 45, 45, 1, 10319, 0x9d6ff8f7, F=0x0, S=1, 8
+0, 45, 45, 1, 10319, 0x9d6ff8f7, F=0x0, S=1, 8, 0x050400a2
1, 79616, 79616, 1536, 418, 0x7361c949
-0, 46, 46, 1, 8796, 0xb0cc869e, F=0x0, S=1, 8
+0, 46, 46, 1, 8796, 0xb0cc869e, F=0x0, S=1, 8, 0x050400a2
1, 81152, 81152, 1536, 418, 0x85d8bbd0
1, 82688, 82688, 1536, 418, 0x72e8bad1
-0, 47, 47, 1, 8779, 0x2027399c, F=0x0, S=1, 8
+0, 47, 47, 1, 8779, 0x2027399c, F=0x0, S=1, 8, 0x050400a2
1, 84224, 84224, 1536, 418, 0x4febb56f
-0, 48, 48, 1, 28143, 0x1df268c5, S=1, 8
+0, 48, 48, 1, 28143, 0x1df268c5, S=1, 8, 0x050000a1
1, 85760, 85760, 1536, 418, 0xae06ca91
-0, 49, 49, 1, 10073, 0xedb9f031, F=0x0, S=1, 8
+0, 49, 49, 1, 10073, 0xedb9f031, F=0x0, S=1, 8, 0x050400a2
diff --git a/tests/ref/fate/webm-hdr10-plus-remux b/tests/ref/fate/webm-hdr10-plus-remux
index 04ab55e56fa..75fa76fd641 100644
--- a/tests/ref/fate/webm-hdr10-plus-remux
+++ b/tests/ref/fate/webm-hdr10-plus-remux
@@ -5,7 +5,7 @@
#codec_id 0: vp9
#dimensions 0: 1280x720
#sar 0: 1/1
-0, 0, 0, 40, 13350, 0x5f64e443, S=1, 11304
+0, 0, 0, 40, 13350, 0x5f64e443, S=1, 11304, 0xf822276d
[PACKET]
codec_type=video
stream_index=0
diff --git a/tests/ref/fate/webm-webvtt-remux b/tests/ref/fate/webm-webvtt-remux
index 3775926909a..61d621c4117 100644
--- a/tests/ref/fate/webm-webvtt-remux
+++ b/tests/ref/fate/webm-webvtt-remux
@@ -16,20 +16,20 @@ c372c76c062d368f1d17373c19f83579 *tests/data/fate/webm-webvtt-remux.webm
1, 18000, 18000, 2000, 51, 0xc84211f5
0, 20000, 20000, 2000, 67, 0x3e2918c7
1, 20000, 20000, 2000, 67, 0x3e2918c7
-0, 22000, 22000, 2000, 29, 0x93f7098d, S=1, 3
-1, 22000, 22000, 2000, 29, 0x93f7098d, S=1, 3
+0, 22000, 22000, 2000, 29, 0x93f7098d, S=1, 3, 0x012a0096
+1, 22000, 22000, 2000, 29, 0x93f7098d, S=1, 3, 0x012a0096
0, 24000, 24000, 2000, 49, 0xb2d91196
1, 24000, 24000, 2000, 49, 0xb2d91196
-0, 27000, 27000, 3000, 99, 0xb750231a, S=1, 14
-1, 27000, 27000, 3000, 99, 0xb750231a, S=1, 14
-0, 30000, 30000, 1500, 36, 0xe7f70d87, S=1, 18
-1, 30000, 30000, 1500, 36, 0xe7f70d87, S=1, 18
-0, 30500, 30500, 2000, 112, 0x6961267d, S=1, 20
-1, 30500, 30500, 2000, 112, 0x6961267d, S=1, 20
-0, 32000, 32000, 3500, 58, 0x32d11382, S=1, 18
-1, 32000, 32000, 3500, 58, 0x32d11382, S=1, 18
-0, 32500, 32500, 1000, 36, 0xe6650c7c, S=1, 20
-1, 32500, 32500, 1000, 36, 0xe6650c7c, S=1, 20
+0, 27000, 27000, 3000, 99, 0xb750231a, S=1, 14, 0x292a0588
+1, 27000, 27000, 3000, 99, 0xb750231a, S=1, 14, 0x292a0588
+0, 30000, 30000, 1500, 36, 0xe7f70d87, S=1, 18, 0x3f63061b
+1, 30000, 30000, 1500, 36, 0xe7f70d87, S=1, 18, 0x3f63061b
+0, 30500, 30500, 2000, 112, 0x6961267d, S=1, 20, 0x50b70712
+1, 30500, 30500, 2000, 112, 0x6961267d, S=1, 20, 0x50b70712
+0, 32000, 32000, 3500, 58, 0x32d11382, S=1, 18, 0x3f63061b
+1, 32000, 32000, 3500, 58, 0x32d11382, S=1, 18, 0x3f63061b
+0, 32500, 32500, 1000, 36, 0xe6650c7c, S=1, 20, 0x47000712
+1, 32500, 32500, 1000, 36, 0xe6650c7c, S=1, 20, 0x47000712
0, 35500, 35500, 2500, 73, 0xb13f19c0
1, 35500, 35500, 2500, 73, 0xb13f19c0
0, 50000, 50000, 1134, 43, 0x534b0ee3
--
2.43.2
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-04-27 0:36 [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data Michael Niedermayer
@ 2024-04-27 10:44 ` Andreas Rheinhardt
2024-04-27 12:07 ` Michael Niedermayer
2024-05-27 8:15 ` Anton Khirnov
1 sibling, 1 reply; 22+ messages in thread
From: Andreas Rheinhardt @ 2024-04-27 10:44 UTC (permalink / raw)
To: ffmpeg-devel
Michael Niedermayer:
> This allows detecting issues in side data related code, same as what
> framecrc does for before already for packet data itself.
>
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
> libavformat/framecrcenc.c | 76 +-
> tests/ref/fate/autorotate | 2 +-
> tests/ref/fate/cover-art-mp3-id3v2-remux | 2 +-
> tests/ref/fate/ffmpeg-bsf-input | 10 +-
> tests/ref/fate/force_key_frames-source | 784 ++++++------
> tests/ref/fate/force_key_frames-source-drop | 34 +-
> tests/ref/fate/force_key_frames-source-dup | 1224 +++++++++----------
> tests/ref/fate/gapless-mp3 | 6 +-
> tests/ref/fate/h264_redundant_pps-side_data | 2 +-
> tests/ref/fate/iamf-5_1-copy | 208 ++--
> tests/ref/fate/iamf-5_1-demux | 208 ++--
> tests/ref/fate/id3v2-priv-remux | 2 +-
> tests/ref/fate/matroska-hdr10-plus-remux | 2 +-
> tests/ref/fate/matroska-ogg-opus-remux | 2 +-
> tests/ref/fate/matroska-opus-remux | 2 +-
> tests/ref/fate/matroska-vp8-alpha-remux | 14 +-
> tests/ref/fate/mov-cover-image | 2 +-
> tests/ref/fate/segment-mp4-to-ts | 250 ++--
> tests/ref/fate/shortest | 100 +-
> tests/ref/fate/webm-hdr10-plus-remux | 2 +-
> tests/ref/fate/webm-webvtt-remux | 24 +-
> 21 files changed, 1513 insertions(+), 1443 deletions(-)
>
> diff --git a/libavformat/framecrcenc.c b/libavformat/framecrcenc.c
> index ce306a6c498..e71bfbd8777 100644
> --- a/libavformat/framecrcenc.c
> +++ b/libavformat/framecrcenc.c
> @@ -21,8 +21,10 @@
>
> #include <inttypes.h>
>
> +#include "config.h"
> #include "libavutil/adler32.h"
> #include "libavutil/avstring.h"
> +#include "libavutil/intreadwrite.h"
>
> #include "libavcodec/codec_id.h"
> #include "libavcodec/codec_par.h"
> @@ -48,6 +50,17 @@ static int framecrc_write_header(struct AVFormatContext *s)
> return ff_framehash_write_header(s);
> }
>
> +static av_unused void inline bswap(char *buf, int offset, int size)
> +{
> + if (size == 8) {
> + uint64_t val = AV_RN64(buf + offset);
> + AV_WN64(buf + offset, av_bswap64(val));
> + } else if (size == 4) {
> + uint32_t val = AV_RN32(buf + offset);
> + AV_WN32(buf + offset, av_bswap32(val));
> + }
> +}
> +
> static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
> {
> uint32_t crc = av_adler32_update(0, pkt->data, pkt->size);
> @@ -58,11 +71,68 @@ static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
> if (pkt->flags != AV_PKT_FLAG_KEY)
> av_strlcatf(buf, sizeof(buf), ", F=0x%0X", pkt->flags);
> if (pkt->side_data_elems) {
> + int i;
This change is wrong.
> av_strlcatf(buf, sizeof(buf), ", S=%d", pkt->side_data_elems);
>
> - for (int i = 0; i < pkt->side_data_elems; i++) {
> - av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER,
> - pkt->side_data[i].size);
> + for (i=0; i<pkt->side_data_elems; i++) {
> + const AVPacketSideData *const sd = &pkt->side_data[i];
> + const uint8_t *data = sd->data;
> + uint32_t side_data_crc = 0;
> +
> + switch (sd->type) {
> +#if HAVE_BIGENDIAN
> + uint8_t bswap_buf[FFMAX(sizeof(AVCPBProperties),
> + sizeof(AVProducerReferenceTime))];
> + case AV_PKT_DATA_PALETTE:
> + case AV_PKT_DATA_REPLAYGAIN:
> + case AV_PKT_DATA_DISPLAYMATRIX:
> + case AV_PKT_DATA_STEREO3D:
> + case AV_PKT_DATA_AUDIO_SERVICE_TYPE:
> + case AV_PKT_DATA_FALLBACK_TRACK:
> + case AV_PKT_DATA_MASTERING_DISPLAY_METADATA:
> + case AV_PKT_DATA_SPHERICAL:
> + case AV_PKT_DATA_CONTENT_LIGHT_LEVEL:
> + case AV_PKT_DATA_S12M_TIMECODE:
> + for (size_t j = 0; j < sd->size / 4; j++) {
> + uint8_t buf[4];
> + AV_WL32(buf, AV_RB32(sd->data + 4 * j));
> + side_data_crc = av_adler32_update(side_data_crc, buf, 4);
> + }
> + break;
> + case AV_PKT_DATA_CPB_PROPERTIES:
> +#define BSWAP(struct, field) bswap(bswap_buf, offsetof(struct, field), sizeof(((struct){0}).field))
> + if (sd->size == sizeof(AVCPBProperties)) {
> + memcpy(bswap_buf, sd->data, sizeof(AVCPBProperties));
> + data = bswap_buf;
> + BSWAP(AVCPBProperties, max_bitrate);
> + BSWAP(AVCPBProperties, min_bitrate);
> + BSWAP(AVCPBProperties, avg_bitrate);
> + BSWAP(AVCPBProperties, buffer_size);
> + BSWAP(AVCPBProperties, vbv_delay);
> + }
> + goto pod;
> + case AV_PKT_DATA_PRFT:
> + if (sd->size == sizeof(AVProducerReferenceTime)) {
> + memcpy(bswap_buf, sd->data, sizeof(AVProducerReferenceTime));
> + data = bswap_buf;
> + BSWAP(AVProducerReferenceTime, wallclock);
> + BSWAP(AVProducerReferenceTime, flags);
> + }
> + goto pod;
> + pod:
> +#endif
> +
> + default:
> + side_data_crc = av_adler32_update(0, data, sd->size);
> + break;
> + case AV_PKT_DATA_IAMF_MIX_GAIN_PARAM:
> + case AV_PKT_DATA_IAMF_DEMIXING_INFO_PARAM:
> + case AV_PKT_DATA_IAMF_RECON_GAIN_INFO_PARAM:
> + side_data_crc = 0;
> + }
> +
> + av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER", 0x%08"PRIx32,
> + pkt->side_data[i].size, side_data_crc);
> }
> }
> av_strlcatf(buf, sizeof(buf), "\n");
You should mention that you are basically reverting
c6ae560a18d67b9ddaa25a0338b7fb55e3312e57.
- Andreas
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-04-27 10:44 ` Andreas Rheinhardt
@ 2024-04-27 12:07 ` Michael Niedermayer
2024-04-28 3:43 ` James Almer
0 siblings, 1 reply; 22+ messages in thread
From: Michael Niedermayer @ 2024-04-27 12:07 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 7289 bytes --]
On Sat, Apr 27, 2024 at 12:44:18PM +0200, Andreas Rheinhardt wrote:
> Michael Niedermayer:
> > This allows detecting issues in side data related code, same as what
> > framecrc does for before already for packet data itself.
> >
> > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > ---
> > libavformat/framecrcenc.c | 76 +-
> > tests/ref/fate/autorotate | 2 +-
> > tests/ref/fate/cover-art-mp3-id3v2-remux | 2 +-
> > tests/ref/fate/ffmpeg-bsf-input | 10 +-
> > tests/ref/fate/force_key_frames-source | 784 ++++++------
> > tests/ref/fate/force_key_frames-source-drop | 34 +-
> > tests/ref/fate/force_key_frames-source-dup | 1224 +++++++++----------
> > tests/ref/fate/gapless-mp3 | 6 +-
> > tests/ref/fate/h264_redundant_pps-side_data | 2 +-
> > tests/ref/fate/iamf-5_1-copy | 208 ++--
> > tests/ref/fate/iamf-5_1-demux | 208 ++--
> > tests/ref/fate/id3v2-priv-remux | 2 +-
> > tests/ref/fate/matroska-hdr10-plus-remux | 2 +-
> > tests/ref/fate/matroska-ogg-opus-remux | 2 +-
> > tests/ref/fate/matroska-opus-remux | 2 +-
> > tests/ref/fate/matroska-vp8-alpha-remux | 14 +-
> > tests/ref/fate/mov-cover-image | 2 +-
> > tests/ref/fate/segment-mp4-to-ts | 250 ++--
> > tests/ref/fate/shortest | 100 +-
> > tests/ref/fate/webm-hdr10-plus-remux | 2 +-
> > tests/ref/fate/webm-webvtt-remux | 24 +-
> > 21 files changed, 1513 insertions(+), 1443 deletions(-)
> >
> > diff --git a/libavformat/framecrcenc.c b/libavformat/framecrcenc.c
> > index ce306a6c498..e71bfbd8777 100644
> > --- a/libavformat/framecrcenc.c
> > +++ b/libavformat/framecrcenc.c
> > @@ -21,8 +21,10 @@
> >
> > #include <inttypes.h>
> >
> > +#include "config.h"
> > #include "libavutil/adler32.h"
> > #include "libavutil/avstring.h"
> > +#include "libavutil/intreadwrite.h"
> >
> > #include "libavcodec/codec_id.h"
> > #include "libavcodec/codec_par.h"
> > @@ -48,6 +50,17 @@ static int framecrc_write_header(struct AVFormatContext *s)
> > return ff_framehash_write_header(s);
> > }
> >
> > +static av_unused void inline bswap(char *buf, int offset, int size)
> > +{
> > + if (size == 8) {
> > + uint64_t val = AV_RN64(buf + offset);
> > + AV_WN64(buf + offset, av_bswap64(val));
> > + } else if (size == 4) {
> > + uint32_t val = AV_RN32(buf + offset);
> > + AV_WN32(buf + offset, av_bswap32(val));
> > + }
> > +}
> > +
> > static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
> > {
> > uint32_t crc = av_adler32_update(0, pkt->data, pkt->size);
> > @@ -58,11 +71,68 @@ static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
> > if (pkt->flags != AV_PKT_FLAG_KEY)
> > av_strlcatf(buf, sizeof(buf), ", F=0x%0X", pkt->flags);
> > if (pkt->side_data_elems) {
> > + int i;
>
> This change is wrong.
>
> > av_strlcatf(buf, sizeof(buf), ", S=%d", pkt->side_data_elems);
> >
> > - for (int i = 0; i < pkt->side_data_elems; i++) {
> > - av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER,
> > - pkt->side_data[i].size);
> > + for (i=0; i<pkt->side_data_elems; i++) {
> > + const AVPacketSideData *const sd = &pkt->side_data[i];
> > + const uint8_t *data = sd->data;
> > + uint32_t side_data_crc = 0;
> > +
> > + switch (sd->type) {
> > +#if HAVE_BIGENDIAN
> > + uint8_t bswap_buf[FFMAX(sizeof(AVCPBProperties),
> > + sizeof(AVProducerReferenceTime))];
> > + case AV_PKT_DATA_PALETTE:
> > + case AV_PKT_DATA_REPLAYGAIN:
> > + case AV_PKT_DATA_DISPLAYMATRIX:
> > + case AV_PKT_DATA_STEREO3D:
> > + case AV_PKT_DATA_AUDIO_SERVICE_TYPE:
> > + case AV_PKT_DATA_FALLBACK_TRACK:
> > + case AV_PKT_DATA_MASTERING_DISPLAY_METADATA:
> > + case AV_PKT_DATA_SPHERICAL:
> > + case AV_PKT_DATA_CONTENT_LIGHT_LEVEL:
> > + case AV_PKT_DATA_S12M_TIMECODE:
> > + for (size_t j = 0; j < sd->size / 4; j++) {
> > + uint8_t buf[4];
> > + AV_WL32(buf, AV_RB32(sd->data + 4 * j));
> > + side_data_crc = av_adler32_update(side_data_crc, buf, 4);
> > + }
> > + break;
> > + case AV_PKT_DATA_CPB_PROPERTIES:
> > +#define BSWAP(struct, field) bswap(bswap_buf, offsetof(struct, field), sizeof(((struct){0}).field))
> > + if (sd->size == sizeof(AVCPBProperties)) {
> > + memcpy(bswap_buf, sd->data, sizeof(AVCPBProperties));
> > + data = bswap_buf;
> > + BSWAP(AVCPBProperties, max_bitrate);
> > + BSWAP(AVCPBProperties, min_bitrate);
> > + BSWAP(AVCPBProperties, avg_bitrate);
> > + BSWAP(AVCPBProperties, buffer_size);
> > + BSWAP(AVCPBProperties, vbv_delay);
> > + }
> > + goto pod;
> > + case AV_PKT_DATA_PRFT:
> > + if (sd->size == sizeof(AVProducerReferenceTime)) {
> > + memcpy(bswap_buf, sd->data, sizeof(AVProducerReferenceTime));
> > + data = bswap_buf;
> > + BSWAP(AVProducerReferenceTime, wallclock);
> > + BSWAP(AVProducerReferenceTime, flags);
> > + }
> > + goto pod;
> > + pod:
> > +#endif
> > +
> > + default:
> > + side_data_crc = av_adler32_update(0, data, sd->size);
> > + break;
> > + case AV_PKT_DATA_IAMF_MIX_GAIN_PARAM:
> > + case AV_PKT_DATA_IAMF_DEMIXING_INFO_PARAM:
> > + case AV_PKT_DATA_IAMF_RECON_GAIN_INFO_PARAM:
> > + side_data_crc = 0;
> > + }
> > +
> > + av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER", 0x%08"PRIx32,
> > + pkt->side_data[i].size, side_data_crc);
> > }
> > }
> > av_strlcatf(buf, sizeof(buf), "\n");
>
> You should mention that you are basically reverting
> c6ae560a18d67b9ddaa25a0338b7fb55e3312e57.
right, i didnt keep track of this as i just needed this locally
for testing to be possible and at the time didnt expect to
submit this to ffmpeg. But now 3 years later, it seems to make
sense to see if people want this maybe.
To test side data, it IS needed to well test side data.
But if people still want to not test side data in FFmpeg git.
I can continue to be the only one testing side data :)
ill repost it with a reference to c6ae560a18d67b9ddaa25a0338b7fb55e3312e57
and without the int i change, i did miss that.
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
It is what and why we do it that matters, not just one of them.
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-04-27 12:07 ` Michael Niedermayer
@ 2024-04-28 3:43 ` James Almer
2024-04-30 23:25 ` Michael Niedermayer
0 siblings, 1 reply; 22+ messages in thread
From: James Almer @ 2024-04-28 3:43 UTC (permalink / raw)
To: ffmpeg-devel
On 4/27/2024 9:07 AM, Michael Niedermayer wrote:
> On Sat, Apr 27, 2024 at 12:44:18PM +0200, Andreas Rheinhardt wrote:
>> Michael Niedermayer:
>>> This allows detecting issues in side data related code, same as what
>>> framecrc does for before already for packet data itself.
>>>
>>> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
>>> ---
>>> libavformat/framecrcenc.c | 76 +-
>>> tests/ref/fate/autorotate | 2 +-
>>> tests/ref/fate/cover-art-mp3-id3v2-remux | 2 +-
>>> tests/ref/fate/ffmpeg-bsf-input | 10 +-
>>> tests/ref/fate/force_key_frames-source | 784 ++++++------
>>> tests/ref/fate/force_key_frames-source-drop | 34 +-
>>> tests/ref/fate/force_key_frames-source-dup | 1224 +++++++++----------
>>> tests/ref/fate/gapless-mp3 | 6 +-
>>> tests/ref/fate/h264_redundant_pps-side_data | 2 +-
>>> tests/ref/fate/iamf-5_1-copy | 208 ++--
>>> tests/ref/fate/iamf-5_1-demux | 208 ++--
>>> tests/ref/fate/id3v2-priv-remux | 2 +-
>>> tests/ref/fate/matroska-hdr10-plus-remux | 2 +-
>>> tests/ref/fate/matroska-ogg-opus-remux | 2 +-
>>> tests/ref/fate/matroska-opus-remux | 2 +-
>>> tests/ref/fate/matroska-vp8-alpha-remux | 14 +-
>>> tests/ref/fate/mov-cover-image | 2 +-
>>> tests/ref/fate/segment-mp4-to-ts | 250 ++--
>>> tests/ref/fate/shortest | 100 +-
>>> tests/ref/fate/webm-hdr10-plus-remux | 2 +-
>>> tests/ref/fate/webm-webvtt-remux | 24 +-
>>> 21 files changed, 1513 insertions(+), 1443 deletions(-)
>>>
>>> diff --git a/libavformat/framecrcenc.c b/libavformat/framecrcenc.c
>>> index ce306a6c498..e71bfbd8777 100644
>>> --- a/libavformat/framecrcenc.c
>>> +++ b/libavformat/framecrcenc.c
>>> @@ -21,8 +21,10 @@
>>>
>>> #include <inttypes.h>
>>>
>>> +#include "config.h"
>>> #include "libavutil/adler32.h"
>>> #include "libavutil/avstring.h"
>>> +#include "libavutil/intreadwrite.h"
>>>
>>> #include "libavcodec/codec_id.h"
>>> #include "libavcodec/codec_par.h"
>>> @@ -48,6 +50,17 @@ static int framecrc_write_header(struct AVFormatContext *s)
>>> return ff_framehash_write_header(s);
>>> }
>>>
>>> +static av_unused void inline bswap(char *buf, int offset, int size)
>>> +{
>>> + if (size == 8) {
>>> + uint64_t val = AV_RN64(buf + offset);
>>> + AV_WN64(buf + offset, av_bswap64(val));
>>> + } else if (size == 4) {
>>> + uint32_t val = AV_RN32(buf + offset);
>>> + AV_WN32(buf + offset, av_bswap32(val));
>>> + }
>>> +}
>>> +
>>> static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
>>> {
>>> uint32_t crc = av_adler32_update(0, pkt->data, pkt->size);
>>> @@ -58,11 +71,68 @@ static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
>>> if (pkt->flags != AV_PKT_FLAG_KEY)
>>> av_strlcatf(buf, sizeof(buf), ", F=0x%0X", pkt->flags);
>>> if (pkt->side_data_elems) {
>>> + int i;
>>
>> This change is wrong.
>>
>>> av_strlcatf(buf, sizeof(buf), ", S=%d", pkt->side_data_elems);
>>>
>>> - for (int i = 0; i < pkt->side_data_elems; i++) {
>>> - av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER,
>>> - pkt->side_data[i].size);
>>> + for (i=0; i<pkt->side_data_elems; i++) {
>>> + const AVPacketSideData *const sd = &pkt->side_data[i];
>>> + const uint8_t *data = sd->data;
>>> + uint32_t side_data_crc = 0;
>>> +
>>> + switch (sd->type) {
>>> +#if HAVE_BIGENDIAN
>>> + uint8_t bswap_buf[FFMAX(sizeof(AVCPBProperties),
>>> + sizeof(AVProducerReferenceTime))];
>>> + case AV_PKT_DATA_PALETTE:
>>> + case AV_PKT_DATA_REPLAYGAIN:
>>> + case AV_PKT_DATA_DISPLAYMATRIX:
>>> + case AV_PKT_DATA_STEREO3D:
>>> + case AV_PKT_DATA_AUDIO_SERVICE_TYPE:
>>> + case AV_PKT_DATA_FALLBACK_TRACK:
>>> + case AV_PKT_DATA_MASTERING_DISPLAY_METADATA:
>>> + case AV_PKT_DATA_SPHERICAL:
>>> + case AV_PKT_DATA_CONTENT_LIGHT_LEVEL:
>>> + case AV_PKT_DATA_S12M_TIMECODE:
>>> + for (size_t j = 0; j < sd->size / 4; j++) {
>>> + uint8_t buf[4];
>>> + AV_WL32(buf, AV_RB32(sd->data + 4 * j));
>>> + side_data_crc = av_adler32_update(side_data_crc, buf, 4);
>>> + }
>>> + break;
>>> + case AV_PKT_DATA_CPB_PROPERTIES:
>>> +#define BSWAP(struct, field) bswap(bswap_buf, offsetof(struct, field), sizeof(((struct){0}).field))
>>> + if (sd->size == sizeof(AVCPBProperties)) {
>>> + memcpy(bswap_buf, sd->data, sizeof(AVCPBProperties));
>>> + data = bswap_buf;
>>> + BSWAP(AVCPBProperties, max_bitrate);
>>> + BSWAP(AVCPBProperties, min_bitrate);
>>> + BSWAP(AVCPBProperties, avg_bitrate);
>>> + BSWAP(AVCPBProperties, buffer_size);
>>> + BSWAP(AVCPBProperties, vbv_delay);
>>> + }
>>> + goto pod;
>>> + case AV_PKT_DATA_PRFT:
>>> + if (sd->size == sizeof(AVProducerReferenceTime)) {
>>> + memcpy(bswap_buf, sd->data, sizeof(AVProducerReferenceTime));
>>> + data = bswap_buf;
>>> + BSWAP(AVProducerReferenceTime, wallclock);
>>> + BSWAP(AVProducerReferenceTime, flags);
>>> + }
>>> + goto pod;
>>> + pod:
>>> +#endif
>>> +
>>> + default:
>>> + side_data_crc = av_adler32_update(0, data, sd->size);
>>> + break;
>>> + case AV_PKT_DATA_IAMF_MIX_GAIN_PARAM:
>>> + case AV_PKT_DATA_IAMF_DEMIXING_INFO_PARAM:
>>> + case AV_PKT_DATA_IAMF_RECON_GAIN_INFO_PARAM:
>>> + side_data_crc = 0;
>>> + }
>>> +
>>> + av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER", 0x%08"PRIx32,
>>> + pkt->side_data[i].size, side_data_crc);
>>> }
>>> }
>>> av_strlcatf(buf, sizeof(buf), "\n");
>>
>> You should mention that you are basically reverting
>> c6ae560a18d67b9ddaa25a0338b7fb55e3312e57.
>
> right, i didnt keep track of this as i just needed this locally
> for testing to be possible and at the time didnt expect to
> submit this to ffmpeg. But now 3 years later, it seems to make
> sense to see if people want this maybe.
>
> To test side data, it IS needed to well test side data.
> But if people still want to not test side data in FFmpeg git.
> I can continue to be the only one testing side data :)
>
> ill repost it with a reference to c6ae560a18d67b9ddaa25a0338b7fb55e3312e57
> and without the int i change, i did miss that.
I'm not against adding checksum for side data if it can be ensured it
will be the same on both little and big endian, 32bit and 64bit, but I'm
against skipping specific types like you did above with the IAMF ones.
Or rather, against printing 0 for them, which is misleading. I'd rather
not print anything for them after the size.
>
> thx
>
> [...]
>
>
> _______________________________________________
> 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".
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-04-28 3:43 ` James Almer
@ 2024-04-30 23:25 ` Michael Niedermayer
2024-04-30 23:29 ` James Almer
0 siblings, 1 reply; 22+ messages in thread
From: Michael Niedermayer @ 2024-04-30 23:25 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 8615 bytes --]
On Sun, Apr 28, 2024 at 12:43:50AM -0300, James Almer wrote:
> On 4/27/2024 9:07 AM, Michael Niedermayer wrote:
> > On Sat, Apr 27, 2024 at 12:44:18PM +0200, Andreas Rheinhardt wrote:
> > > Michael Niedermayer:
> > > > This allows detecting issues in side data related code, same as what
> > > > framecrc does for before already for packet data itself.
> > > >
> > > > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > > > ---
> > > > libavformat/framecrcenc.c | 76 +-
> > > > tests/ref/fate/autorotate | 2 +-
> > > > tests/ref/fate/cover-art-mp3-id3v2-remux | 2 +-
> > > > tests/ref/fate/ffmpeg-bsf-input | 10 +-
> > > > tests/ref/fate/force_key_frames-source | 784 ++++++------
> > > > tests/ref/fate/force_key_frames-source-drop | 34 +-
> > > > tests/ref/fate/force_key_frames-source-dup | 1224 +++++++++----------
> > > > tests/ref/fate/gapless-mp3 | 6 +-
> > > > tests/ref/fate/h264_redundant_pps-side_data | 2 +-
> > > > tests/ref/fate/iamf-5_1-copy | 208 ++--
> > > > tests/ref/fate/iamf-5_1-demux | 208 ++--
> > > > tests/ref/fate/id3v2-priv-remux | 2 +-
> > > > tests/ref/fate/matroska-hdr10-plus-remux | 2 +-
> > > > tests/ref/fate/matroska-ogg-opus-remux | 2 +-
> > > > tests/ref/fate/matroska-opus-remux | 2 +-
> > > > tests/ref/fate/matroska-vp8-alpha-remux | 14 +-
> > > > tests/ref/fate/mov-cover-image | 2 +-
> > > > tests/ref/fate/segment-mp4-to-ts | 250 ++--
> > > > tests/ref/fate/shortest | 100 +-
> > > > tests/ref/fate/webm-hdr10-plus-remux | 2 +-
> > > > tests/ref/fate/webm-webvtt-remux | 24 +-
> > > > 21 files changed, 1513 insertions(+), 1443 deletions(-)
> > > >
> > > > diff --git a/libavformat/framecrcenc.c b/libavformat/framecrcenc.c
> > > > index ce306a6c498..e71bfbd8777 100644
> > > > --- a/libavformat/framecrcenc.c
> > > > +++ b/libavformat/framecrcenc.c
> > > > @@ -21,8 +21,10 @@
> > > > #include <inttypes.h>
> > > > +#include "config.h"
> > > > #include "libavutil/adler32.h"
> > > > #include "libavutil/avstring.h"
> > > > +#include "libavutil/intreadwrite.h"
> > > > #include "libavcodec/codec_id.h"
> > > > #include "libavcodec/codec_par.h"
> > > > @@ -48,6 +50,17 @@ static int framecrc_write_header(struct AVFormatContext *s)
> > > > return ff_framehash_write_header(s);
> > > > }
> > > > +static av_unused void inline bswap(char *buf, int offset, int size)
> > > > +{
> > > > + if (size == 8) {
> > > > + uint64_t val = AV_RN64(buf + offset);
> > > > + AV_WN64(buf + offset, av_bswap64(val));
> > > > + } else if (size == 4) {
> > > > + uint32_t val = AV_RN32(buf + offset);
> > > > + AV_WN32(buf + offset, av_bswap32(val));
> > > > + }
> > > > +}
> > > > +
> > > > static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
> > > > {
> > > > uint32_t crc = av_adler32_update(0, pkt->data, pkt->size);
> > > > @@ -58,11 +71,68 @@ static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
> > > > if (pkt->flags != AV_PKT_FLAG_KEY)
> > > > av_strlcatf(buf, sizeof(buf), ", F=0x%0X", pkt->flags);
> > > > if (pkt->side_data_elems) {
> > > > + int i;
> > >
> > > This change is wrong.
> > >
> > > > av_strlcatf(buf, sizeof(buf), ", S=%d", pkt->side_data_elems);
> > > > - for (int i = 0; i < pkt->side_data_elems; i++) {
> > > > - av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER,
> > > > - pkt->side_data[i].size);
> > > > + for (i=0; i<pkt->side_data_elems; i++) {
> > > > + const AVPacketSideData *const sd = &pkt->side_data[i];
> > > > + const uint8_t *data = sd->data;
> > > > + uint32_t side_data_crc = 0;
> > > > +
> > > > + switch (sd->type) {
> > > > +#if HAVE_BIGENDIAN
> > > > + uint8_t bswap_buf[FFMAX(sizeof(AVCPBProperties),
> > > > + sizeof(AVProducerReferenceTime))];
> > > > + case AV_PKT_DATA_PALETTE:
> > > > + case AV_PKT_DATA_REPLAYGAIN:
> > > > + case AV_PKT_DATA_DISPLAYMATRIX:
> > > > + case AV_PKT_DATA_STEREO3D:
> > > > + case AV_PKT_DATA_AUDIO_SERVICE_TYPE:
> > > > + case AV_PKT_DATA_FALLBACK_TRACK:
> > > > + case AV_PKT_DATA_MASTERING_DISPLAY_METADATA:
> > > > + case AV_PKT_DATA_SPHERICAL:
> > > > + case AV_PKT_DATA_CONTENT_LIGHT_LEVEL:
> > > > + case AV_PKT_DATA_S12M_TIMECODE:
> > > > + for (size_t j = 0; j < sd->size / 4; j++) {
> > > > + uint8_t buf[4];
> > > > + AV_WL32(buf, AV_RB32(sd->data + 4 * j));
> > > > + side_data_crc = av_adler32_update(side_data_crc, buf, 4);
> > > > + }
> > > > + break;
> > > > + case AV_PKT_DATA_CPB_PROPERTIES:
> > > > +#define BSWAP(struct, field) bswap(bswap_buf, offsetof(struct, field), sizeof(((struct){0}).field))
> > > > + if (sd->size == sizeof(AVCPBProperties)) {
> > > > + memcpy(bswap_buf, sd->data, sizeof(AVCPBProperties));
> > > > + data = bswap_buf;
> > > > + BSWAP(AVCPBProperties, max_bitrate);
> > > > + BSWAP(AVCPBProperties, min_bitrate);
> > > > + BSWAP(AVCPBProperties, avg_bitrate);
> > > > + BSWAP(AVCPBProperties, buffer_size);
> > > > + BSWAP(AVCPBProperties, vbv_delay);
> > > > + }
> > > > + goto pod;
> > > > + case AV_PKT_DATA_PRFT:
> > > > + if (sd->size == sizeof(AVProducerReferenceTime)) {
> > > > + memcpy(bswap_buf, sd->data, sizeof(AVProducerReferenceTime));
> > > > + data = bswap_buf;
> > > > + BSWAP(AVProducerReferenceTime, wallclock);
> > > > + BSWAP(AVProducerReferenceTime, flags);
> > > > + }
> > > > + goto pod;
> > > > + pod:
> > > > +#endif
> > > > +
> > > > + default:
> > > > + side_data_crc = av_adler32_update(0, data, sd->size);
> > > > + break;
> > > > + case AV_PKT_DATA_IAMF_MIX_GAIN_PARAM:
> > > > + case AV_PKT_DATA_IAMF_DEMIXING_INFO_PARAM:
> > > > + case AV_PKT_DATA_IAMF_RECON_GAIN_INFO_PARAM:
> > > > + side_data_crc = 0;
> > > > + }
> > > > +
> > > > + av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER", 0x%08"PRIx32,
> > > > + pkt->side_data[i].size, side_data_crc);
> > > > }
> > > > }
> > > > av_strlcatf(buf, sizeof(buf), "\n");
> > >
> > > You should mention that you are basically reverting
> > > c6ae560a18d67b9ddaa25a0338b7fb55e3312e57.
> >
> > right, i didnt keep track of this as i just needed this locally
> > for testing to be possible and at the time didnt expect to
> > submit this to ffmpeg. But now 3 years later, it seems to make
> > sense to see if people want this maybe.
> >
> > To test side data, it IS needed to well test side data.
> > But if people still want to not test side data in FFmpeg git.
> > I can continue to be the only one testing side data :)
> >
> > ill repost it with a reference to c6ae560a18d67b9ddaa25a0338b7fb55e3312e57
> > and without the int i change, i did miss that.
>
> I'm not against adding checksum for side data if it can be ensured it will
> be the same on both little and big endian, 32bit and 64bit,
If side data uses types that have a size that is platform dependant
(except pointers). Thats probably a mistake that should be corrected
on the next ABI bump.
> but I'm against
> skipping specific types like you did above with the IAMF ones. Or rather,
> against printing 0 for them, which is misleading. I'd rather not print
> anything for them after the size.
ok, new patch sent
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
"Nothing to hide" only works if the folks in power share the values of
you and everyone you know entirely and always will -- Tom Scott
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-04-30 23:25 ` Michael Niedermayer
@ 2024-04-30 23:29 ` James Almer
2024-05-01 0:40 ` Michael Niedermayer
0 siblings, 1 reply; 22+ messages in thread
From: James Almer @ 2024-04-30 23:29 UTC (permalink / raw)
To: ffmpeg-devel
On 4/30/2024 8:25 PM, Michael Niedermayer wrote:
> On Sun, Apr 28, 2024 at 12:43:50AM -0300, James Almer wrote:
>> On 4/27/2024 9:07 AM, Michael Niedermayer wrote:
>>> On Sat, Apr 27, 2024 at 12:44:18PM +0200, Andreas Rheinhardt wrote:
>>>> Michael Niedermayer:
>>>>> This allows detecting issues in side data related code, same as what
>>>>> framecrc does for before already for packet data itself.
>>>>>
>>>>> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
>>>>> ---
>>>>> libavformat/framecrcenc.c | 76 +-
>>>>> tests/ref/fate/autorotate | 2 +-
>>>>> tests/ref/fate/cover-art-mp3-id3v2-remux | 2 +-
>>>>> tests/ref/fate/ffmpeg-bsf-input | 10 +-
>>>>> tests/ref/fate/force_key_frames-source | 784 ++++++------
>>>>> tests/ref/fate/force_key_frames-source-drop | 34 +-
>>>>> tests/ref/fate/force_key_frames-source-dup | 1224 +++++++++----------
>>>>> tests/ref/fate/gapless-mp3 | 6 +-
>>>>> tests/ref/fate/h264_redundant_pps-side_data | 2 +-
>>>>> tests/ref/fate/iamf-5_1-copy | 208 ++--
>>>>> tests/ref/fate/iamf-5_1-demux | 208 ++--
>>>>> tests/ref/fate/id3v2-priv-remux | 2 +-
>>>>> tests/ref/fate/matroska-hdr10-plus-remux | 2 +-
>>>>> tests/ref/fate/matroska-ogg-opus-remux | 2 +-
>>>>> tests/ref/fate/matroska-opus-remux | 2 +-
>>>>> tests/ref/fate/matroska-vp8-alpha-remux | 14 +-
>>>>> tests/ref/fate/mov-cover-image | 2 +-
>>>>> tests/ref/fate/segment-mp4-to-ts | 250 ++--
>>>>> tests/ref/fate/shortest | 100 +-
>>>>> tests/ref/fate/webm-hdr10-plus-remux | 2 +-
>>>>> tests/ref/fate/webm-webvtt-remux | 24 +-
>>>>> 21 files changed, 1513 insertions(+), 1443 deletions(-)
>>>>>
>>>>> diff --git a/libavformat/framecrcenc.c b/libavformat/framecrcenc.c
>>>>> index ce306a6c498..e71bfbd8777 100644
>>>>> --- a/libavformat/framecrcenc.c
>>>>> +++ b/libavformat/framecrcenc.c
>>>>> @@ -21,8 +21,10 @@
>>>>> #include <inttypes.h>
>>>>> +#include "config.h"
>>>>> #include "libavutil/adler32.h"
>>>>> #include "libavutil/avstring.h"
>>>>> +#include "libavutil/intreadwrite.h"
>>>>> #include "libavcodec/codec_id.h"
>>>>> #include "libavcodec/codec_par.h"
>>>>> @@ -48,6 +50,17 @@ static int framecrc_write_header(struct AVFormatContext *s)
>>>>> return ff_framehash_write_header(s);
>>>>> }
>>>>> +static av_unused void inline bswap(char *buf, int offset, int size)
>>>>> +{
>>>>> + if (size == 8) {
>>>>> + uint64_t val = AV_RN64(buf + offset);
>>>>> + AV_WN64(buf + offset, av_bswap64(val));
>>>>> + } else if (size == 4) {
>>>>> + uint32_t val = AV_RN32(buf + offset);
>>>>> + AV_WN32(buf + offset, av_bswap32(val));
>>>>> + }
>>>>> +}
>>>>> +
>>>>> static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
>>>>> {
>>>>> uint32_t crc = av_adler32_update(0, pkt->data, pkt->size);
>>>>> @@ -58,11 +71,68 @@ static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
>>>>> if (pkt->flags != AV_PKT_FLAG_KEY)
>>>>> av_strlcatf(buf, sizeof(buf), ", F=0x%0X", pkt->flags);
>>>>> if (pkt->side_data_elems) {
>>>>> + int i;
>>>>
>>>> This change is wrong.
>>>>
>>>>> av_strlcatf(buf, sizeof(buf), ", S=%d", pkt->side_data_elems);
>>>>> - for (int i = 0; i < pkt->side_data_elems; i++) {
>>>>> - av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER,
>>>>> - pkt->side_data[i].size);
>>>>> + for (i=0; i<pkt->side_data_elems; i++) {
>>>>> + const AVPacketSideData *const sd = &pkt->side_data[i];
>>>>> + const uint8_t *data = sd->data;
>>>>> + uint32_t side_data_crc = 0;
>>>>> +
>>>>> + switch (sd->type) {
>>>>> +#if HAVE_BIGENDIAN
>>>>> + uint8_t bswap_buf[FFMAX(sizeof(AVCPBProperties),
>>>>> + sizeof(AVProducerReferenceTime))];
>>>>> + case AV_PKT_DATA_PALETTE:
>>>>> + case AV_PKT_DATA_REPLAYGAIN:
>>>>> + case AV_PKT_DATA_DISPLAYMATRIX:
>>>>> + case AV_PKT_DATA_STEREO3D:
>>>>> + case AV_PKT_DATA_AUDIO_SERVICE_TYPE:
>>>>> + case AV_PKT_DATA_FALLBACK_TRACK:
>>>>> + case AV_PKT_DATA_MASTERING_DISPLAY_METADATA:
>>>>> + case AV_PKT_DATA_SPHERICAL:
>>>>> + case AV_PKT_DATA_CONTENT_LIGHT_LEVEL:
>>>>> + case AV_PKT_DATA_S12M_TIMECODE:
>>>>> + for (size_t j = 0; j < sd->size / 4; j++) {
>>>>> + uint8_t buf[4];
>>>>> + AV_WL32(buf, AV_RB32(sd->data + 4 * j));
>>>>> + side_data_crc = av_adler32_update(side_data_crc, buf, 4);
>>>>> + }
>>>>> + break;
>>>>> + case AV_PKT_DATA_CPB_PROPERTIES:
>>>>> +#define BSWAP(struct, field) bswap(bswap_buf, offsetof(struct, field), sizeof(((struct){0}).field))
>>>>> + if (sd->size == sizeof(AVCPBProperties)) {
>>>>> + memcpy(bswap_buf, sd->data, sizeof(AVCPBProperties));
>>>>> + data = bswap_buf;
>>>>> + BSWAP(AVCPBProperties, max_bitrate);
>>>>> + BSWAP(AVCPBProperties, min_bitrate);
>>>>> + BSWAP(AVCPBProperties, avg_bitrate);
>>>>> + BSWAP(AVCPBProperties, buffer_size);
>>>>> + BSWAP(AVCPBProperties, vbv_delay);
>>>>> + }
>>>>> + goto pod;
>>>>> + case AV_PKT_DATA_PRFT:
>>>>> + if (sd->size == sizeof(AVProducerReferenceTime)) {
>>>>> + memcpy(bswap_buf, sd->data, sizeof(AVProducerReferenceTime));
>>>>> + data = bswap_buf;
>>>>> + BSWAP(AVProducerReferenceTime, wallclock);
>>>>> + BSWAP(AVProducerReferenceTime, flags);
>>>>> + }
>>>>> + goto pod;
>>>>> + pod:
>>>>> +#endif
>>>>> +
>>>>> + default:
>>>>> + side_data_crc = av_adler32_update(0, data, sd->size);
>>>>> + break;
>>>>> + case AV_PKT_DATA_IAMF_MIX_GAIN_PARAM:
>>>>> + case AV_PKT_DATA_IAMF_DEMIXING_INFO_PARAM:
>>>>> + case AV_PKT_DATA_IAMF_RECON_GAIN_INFO_PARAM:
>>>>> + side_data_crc = 0;
>>>>> + }
>>>>> +
>>>>> + av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER", 0x%08"PRIx32,
>>>>> + pkt->side_data[i].size, side_data_crc);
>>>>> }
>>>>> }
>>>>> av_strlcatf(buf, sizeof(buf), "\n");
>>>>
>>>> You should mention that you are basically reverting
>>>> c6ae560a18d67b9ddaa25a0338b7fb55e3312e57.
>>>
>>> right, i didnt keep track of this as i just needed this locally
>>> for testing to be possible and at the time didnt expect to
>>> submit this to ffmpeg. But now 3 years later, it seems to make
>>> sense to see if people want this maybe.
>>>
>>> To test side data, it IS needed to well test side data.
>>> But if people still want to not test side data in FFmpeg git.
>>> I can continue to be the only one testing side data :)
>>>
>>> ill repost it with a reference to c6ae560a18d67b9ddaa25a0338b7fb55e3312e57
>>> and without the int i change, i did miss that.
>>
>> I'm not against adding checksum for side data if it can be ensured it will
>> be the same on both little and big endian, 32bit and 64bit,
>
> If side data uses types that have a size that is platform dependant
> (except pointers). Thats probably a mistake that should be corrected
> on the next ABI bump.
size_t is used for buffer offsets on the IAMF side data types. I guess
it could be changed to uint32_t.
>
>
>> but I'm against
>> skipping specific types like you did above with the IAMF ones. Or rather,
>> against printing 0 for them, which is misleading. I'd rather not print
>> anything for them after the size.
>
> ok, new patch sent
>
> thx
>
> [...]
>
>
> _______________________________________________
> 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".
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-04-30 23:29 ` James Almer
@ 2024-05-01 0:40 ` Michael Niedermayer
2024-05-01 0:45 ` James Almer
0 siblings, 1 reply; 22+ messages in thread
From: Michael Niedermayer @ 2024-05-01 0:40 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 9287 bytes --]
On Tue, Apr 30, 2024 at 08:29:07PM -0300, James Almer wrote:
> On 4/30/2024 8:25 PM, Michael Niedermayer wrote:
> > On Sun, Apr 28, 2024 at 12:43:50AM -0300, James Almer wrote:
> > > On 4/27/2024 9:07 AM, Michael Niedermayer wrote:
> > > > On Sat, Apr 27, 2024 at 12:44:18PM +0200, Andreas Rheinhardt wrote:
> > > > > Michael Niedermayer:
> > > > > > This allows detecting issues in side data related code, same as what
> > > > > > framecrc does for before already for packet data itself.
> > > > > >
> > > > > > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > > > > > ---
> > > > > > libavformat/framecrcenc.c | 76 +-
> > > > > > tests/ref/fate/autorotate | 2 +-
> > > > > > tests/ref/fate/cover-art-mp3-id3v2-remux | 2 +-
> > > > > > tests/ref/fate/ffmpeg-bsf-input | 10 +-
> > > > > > tests/ref/fate/force_key_frames-source | 784 ++++++------
> > > > > > tests/ref/fate/force_key_frames-source-drop | 34 +-
> > > > > > tests/ref/fate/force_key_frames-source-dup | 1224 +++++++++----------
> > > > > > tests/ref/fate/gapless-mp3 | 6 +-
> > > > > > tests/ref/fate/h264_redundant_pps-side_data | 2 +-
> > > > > > tests/ref/fate/iamf-5_1-copy | 208 ++--
> > > > > > tests/ref/fate/iamf-5_1-demux | 208 ++--
> > > > > > tests/ref/fate/id3v2-priv-remux | 2 +-
> > > > > > tests/ref/fate/matroska-hdr10-plus-remux | 2 +-
> > > > > > tests/ref/fate/matroska-ogg-opus-remux | 2 +-
> > > > > > tests/ref/fate/matroska-opus-remux | 2 +-
> > > > > > tests/ref/fate/matroska-vp8-alpha-remux | 14 +-
> > > > > > tests/ref/fate/mov-cover-image | 2 +-
> > > > > > tests/ref/fate/segment-mp4-to-ts | 250 ++--
> > > > > > tests/ref/fate/shortest | 100 +-
> > > > > > tests/ref/fate/webm-hdr10-plus-remux | 2 +-
> > > > > > tests/ref/fate/webm-webvtt-remux | 24 +-
> > > > > > 21 files changed, 1513 insertions(+), 1443 deletions(-)
> > > > > >
> > > > > > diff --git a/libavformat/framecrcenc.c b/libavformat/framecrcenc.c
> > > > > > index ce306a6c498..e71bfbd8777 100644
> > > > > > --- a/libavformat/framecrcenc.c
> > > > > > +++ b/libavformat/framecrcenc.c
> > > > > > @@ -21,8 +21,10 @@
> > > > > > #include <inttypes.h>
> > > > > > +#include "config.h"
> > > > > > #include "libavutil/adler32.h"
> > > > > > #include "libavutil/avstring.h"
> > > > > > +#include "libavutil/intreadwrite.h"
> > > > > > #include "libavcodec/codec_id.h"
> > > > > > #include "libavcodec/codec_par.h"
> > > > > > @@ -48,6 +50,17 @@ static int framecrc_write_header(struct AVFormatContext *s)
> > > > > > return ff_framehash_write_header(s);
> > > > > > }
> > > > > > +static av_unused void inline bswap(char *buf, int offset, int size)
> > > > > > +{
> > > > > > + if (size == 8) {
> > > > > > + uint64_t val = AV_RN64(buf + offset);
> > > > > > + AV_WN64(buf + offset, av_bswap64(val));
> > > > > > + } else if (size == 4) {
> > > > > > + uint32_t val = AV_RN32(buf + offset);
> > > > > > + AV_WN32(buf + offset, av_bswap32(val));
> > > > > > + }
> > > > > > +}
> > > > > > +
> > > > > > static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
> > > > > > {
> > > > > > uint32_t crc = av_adler32_update(0, pkt->data, pkt->size);
> > > > > > @@ -58,11 +71,68 @@ static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
> > > > > > if (pkt->flags != AV_PKT_FLAG_KEY)
> > > > > > av_strlcatf(buf, sizeof(buf), ", F=0x%0X", pkt->flags);
> > > > > > if (pkt->side_data_elems) {
> > > > > > + int i;
> > > > >
> > > > > This change is wrong.
> > > > >
> > > > > > av_strlcatf(buf, sizeof(buf), ", S=%d", pkt->side_data_elems);
> > > > > > - for (int i = 0; i < pkt->side_data_elems; i++) {
> > > > > > - av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER,
> > > > > > - pkt->side_data[i].size);
> > > > > > + for (i=0; i<pkt->side_data_elems; i++) {
> > > > > > + const AVPacketSideData *const sd = &pkt->side_data[i];
> > > > > > + const uint8_t *data = sd->data;
> > > > > > + uint32_t side_data_crc = 0;
> > > > > > +
> > > > > > + switch (sd->type) {
> > > > > > +#if HAVE_BIGENDIAN
> > > > > > + uint8_t bswap_buf[FFMAX(sizeof(AVCPBProperties),
> > > > > > + sizeof(AVProducerReferenceTime))];
> > > > > > + case AV_PKT_DATA_PALETTE:
> > > > > > + case AV_PKT_DATA_REPLAYGAIN:
> > > > > > + case AV_PKT_DATA_DISPLAYMATRIX:
> > > > > > + case AV_PKT_DATA_STEREO3D:
> > > > > > + case AV_PKT_DATA_AUDIO_SERVICE_TYPE:
> > > > > > + case AV_PKT_DATA_FALLBACK_TRACK:
> > > > > > + case AV_PKT_DATA_MASTERING_DISPLAY_METADATA:
> > > > > > + case AV_PKT_DATA_SPHERICAL:
> > > > > > + case AV_PKT_DATA_CONTENT_LIGHT_LEVEL:
> > > > > > + case AV_PKT_DATA_S12M_TIMECODE:
> > > > > > + for (size_t j = 0; j < sd->size / 4; j++) {
> > > > > > + uint8_t buf[4];
> > > > > > + AV_WL32(buf, AV_RB32(sd->data + 4 * j));
> > > > > > + side_data_crc = av_adler32_update(side_data_crc, buf, 4);
> > > > > > + }
> > > > > > + break;
> > > > > > + case AV_PKT_DATA_CPB_PROPERTIES:
> > > > > > +#define BSWAP(struct, field) bswap(bswap_buf, offsetof(struct, field), sizeof(((struct){0}).field))
> > > > > > + if (sd->size == sizeof(AVCPBProperties)) {
> > > > > > + memcpy(bswap_buf, sd->data, sizeof(AVCPBProperties));
> > > > > > + data = bswap_buf;
> > > > > > + BSWAP(AVCPBProperties, max_bitrate);
> > > > > > + BSWAP(AVCPBProperties, min_bitrate);
> > > > > > + BSWAP(AVCPBProperties, avg_bitrate);
> > > > > > + BSWAP(AVCPBProperties, buffer_size);
> > > > > > + BSWAP(AVCPBProperties, vbv_delay);
> > > > > > + }
> > > > > > + goto pod;
> > > > > > + case AV_PKT_DATA_PRFT:
> > > > > > + if (sd->size == sizeof(AVProducerReferenceTime)) {
> > > > > > + memcpy(bswap_buf, sd->data, sizeof(AVProducerReferenceTime));
> > > > > > + data = bswap_buf;
> > > > > > + BSWAP(AVProducerReferenceTime, wallclock);
> > > > > > + BSWAP(AVProducerReferenceTime, flags);
> > > > > > + }
> > > > > > + goto pod;
> > > > > > + pod:
> > > > > > +#endif
> > > > > > +
> > > > > > + default:
> > > > > > + side_data_crc = av_adler32_update(0, data, sd->size);
> > > > > > + break;
> > > > > > + case AV_PKT_DATA_IAMF_MIX_GAIN_PARAM:
> > > > > > + case AV_PKT_DATA_IAMF_DEMIXING_INFO_PARAM:
> > > > > > + case AV_PKT_DATA_IAMF_RECON_GAIN_INFO_PARAM:
> > > > > > + side_data_crc = 0;
> > > > > > + }
> > > > > > +
> > > > > > + av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER", 0x%08"PRIx32,
> > > > > > + pkt->side_data[i].size, side_data_crc);
> > > > > > }
> > > > > > }
> > > > > > av_strlcatf(buf, sizeof(buf), "\n");
> > > > >
> > > > > You should mention that you are basically reverting
> > > > > c6ae560a18d67b9ddaa25a0338b7fb55e3312e57.
> > > >
> > > > right, i didnt keep track of this as i just needed this locally
> > > > for testing to be possible and at the time didnt expect to
> > > > submit this to ffmpeg. But now 3 years later, it seems to make
> > > > sense to see if people want this maybe.
> > > >
> > > > To test side data, it IS needed to well test side data.
> > > > But if people still want to not test side data in FFmpeg git.
> > > > I can continue to be the only one testing side data :)
> > > >
> > > > ill repost it with a reference to c6ae560a18d67b9ddaa25a0338b7fb55e3312e57
> > > > and without the int i change, i did miss that.
> > >
> > > I'm not against adding checksum for side data if it can be ensured it will
> > > be the same on both little and big endian, 32bit and 64bit,
> >
> > If side data uses types that have a size that is platform dependant
> > (except pointers). Thats probably a mistake that should be corrected
> > on the next ABI bump.
>
> size_t is used for buffer offsets on the IAMF side data types. I guess it
> could be changed to uint32_t.
i think uint32 would have been better, yes
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Asymptotically faster algorithms should always be preferred if you have
asymptotical amounts of data
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-05-01 0:40 ` Michael Niedermayer
@ 2024-05-01 0:45 ` James Almer
0 siblings, 0 replies; 22+ messages in thread
From: James Almer @ 2024-05-01 0:45 UTC (permalink / raw)
To: ffmpeg-devel
On 4/30/2024 9:40 PM, Michael Niedermayer wrote:
> On Tue, Apr 30, 2024 at 08:29:07PM -0300, James Almer wrote:
>> On 4/30/2024 8:25 PM, Michael Niedermayer wrote:
>>> On Sun, Apr 28, 2024 at 12:43:50AM -0300, James Almer wrote:
>>>> On 4/27/2024 9:07 AM, Michael Niedermayer wrote:
>>>>> On Sat, Apr 27, 2024 at 12:44:18PM +0200, Andreas Rheinhardt wrote:
>>>>>> Michael Niedermayer:
>>>>>>> This allows detecting issues in side data related code, same as what
>>>>>>> framecrc does for before already for packet data itself.
>>>>>>>
>>>>>>> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
>>>>>>> ---
>>>>>>> libavformat/framecrcenc.c | 76 +-
>>>>>>> tests/ref/fate/autorotate | 2 +-
>>>>>>> tests/ref/fate/cover-art-mp3-id3v2-remux | 2 +-
>>>>>>> tests/ref/fate/ffmpeg-bsf-input | 10 +-
>>>>>>> tests/ref/fate/force_key_frames-source | 784 ++++++------
>>>>>>> tests/ref/fate/force_key_frames-source-drop | 34 +-
>>>>>>> tests/ref/fate/force_key_frames-source-dup | 1224 +++++++++----------
>>>>>>> tests/ref/fate/gapless-mp3 | 6 +-
>>>>>>> tests/ref/fate/h264_redundant_pps-side_data | 2 +-
>>>>>>> tests/ref/fate/iamf-5_1-copy | 208 ++--
>>>>>>> tests/ref/fate/iamf-5_1-demux | 208 ++--
>>>>>>> tests/ref/fate/id3v2-priv-remux | 2 +-
>>>>>>> tests/ref/fate/matroska-hdr10-plus-remux | 2 +-
>>>>>>> tests/ref/fate/matroska-ogg-opus-remux | 2 +-
>>>>>>> tests/ref/fate/matroska-opus-remux | 2 +-
>>>>>>> tests/ref/fate/matroska-vp8-alpha-remux | 14 +-
>>>>>>> tests/ref/fate/mov-cover-image | 2 +-
>>>>>>> tests/ref/fate/segment-mp4-to-ts | 250 ++--
>>>>>>> tests/ref/fate/shortest | 100 +-
>>>>>>> tests/ref/fate/webm-hdr10-plus-remux | 2 +-
>>>>>>> tests/ref/fate/webm-webvtt-remux | 24 +-
>>>>>>> 21 files changed, 1513 insertions(+), 1443 deletions(-)
>>>>>>>
>>>>>>> diff --git a/libavformat/framecrcenc.c b/libavformat/framecrcenc.c
>>>>>>> index ce306a6c498..e71bfbd8777 100644
>>>>>>> --- a/libavformat/framecrcenc.c
>>>>>>> +++ b/libavformat/framecrcenc.c
>>>>>>> @@ -21,8 +21,10 @@
>>>>>>> #include <inttypes.h>
>>>>>>> +#include "config.h"
>>>>>>> #include "libavutil/adler32.h"
>>>>>>> #include "libavutil/avstring.h"
>>>>>>> +#include "libavutil/intreadwrite.h"
>>>>>>> #include "libavcodec/codec_id.h"
>>>>>>> #include "libavcodec/codec_par.h"
>>>>>>> @@ -48,6 +50,17 @@ static int framecrc_write_header(struct AVFormatContext *s)
>>>>>>> return ff_framehash_write_header(s);
>>>>>>> }
>>>>>>> +static av_unused void inline bswap(char *buf, int offset, int size)
>>>>>>> +{
>>>>>>> + if (size == 8) {
>>>>>>> + uint64_t val = AV_RN64(buf + offset);
>>>>>>> + AV_WN64(buf + offset, av_bswap64(val));
>>>>>>> + } else if (size == 4) {
>>>>>>> + uint32_t val = AV_RN32(buf + offset);
>>>>>>> + AV_WN32(buf + offset, av_bswap32(val));
>>>>>>> + }
>>>>>>> +}
>>>>>>> +
>>>>>>> static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
>>>>>>> {
>>>>>>> uint32_t crc = av_adler32_update(0, pkt->data, pkt->size);
>>>>>>> @@ -58,11 +71,68 @@ static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
>>>>>>> if (pkt->flags != AV_PKT_FLAG_KEY)
>>>>>>> av_strlcatf(buf, sizeof(buf), ", F=0x%0X", pkt->flags);
>>>>>>> if (pkt->side_data_elems) {
>>>>>>> + int i;
>>>>>>
>>>>>> This change is wrong.
>>>>>>
>>>>>>> av_strlcatf(buf, sizeof(buf), ", S=%d", pkt->side_data_elems);
>>>>>>> - for (int i = 0; i < pkt->side_data_elems; i++) {
>>>>>>> - av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER,
>>>>>>> - pkt->side_data[i].size);
>>>>>>> + for (i=0; i<pkt->side_data_elems; i++) {
>>>>>>> + const AVPacketSideData *const sd = &pkt->side_data[i];
>>>>>>> + const uint8_t *data = sd->data;
>>>>>>> + uint32_t side_data_crc = 0;
>>>>>>> +
>>>>>>> + switch (sd->type) {
>>>>>>> +#if HAVE_BIGENDIAN
>>>>>>> + uint8_t bswap_buf[FFMAX(sizeof(AVCPBProperties),
>>>>>>> + sizeof(AVProducerReferenceTime))];
>>>>>>> + case AV_PKT_DATA_PALETTE:
>>>>>>> + case AV_PKT_DATA_REPLAYGAIN:
>>>>>>> + case AV_PKT_DATA_DISPLAYMATRIX:
>>>>>>> + case AV_PKT_DATA_STEREO3D:
>>>>>>> + case AV_PKT_DATA_AUDIO_SERVICE_TYPE:
>>>>>>> + case AV_PKT_DATA_FALLBACK_TRACK:
>>>>>>> + case AV_PKT_DATA_MASTERING_DISPLAY_METADATA:
>>>>>>> + case AV_PKT_DATA_SPHERICAL:
>>>>>>> + case AV_PKT_DATA_CONTENT_LIGHT_LEVEL:
>>>>>>> + case AV_PKT_DATA_S12M_TIMECODE:
>>>>>>> + for (size_t j = 0; j < sd->size / 4; j++) {
>>>>>>> + uint8_t buf[4];
>>>>>>> + AV_WL32(buf, AV_RB32(sd->data + 4 * j));
>>>>>>> + side_data_crc = av_adler32_update(side_data_crc, buf, 4);
>>>>>>> + }
>>>>>>> + break;
>>>>>>> + case AV_PKT_DATA_CPB_PROPERTIES:
>>>>>>> +#define BSWAP(struct, field) bswap(bswap_buf, offsetof(struct, field), sizeof(((struct){0}).field))
>>>>>>> + if (sd->size == sizeof(AVCPBProperties)) {
>>>>>>> + memcpy(bswap_buf, sd->data, sizeof(AVCPBProperties));
>>>>>>> + data = bswap_buf;
>>>>>>> + BSWAP(AVCPBProperties, max_bitrate);
>>>>>>> + BSWAP(AVCPBProperties, min_bitrate);
>>>>>>> + BSWAP(AVCPBProperties, avg_bitrate);
>>>>>>> + BSWAP(AVCPBProperties, buffer_size);
>>>>>>> + BSWAP(AVCPBProperties, vbv_delay);
>>>>>>> + }
>>>>>>> + goto pod;
>>>>>>> + case AV_PKT_DATA_PRFT:
>>>>>>> + if (sd->size == sizeof(AVProducerReferenceTime)) {
>>>>>>> + memcpy(bswap_buf, sd->data, sizeof(AVProducerReferenceTime));
>>>>>>> + data = bswap_buf;
>>>>>>> + BSWAP(AVProducerReferenceTime, wallclock);
>>>>>>> + BSWAP(AVProducerReferenceTime, flags);
>>>>>>> + }
>>>>>>> + goto pod;
>>>>>>> + pod:
>>>>>>> +#endif
>>>>>>> +
>>>>>>> + default:
>>>>>>> + side_data_crc = av_adler32_update(0, data, sd->size);
>>>>>>> + break;
>>>>>>> + case AV_PKT_DATA_IAMF_MIX_GAIN_PARAM:
>>>>>>> + case AV_PKT_DATA_IAMF_DEMIXING_INFO_PARAM:
>>>>>>> + case AV_PKT_DATA_IAMF_RECON_GAIN_INFO_PARAM:
>>>>>>> + side_data_crc = 0;
>>>>>>> + }
>>>>>>> +
>>>>>>> + av_strlcatf(buf, sizeof(buf), ", %8"SIZE_SPECIFIER", 0x%08"PRIx32,
>>>>>>> + pkt->side_data[i].size, side_data_crc);
>>>>>>> }
>>>>>>> }
>>>>>>> av_strlcatf(buf, sizeof(buf), "\n");
>>>>>>
>>>>>> You should mention that you are basically reverting
>>>>>> c6ae560a18d67b9ddaa25a0338b7fb55e3312e57.
>>>>>
>>>>> right, i didnt keep track of this as i just needed this locally
>>>>> for testing to be possible and at the time didnt expect to
>>>>> submit this to ffmpeg. But now 3 years later, it seems to make
>>>>> sense to see if people want this maybe.
>>>>>
>>>>> To test side data, it IS needed to well test side data.
>>>>> But if people still want to not test side data in FFmpeg git.
>>>>> I can continue to be the only one testing side data :)
>>>>>
>>>>> ill repost it with a reference to c6ae560a18d67b9ddaa25a0338b7fb55e3312e57
>>>>> and without the int i change, i did miss that.
>>>>
>>>> I'm not against adding checksum for side data if it can be ensured it will
>>>> be the same on both little and big endian, 32bit and 64bit,
>>>
>>> If side data uses types that have a size that is platform dependant
>>> (except pointers). Thats probably a mistake that should be corrected
>>> on the next ABI bump.
>>
>> size_t is used for buffer offsets on the IAMF side data types. I guess it
>> could be changed to uint32_t.
>
> i think uint32 would have been better, yes
It will probably not be enough anyway. There's alignment at play too.
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-04-27 0:36 [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data Michael Niedermayer
2024-04-27 10:44 ` Andreas Rheinhardt
@ 2024-05-27 8:15 ` Anton Khirnov
2024-05-27 14:11 ` James Almer
2024-05-27 18:11 ` Michael Niedermayer
1 sibling, 2 replies; 22+ messages in thread
From: Anton Khirnov @ 2024-05-27 8:15 UTC (permalink / raw)
To: FFmpeg development discussions and patches
Quoting Michael Niedermayer (2024-04-27 02:36:23)
> This allows detecting issues in side data related code, same as what
> framecrc does for before already for packet data itself.
>
> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> ---
I am against this patch. Checksumming side data is a fundamentally wrong
thing to do.
--
Anton Khirnov
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-05-27 8:15 ` Anton Khirnov
@ 2024-05-27 14:11 ` James Almer
2024-05-31 7:39 ` Anton Khirnov
2024-05-27 18:11 ` Michael Niedermayer
1 sibling, 1 reply; 22+ messages in thread
From: James Almer @ 2024-05-27 14:11 UTC (permalink / raw)
To: ffmpeg-devel
On 5/27/2024 5:15 AM, Anton Khirnov wrote:
> Quoting Michael Niedermayer (2024-04-27 02:36:23)
>> This allows detecting issues in side data related code, same as what
>> framecrc does for before already for packet data itself.
>>
>> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
>> ---
>
> I am against this patch. Checksumming side data is a fundamentally wrong
> thing to do.
framehash should be updated to also not print hashes, then. Problem is
that it's versioned, so we would need to "deprecate" the current versions.
There's also the issue of printing sizes, which for some structs (iamf,
video_enc_params) it can vary depending on target, so my suggestion was
adding an option to disable printing certain values like it. What do you
think?
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-05-27 8:15 ` Anton Khirnov
2024-05-27 14:11 ` James Almer
@ 2024-05-27 18:11 ` Michael Niedermayer
2024-05-27 18:17 ` James Almer
2024-05-31 7:32 ` Anton Khirnov
1 sibling, 2 replies; 22+ messages in thread
From: Michael Niedermayer @ 2024-05-27 18:11 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 1152 bytes --]
On Mon, May 27, 2024 at 10:15:43AM +0200, Anton Khirnov wrote:
> Quoting Michael Niedermayer (2024-04-27 02:36:23)
> > This allows detecting issues in side data related code, same as what
> > framecrc does for before already for packet data itself.
> >
> > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > ---
>
> I am against this patch. Checksumming side data is a fundamentally wrong
> thing to do.
It, or something equivalent is neccessary for regression testing.
(and it was you who asked also for the tests i run to be part of
fate. But here you object to it)
You know, not checking side data is not checking it so differences would then not be
detected allowing for unintended changes to be introduced (aka bugs)
If you block this solution without providing another solution
then i will bring this to the technical committee, to seek its guidance
on the way forward.
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Does the universe only have a finite lifespan? No, its going to go on
forever, its just that you wont like living in it. -- Hiranya Peiri
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-05-27 18:11 ` Michael Niedermayer
@ 2024-05-27 18:17 ` James Almer
2024-05-27 19:20 ` Michael Niedermayer
2024-05-31 7:32 ` Anton Khirnov
1 sibling, 1 reply; 22+ messages in thread
From: James Almer @ 2024-05-27 18:17 UTC (permalink / raw)
To: ffmpeg-devel
On 5/27/2024 3:11 PM, Michael Niedermayer wrote:
> On Mon, May 27, 2024 at 10:15:43AM +0200, Anton Khirnov wrote:
>> Quoting Michael Niedermayer (2024-04-27 02:36:23)
>>> This allows detecting issues in side data related code, same as what
>>> framecrc does for before already for packet data itself.
>>>
>>> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
>>> ---
>>
>> I am against this patch. Checksumming side data is a fundamentally wrong
>> thing to do.
>
> It, or something equivalent is neccessary for regression testing.
> (and it was you who asked also for the tests i run to be part of
> fate. But here you object to it)
>
> You know, not checking side data is not checking it so differences would then not be
> detected allowing for unintended changes to be introduced (aka bugs)
You have seen how much code is needed to get hashing to work for all
targets with some types, so it does feel like it's not the right thing
to do. ffprobe (and f_sidedata) are what should be used for actual
integrity checks.
And i insist that disabling printing the size (or any information about
side data) from framecrc is needed for FATE tests, as we can't even use
it to hash actual packet data otherwise.
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-05-27 18:17 ` James Almer
@ 2024-05-27 19:20 ` Michael Niedermayer
2024-05-27 19:31 ` Michael Niedermayer
2024-05-27 19:32 ` James Almer
0 siblings, 2 replies; 22+ messages in thread
From: Michael Niedermayer @ 2024-05-27 19:20 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 2377 bytes --]
On Mon, May 27, 2024 at 03:17:15PM -0300, James Almer wrote:
> On 5/27/2024 3:11 PM, Michael Niedermayer wrote:
> > On Mon, May 27, 2024 at 10:15:43AM +0200, Anton Khirnov wrote:
> > > Quoting Michael Niedermayer (2024-04-27 02:36:23)
> > > > This allows detecting issues in side data related code, same as what
> > > > framecrc does for before already for packet data itself.
> > > >
> > > > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > > > ---
> > >
> > > I am against this patch. Checksumming side data is a fundamentally wrong
> > > thing to do.
> >
> > It, or something equivalent is neccessary for regression testing.
> > (and it was you who asked also for the tests i run to be part of
> > fate. But here you object to it)
> >
> > You know, not checking side data is not checking it so differences would then not be
> > detected allowing for unintended changes to be introduced (aka bugs)
>
> You have seen how much code is needed to get hashing to work for all targets
> with some types,
framecrcenc.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 73 insertions(+), 3 deletions(-)
70 more lines of code, in my patch
If we need another 70 to handle some corner cases, no idea if we do, thats
still negligible
> so it does feel like it's not the right thing to do.
I dont think i can follow that logic
> ffprobe (and f_sidedata) are what should be used for actual integrity
> checks.
ffprobe cannot test ffmpeg, ffmpeg is a seperate excutable
If you suggest that side data should not be tested in FFmpeg while packet.data
should be tested. That position seems inconsistant to me
If you suggest that neither side data nor packet.data should be tested in FFmpeg
iam confident that there would be a majority disagreeing.
f_sidedata is not at the output of ffmpeg so even if it could test it, it
does not test the ffmpeg output.
We also dont replace running md5sum and framecrc on ffmpeg output by a bitstream
filter.
Again, there is need to test what comes out of FFmpeg, thats at the muxer level
thats what framecrcenc does.
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
It is a danger to trust the dream we wish for rather than
the science we have, -- Dr. Kenneth Brown
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-05-27 19:20 ` Michael Niedermayer
@ 2024-05-27 19:31 ` Michael Niedermayer
2024-05-27 19:33 ` James Almer
2024-05-27 19:32 ` James Almer
1 sibling, 1 reply; 22+ messages in thread
From: Michael Niedermayer @ 2024-05-27 19:31 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 2992 bytes --]
On Mon, May 27, 2024 at 09:20:55PM +0200, Michael Niedermayer wrote:
> On Mon, May 27, 2024 at 03:17:15PM -0300, James Almer wrote:
> > On 5/27/2024 3:11 PM, Michael Niedermayer wrote:
> > > On Mon, May 27, 2024 at 10:15:43AM +0200, Anton Khirnov wrote:
> > > > Quoting Michael Niedermayer (2024-04-27 02:36:23)
> > > > > This allows detecting issues in side data related code, same as what
> > > > > framecrc does for before already for packet data itself.
> > > > >
> > > > > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > > > > ---
> > > >
> > > > I am against this patch. Checksumming side data is a fundamentally wrong
> > > > thing to do.
> > >
> > > It, or something equivalent is neccessary for regression testing.
> > > (and it was you who asked also for the tests i run to be part of
> > > fate. But here you object to it)
> > >
> > > You know, not checking side data is not checking it so differences would then not be
> > > detected allowing for unintended changes to be introduced (aka bugs)
> >
> > You have seen how much code is needed to get hashing to work for all targets
> > with some types,
>
> framecrcenc.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
> 1 file changed, 73 insertions(+), 3 deletions(-)
>
> 70 more lines of code, in my patch
>
> If we need another 70 to handle some corner cases, no idea if we do, thats
> still negligible
>
>
> > so it does feel like it's not the right thing to do.
>
> I dont think i can follow that logic
>
>
> > ffprobe (and f_sidedata) are what should be used for actual integrity
> > checks.
>
> ffprobe cannot test ffmpeg, ffmpeg is a seperate excutable
>
> If you suggest that side data should not be tested in FFmpeg while packet.data
> should be tested. That position seems inconsistant to me
>
> If you suggest that neither side data nor packet.data should be tested in FFmpeg
> iam confident that there would be a majority disagreeing.
>
> f_sidedata is not at the output of ffmpeg so even if it could test it, it
> does not test the ffmpeg output.
> We also dont replace running md5sum and framecrc on ffmpeg output by a bitstream
> filter.
>
> Again, there is need to test what comes out of FFmpeg, thats at the muxer level
> thats what framecrcenc does.
There is also an additional aspect
and that is efficiency or "time taken by all fate tests"
framecrcenc already has all the side data, it costs basically 0 time to print that
any ffprobe based check needs to run everything a 2nd time, so it will be slower
also ffprobe is only good for side data from the demuxer.
my patch tests all cases including side data from the encoder or any other
source that gets forwarded to the muxer in each testcase.
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Never trust a computer, one day, it may think you are the virus. -- Compn
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-05-27 19:20 ` Michael Niedermayer
2024-05-27 19:31 ` Michael Niedermayer
@ 2024-05-27 19:32 ` James Almer
2024-05-27 19:43 ` Michael Niedermayer
1 sibling, 1 reply; 22+ messages in thread
From: James Almer @ 2024-05-27 19:32 UTC (permalink / raw)
To: ffmpeg-devel
On 5/27/2024 4:20 PM, Michael Niedermayer wrote:
> On Mon, May 27, 2024 at 03:17:15PM -0300, James Almer wrote:
>> On 5/27/2024 3:11 PM, Michael Niedermayer wrote:
>>> On Mon, May 27, 2024 at 10:15:43AM +0200, Anton Khirnov wrote:
>>>> Quoting Michael Niedermayer (2024-04-27 02:36:23)
>>>>> This allows detecting issues in side data related code, same as what
>>>>> framecrc does for before already for packet data itself.
>>>>>
>>>>> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
>>>>> ---
>>>>
>>>> I am against this patch. Checksumming side data is a fundamentally wrong
>>>> thing to do.
>>>
>>> It, or something equivalent is neccessary for regression testing.
>>> (and it was you who asked also for the tests i run to be part of
>>> fate. But here you object to it)
>>>
>>> You know, not checking side data is not checking it so differences would then not be
>>> detected allowing for unintended changes to be introduced (aka bugs)
>>
>> You have seen how much code is needed to get hashing to work for all targets
>> with some types,
>
> framecrcenc.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
> 1 file changed, 73 insertions(+), 3 deletions(-)
>
> 70 more lines of code, in my patch
>
> If we need another 70 to handle some corner cases, no idea if we do, thats
> still negligible
IAMF and video_enc_params. And potential future types. It's not negligible.
>
>
>> so it does feel like it's not the right thing to do.
>
> I dont think i can follow that logic
Extra custom code to take into account specific side data types in order
to output a common hash value. Do we really need to add that when we
already have side data type specific parsing code to in ffprobe?
>
>
>> ffprobe (and f_sidedata) are what should be used for actual integrity
>> checks.
>
> ffprobe cannot test ffmpeg, ffmpeg is a seperate excutable
I didn't say ffprobe should be used to test ffmpeg, i said ffprobe
should be used to test side data integrity.
>
> If you suggest that side data should not be tested in FFmpeg while packet.data
> should be tested. That position seems inconsistant to me
>
> If you suggest that neither side data nor packet.data should be tested in FFmpeg
> iam confident that there would be a majority disagreeing.
>
> f_sidedata is not at the output of ffmpeg so even if it could test it, it
> does not test the ffmpeg output.
I meant {a,f}_showinfo, sorry. And it does not apply to packet side
data, obviously.
> We also dont replace running md5sum and framecrc on ffmpeg output by a bitstream
> filter.
>
> Again, there is need to test what comes out of FFmpeg, thats at the muxer level
> thats what framecrcenc does.
Packet side data does not come out of ffmpeg, it comes out of
libavformat (or libavcodec/libavfilter in the case of frame side data).
A user of lavf can look at side data instead of needing a lavf muxer to
print a hash that needs ad hoc code for it to match across targets.
>
> thx
>
> [...]
>
>
> _______________________________________________
> 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".
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-05-27 19:31 ` Michael Niedermayer
@ 2024-05-27 19:33 ` James Almer
2024-05-27 19:50 ` Michael Niedermayer
0 siblings, 1 reply; 22+ messages in thread
From: James Almer @ 2024-05-27 19:33 UTC (permalink / raw)
To: ffmpeg-devel
On 5/27/2024 4:31 PM, Michael Niedermayer wrote:
> On Mon, May 27, 2024 at 09:20:55PM +0200, Michael Niedermayer wrote:
>> On Mon, May 27, 2024 at 03:17:15PM -0300, James Almer wrote:
>>> On 5/27/2024 3:11 PM, Michael Niedermayer wrote:
>>>> On Mon, May 27, 2024 at 10:15:43AM +0200, Anton Khirnov wrote:
>>>>> Quoting Michael Niedermayer (2024-04-27 02:36:23)
>>>>>> This allows detecting issues in side data related code, same as what
>>>>>> framecrc does for before already for packet data itself.
>>>>>>
>>>>>> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
>>>>>> ---
>>>>>
>>>>> I am against this patch. Checksumming side data is a fundamentally wrong
>>>>> thing to do.
>>>>
>>>> It, or something equivalent is neccessary for regression testing.
>>>> (and it was you who asked also for the tests i run to be part of
>>>> fate. But here you object to it)
>>>>
>>>> You know, not checking side data is not checking it so differences would then not be
>>>> detected allowing for unintended changes to be introduced (aka bugs)
>>>
>>> You have seen how much code is needed to get hashing to work for all targets
>>> with some types,
>>
>> framecrcenc.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
>> 1 file changed, 73 insertions(+), 3 deletions(-)
>>
>> 70 more lines of code, in my patch
>>
>> If we need another 70 to handle some corner cases, no idea if we do, thats
>> still negligible
>>
>>
>>> so it does feel like it's not the right thing to do.
>>
>> I dont think i can follow that logic
>>
>>
>>> ffprobe (and f_sidedata) are what should be used for actual integrity
>>> checks.
>>
>> ffprobe cannot test ffmpeg, ffmpeg is a seperate excutable
>>
>> If you suggest that side data should not be tested in FFmpeg while packet.data
>> should be tested. That position seems inconsistant to me
>>
>> If you suggest that neither side data nor packet.data should be tested in FFmpeg
>> iam confident that there would be a majority disagreeing.
>>
>> f_sidedata is not at the output of ffmpeg so even if it could test it, it
>> does not test the ffmpeg output.
>> We also dont replace running md5sum and framecrc on ffmpeg output by a bitstream
>> filter.
>>
>> Again, there is need to test what comes out of FFmpeg, thats at the muxer level
>> thats what framecrcenc does.
>
> There is also an additional aspect
> and that is efficiency or "time taken by all fate tests"
> framecrcenc already has all the side data, it costs basically 0 time to print that
>
> any ffprobe based check needs to run everything a 2nd time, so it will be slower
>
> also ffprobe is only good for side data from the demuxer.
> my patch tests all cases including side data from the encoder or any other
> source that gets forwarded to the muxer in each testcase.
We could extend showinfo_bsf to print side data information.
>
> thx
>
> [...]
>
>
> _______________________________________________
> 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".
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-05-27 19:32 ` James Almer
@ 2024-05-27 19:43 ` Michael Niedermayer
0 siblings, 0 replies; 22+ messages in thread
From: Michael Niedermayer @ 2024-05-27 19:43 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 2673 bytes --]
On Mon, May 27, 2024 at 04:32:43PM -0300, James Almer wrote:
> On 5/27/2024 4:20 PM, Michael Niedermayer wrote:
> > On Mon, May 27, 2024 at 03:17:15PM -0300, James Almer wrote:
> > > On 5/27/2024 3:11 PM, Michael Niedermayer wrote:
> > > > On Mon, May 27, 2024 at 10:15:43AM +0200, Anton Khirnov wrote:
> > > > > Quoting Michael Niedermayer (2024-04-27 02:36:23)
> > > > > > This allows detecting issues in side data related code, same as what
> > > > > > framecrc does for before already for packet data itself.
> > > > > >
> > > > > > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > > > > > ---
> > > > >
> > > > > I am against this patch. Checksumming side data is a fundamentally wrong
> > > > > thing to do.
> > > >
> > > > It, or something equivalent is neccessary for regression testing.
> > > > (and it was you who asked also for the tests i run to be part of
> > > > fate. But here you object to it)
> > > >
> > > > You know, not checking side data is not checking it so differences would then not be
> > > > detected allowing for unintended changes to be introduced (aka bugs)
> > >
> > > You have seen how much code is needed to get hashing to work for all targets
> > > with some types,
> >
> > framecrcenc.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
> > 1 file changed, 73 insertions(+), 3 deletions(-)
> >
> > 70 more lines of code, in my patch
> >
> > If we need another 70 to handle some corner cases, no idea if we do, thats
> > still negligible
>
> IAMF and video_enc_params. And potential future types. It's not negligible.
>
> >
> >
> > > so it does feel like it's not the right thing to do.
> >
> > I dont think i can follow that logic
>
> Extra custom code to take into account specific side data types in order to
> output a common hash value. Do we really need to add that when we already
> have side data type specific parsing code to in ffprobe?
side data specific code doesnt belong in ffprobe
what should instead be done is to have side data parsing code where the side data
struct is
Side data can be represented in at least 4 ways
1. one or more C structs
2. a serialized bytestream
3. json data
4. a human readable key value printout
We have some of this in ffprobe, it should be closer to iamf.c/h and then
used by framecrcenc (whatever format framecrcenc uses is not important)
[...]
thx
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
I know you won't believe me, but the highest form of Human Excellence is
to question oneself and others. -- Socrates
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-05-27 19:33 ` James Almer
@ 2024-05-27 19:50 ` Michael Niedermayer
2024-05-27 19:52 ` James Almer
0 siblings, 1 reply; 22+ messages in thread
From: Michael Niedermayer @ 2024-05-27 19:50 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 3749 bytes --]
On Mon, May 27, 2024 at 04:33:21PM -0300, James Almer wrote:
> On 5/27/2024 4:31 PM, Michael Niedermayer wrote:
> > On Mon, May 27, 2024 at 09:20:55PM +0200, Michael Niedermayer wrote:
> > > On Mon, May 27, 2024 at 03:17:15PM -0300, James Almer wrote:
> > > > On 5/27/2024 3:11 PM, Michael Niedermayer wrote:
> > > > > On Mon, May 27, 2024 at 10:15:43AM +0200, Anton Khirnov wrote:
> > > > > > Quoting Michael Niedermayer (2024-04-27 02:36:23)
> > > > > > > This allows detecting issues in side data related code, same as what
> > > > > > > framecrc does for before already for packet data itself.
> > > > > > >
> > > > > > > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > > > > > > ---
> > > > > >
> > > > > > I am against this patch. Checksumming side data is a fundamentally wrong
> > > > > > thing to do.
> > > > >
> > > > > It, or something equivalent is neccessary for regression testing.
> > > > > (and it was you who asked also for the tests i run to be part of
> > > > > fate. But here you object to it)
> > > > >
> > > > > You know, not checking side data is not checking it so differences would then not be
> > > > > detected allowing for unintended changes to be introduced (aka bugs)
> > > >
> > > > You have seen how much code is needed to get hashing to work for all targets
> > > > with some types,
> > >
> > > framecrcenc.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
> > > 1 file changed, 73 insertions(+), 3 deletions(-)
> > >
> > > 70 more lines of code, in my patch
> > >
> > > If we need another 70 to handle some corner cases, no idea if we do, thats
> > > still negligible
> > >
> > >
> > > > so it does feel like it's not the right thing to do.
> > >
> > > I dont think i can follow that logic
> > >
> > >
> > > > ffprobe (and f_sidedata) are what should be used for actual integrity
> > > > checks.
> > >
> > > ffprobe cannot test ffmpeg, ffmpeg is a seperate excutable
> > >
> > > If you suggest that side data should not be tested in FFmpeg while packet.data
> > > should be tested. That position seems inconsistant to me
> > >
> > > If you suggest that neither side data nor packet.data should be tested in FFmpeg
> > > iam confident that there would be a majority disagreeing.
> > >
> > > f_sidedata is not at the output of ffmpeg so even if it could test it, it
> > > does not test the ffmpeg output.
> > > We also dont replace running md5sum and framecrc on ffmpeg output by a bitstream
> > > filter.
> > >
> > > Again, there is need to test what comes out of FFmpeg, thats at the muxer level
> > > thats what framecrcenc does.
> >
> > There is also an additional aspect
> > and that is efficiency or "time taken by all fate tests"
> > framecrcenc already has all the side data, it costs basically 0 time to print that
> >
> > any ffprobe based check needs to run everything a 2nd time, so it will be slower
> >
> > also ffprobe is only good for side data from the demuxer.
> > my patch tests all cases including side data from the encoder or any other
> > source that gets forwarded to the muxer in each testcase.
>
> We could extend showinfo_bsf to print side data information.
Well, you argued a moment ago that its too much code (in framecrcenc)
its not going to be less code if the same or more detailed information
is printed in a showinfo_bsf
again, my suggestion is that this code should go to where side data is
and then showinfo_bsf, framecrcenc and ffprobe can use it
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Observe your enemies, for they first find out your faults. -- Antisthenes
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-05-27 19:50 ` Michael Niedermayer
@ 2024-05-27 19:52 ` James Almer
2024-05-30 19:33 ` Michael Niedermayer
0 siblings, 1 reply; 22+ messages in thread
From: James Almer @ 2024-05-27 19:52 UTC (permalink / raw)
To: ffmpeg-devel
On 5/27/2024 4:50 PM, Michael Niedermayer wrote:
> On Mon, May 27, 2024 at 04:33:21PM -0300, James Almer wrote:
>> On 5/27/2024 4:31 PM, Michael Niedermayer wrote:
>>> On Mon, May 27, 2024 at 09:20:55PM +0200, Michael Niedermayer wrote:
>>>> On Mon, May 27, 2024 at 03:17:15PM -0300, James Almer wrote:
>>>>> On 5/27/2024 3:11 PM, Michael Niedermayer wrote:
>>>>>> On Mon, May 27, 2024 at 10:15:43AM +0200, Anton Khirnov wrote:
>>>>>>> Quoting Michael Niedermayer (2024-04-27 02:36:23)
>>>>>>>> This allows detecting issues in side data related code, same as what
>>>>>>>> framecrc does for before already for packet data itself.
>>>>>>>>
>>>>>>>> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
>>>>>>>> ---
>>>>>>>
>>>>>>> I am against this patch. Checksumming side data is a fundamentally wrong
>>>>>>> thing to do.
>>>>>>
>>>>>> It, or something equivalent is neccessary for regression testing.
>>>>>> (and it was you who asked also for the tests i run to be part of
>>>>>> fate. But here you object to it)
>>>>>>
>>>>>> You know, not checking side data is not checking it so differences would then not be
>>>>>> detected allowing for unintended changes to be introduced (aka bugs)
>>>>>
>>>>> You have seen how much code is needed to get hashing to work for all targets
>>>>> with some types,
>>>>
>>>> framecrcenc.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
>>>> 1 file changed, 73 insertions(+), 3 deletions(-)
>>>>
>>>> 70 more lines of code, in my patch
>>>>
>>>> If we need another 70 to handle some corner cases, no idea if we do, thats
>>>> still negligible
>>>>
>>>>
>>>>> so it does feel like it's not the right thing to do.
>>>>
>>>> I dont think i can follow that logic
>>>>
>>>>
>>>>> ffprobe (and f_sidedata) are what should be used for actual integrity
>>>>> checks.
>>>>
>>>> ffprobe cannot test ffmpeg, ffmpeg is a seperate excutable
>>>>
>>>> If you suggest that side data should not be tested in FFmpeg while packet.data
>>>> should be tested. That position seems inconsistant to me
>>>>
>>>> If you suggest that neither side data nor packet.data should be tested in FFmpeg
>>>> iam confident that there would be a majority disagreeing.
>>>>
>>>> f_sidedata is not at the output of ffmpeg so even if it could test it, it
>>>> does not test the ffmpeg output.
>>>> We also dont replace running md5sum and framecrc on ffmpeg output by a bitstream
>>>> filter.
>>>>
>>>> Again, there is need to test what comes out of FFmpeg, thats at the muxer level
>>>> thats what framecrcenc does.
>>>
>>> There is also an additional aspect
>>> and that is efficiency or "time taken by all fate tests"
>>> framecrcenc already has all the side data, it costs basically 0 time to print that
>>>
>>> any ffprobe based check needs to run everything a 2nd time, so it will be slower
>>>
>>> also ffprobe is only good for side data from the demuxer.
>>> my patch tests all cases including side data from the encoder or any other
>>> source that gets forwarded to the muxer in each testcase.
>>
>> We could extend showinfo_bsf to print side data information.
>
> Well, you argued a moment ago that its too much code (in framecrcenc)
> its not going to be less code if the same or more detailed information
> is printed in a showinfo_bsf
>
> again, my suggestion is that this code should go to where side data is
> and then showinfo_bsf, framecrcenc and ffprobe can use it
I mean, showinfo_bsf could be adapted in a way ffprobe can invoke/parse,
so all the related ffprobe code can be moved there.
>
> thx
>
> [...]
>
>
> _______________________________________________
> 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".
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-05-27 19:52 ` James Almer
@ 2024-05-30 19:33 ` Michael Niedermayer
0 siblings, 0 replies; 22+ messages in thread
From: Michael Niedermayer @ 2024-05-30 19:33 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 4584 bytes --]
On Mon, May 27, 2024 at 04:52:22PM -0300, James Almer wrote:
> On 5/27/2024 4:50 PM, Michael Niedermayer wrote:
> > On Mon, May 27, 2024 at 04:33:21PM -0300, James Almer wrote:
> > > On 5/27/2024 4:31 PM, Michael Niedermayer wrote:
> > > > On Mon, May 27, 2024 at 09:20:55PM +0200, Michael Niedermayer wrote:
> > > > > On Mon, May 27, 2024 at 03:17:15PM -0300, James Almer wrote:
> > > > > > On 5/27/2024 3:11 PM, Michael Niedermayer wrote:
> > > > > > > On Mon, May 27, 2024 at 10:15:43AM +0200, Anton Khirnov wrote:
> > > > > > > > Quoting Michael Niedermayer (2024-04-27 02:36:23)
> > > > > > > > > This allows detecting issues in side data related code, same as what
> > > > > > > > > framecrc does for before already for packet data itself.
> > > > > > > > >
> > > > > > > > > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> > > > > > > > > ---
> > > > > > > >
> > > > > > > > I am against this patch. Checksumming side data is a fundamentally wrong
> > > > > > > > thing to do.
> > > > > > >
> > > > > > > It, or something equivalent is neccessary for regression testing.
> > > > > > > (and it was you who asked also for the tests i run to be part of
> > > > > > > fate. But here you object to it)
> > > > > > >
> > > > > > > You know, not checking side data is not checking it so differences would then not be
> > > > > > > detected allowing for unintended changes to be introduced (aka bugs)
> > > > > >
> > > > > > You have seen how much code is needed to get hashing to work for all targets
> > > > > > with some types,
> > > > >
> > > > > framecrcenc.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
> > > > > 1 file changed, 73 insertions(+), 3 deletions(-)
> > > > >
> > > > > 70 more lines of code, in my patch
> > > > >
> > > > > If we need another 70 to handle some corner cases, no idea if we do, thats
> > > > > still negligible
> > > > >
> > > > >
> > > > > > so it does feel like it's not the right thing to do.
> > > > >
> > > > > I dont think i can follow that logic
> > > > >
> > > > >
> > > > > > ffprobe (and f_sidedata) are what should be used for actual integrity
> > > > > > checks.
> > > > >
> > > > > ffprobe cannot test ffmpeg, ffmpeg is a seperate excutable
> > > > >
> > > > > If you suggest that side data should not be tested in FFmpeg while packet.data
> > > > > should be tested. That position seems inconsistant to me
> > > > >
> > > > > If you suggest that neither side data nor packet.data should be tested in FFmpeg
> > > > > iam confident that there would be a majority disagreeing.
> > > > >
> > > > > f_sidedata is not at the output of ffmpeg so even if it could test it, it
> > > > > does not test the ffmpeg output.
> > > > > We also dont replace running md5sum and framecrc on ffmpeg output by a bitstream
> > > > > filter.
> > > > >
> > > > > Again, there is need to test what comes out of FFmpeg, thats at the muxer level
> > > > > thats what framecrcenc does.
> > > >
> > > > There is also an additional aspect
> > > > and that is efficiency or "time taken by all fate tests"
> > > > framecrcenc already has all the side data, it costs basically 0 time to print that
> > > >
> > > > any ffprobe based check needs to run everything a 2nd time, so it will be slower
> > > >
> > > > also ffprobe is only good for side data from the demuxer.
> > > > my patch tests all cases including side data from the encoder or any other
> > > > source that gets forwarded to the muxer in each testcase.
> > >
> > > We could extend showinfo_bsf to print side data information.
> >
> > Well, you argued a moment ago that its too much code (in framecrcenc)
> > its not going to be less code if the same or more detailed information
> > is printed in a showinfo_bsf
> >
> > again, my suggestion is that this code should go to where side data is
> > and then showinfo_bsf, framecrcenc and ffprobe can use it
>
> I mean, showinfo_bsf could be adapted in a way ffprobe can invoke/parse, so
> all the related ffprobe code can be moved there.
do you agree that framecrcenc should show side data in a way to allow
detecting changes, as it also does with the main packet data ?
Its perfectly fine with me if that invokes the same code as showinfo_bsf
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
If a bugfix only changes things apparently unrelated to the bug with no
further explanation, that is a good sign that the bugfix is wrong.
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-05-27 18:11 ` Michael Niedermayer
2024-05-27 18:17 ` James Almer
@ 2024-05-31 7:32 ` Anton Khirnov
1 sibling, 0 replies; 22+ messages in thread
From: Anton Khirnov @ 2024-05-31 7:32 UTC (permalink / raw)
To: FFmpeg development discussions and patches
Quoting Michael Niedermayer (2024-05-27 20:11:05)
> If you block this solution without providing another solution
> then i will bring this to the technical committee, to seek its guidance
> on the way forward.
The solution is to use a tool appropriate for the purpose, like ffprobe.
--
Anton Khirnov
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data
2024-05-27 14:11 ` James Almer
@ 2024-05-31 7:39 ` Anton Khirnov
0 siblings, 0 replies; 22+ messages in thread
From: Anton Khirnov @ 2024-05-31 7:39 UTC (permalink / raw)
To: FFmpeg development discussions and patches
Quoting James Almer (2024-05-27 16:11:13)
> On 5/27/2024 5:15 AM, Anton Khirnov wrote:
> > Quoting Michael Niedermayer (2024-04-27 02:36:23)
> >> This allows detecting issues in side data related code, same as what
> >> framecrc does for before already for packet data itself.
> >>
> >> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
> >> ---
> >
> > I am against this patch. Checksumming side data is a fundamentally wrong
> > thing to do.
>
> framehash should be updated to also not print hashes, then. Problem is
> that it's versioned, so we would need to "deprecate" the current versions.
>
> There's also the issue of printing sizes, which for some structs (iamf,
> video_enc_params) it can vary depending on target, so my suggestion was
> adding an option to disable printing certain values like it. What do you
> think?
I agree. It's another aspect of the same issue - binary representation
of side data is not guaranteed to be the same everywhere.
--
Anton Khirnov
_______________________________________________
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".
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2024-05-31 7:39 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-27 0:36 [FFmpeg-devel] [PATCH] avformat/framecrcenc: compute the checksum for side data Michael Niedermayer
2024-04-27 10:44 ` Andreas Rheinhardt
2024-04-27 12:07 ` Michael Niedermayer
2024-04-28 3:43 ` James Almer
2024-04-30 23:25 ` Michael Niedermayer
2024-04-30 23:29 ` James Almer
2024-05-01 0:40 ` Michael Niedermayer
2024-05-01 0:45 ` James Almer
2024-05-27 8:15 ` Anton Khirnov
2024-05-27 14:11 ` James Almer
2024-05-31 7:39 ` Anton Khirnov
2024-05-27 18:11 ` Michael Niedermayer
2024-05-27 18:17 ` James Almer
2024-05-27 19:20 ` Michael Niedermayer
2024-05-27 19:31 ` Michael Niedermayer
2024-05-27 19:33 ` James Almer
2024-05-27 19:50 ` Michael Niedermayer
2024-05-27 19:52 ` James Almer
2024-05-30 19:33 ` Michael Niedermayer
2024-05-27 19:32 ` James Almer
2024-05-27 19:43 ` Michael Niedermayer
2024-05-31 7:32 ` Anton Khirnov
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