From 968cc9a2e6581fa7776d9f4a855a3ac856333d55 Mon Sep 17 00:00:00 2001
From: Carl Eugen Hoyos <ceffmpeg@gmail.com>
Date: Tue, 7 Aug 2018 23:36:41 +0200
Subject: [PATCH] lavc/h264: Output AV_PIX_FMT_GRAY for monochrome input.
fate output is identical when compared with extractplanes=y.
---
libavcodec/h264_mb.c | 10 +-
libavcodec/h264_mb_template.c | 28 +--
libavcodec/h264_parser.c | 9 +-
libavcodec/h264_slice.c | 17 +-
libavcodec/h264dec.h | 1 +
.../fate/h264-conformance-frext-hpcamolq_brcm_b | 200 ++++++++++----------
.../fate/h264-conformance-frext-hpcvmolq_brcm_b | 200 ++++++++++----------
7 files changed, 234 insertions(+), 231 deletions(-)
@@ -250,7 +250,7 @@ static av_always_inline void mc_dir_part(const H264Context *h, H264SliceContext
if (!square)
qpix_op[luma_xy](dest_y + delta, src_y + delta, sl->mb_linesize);
- if (CONFIG_GRAY && h->flags & AV_CODEC_FLAG_GRAY)
+ if (CHROMA400(h) || CONFIG_GRAY && h->flags & AV_CODEC_FLAG_GRAY)
return;
if (chroma_idc == 3 /* yuv444 */) {
@@ -425,7 +425,7 @@ static av_always_inline void mc_part_weighted(const H264Context *h, H264SliceCon
int weight1 = 64 - weight0;
luma_weight_avg(dest_y, tmp_y, sl->mb_linesize,
height, 5, weight0, weight1, 0);
- if (!CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY)) {
+ if (!CHROMA400(h) && (!CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY))) {
chroma_weight_avg(dest_cb, tmp_cb, sl->mb_uvlinesize,
chroma_height, 5, weight0, weight1, 0);
chroma_weight_avg(dest_cr, tmp_cr, sl->mb_uvlinesize,
@@ -438,7 +438,7 @@ static av_always_inline void mc_part_weighted(const H264Context *h, H264SliceCon
sl->pwt.luma_weight[refn1][1][0],
sl->pwt.luma_weight[refn0][0][1] +
sl->pwt.luma_weight[refn1][1][1]);
- if (!CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY)) {
+ if (!CHROMA400(h) && (!CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY))) {
chroma_weight_avg(dest_cb, tmp_cb, sl->mb_uvlinesize, chroma_height,
sl->pwt.chroma_log2_weight_denom,
sl->pwt.chroma_weight[refn0][0][0][0],
@@ -465,7 +465,7 @@ static av_always_inline void mc_part_weighted(const H264Context *h, H264SliceCon
sl->pwt.luma_log2_weight_denom,
sl->pwt.luma_weight[refn][list][0],
sl->pwt.luma_weight[refn][list][1]);
- if (!CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY)) {
+ if (!CHROMA400(h) && (!CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY))) {
if (sl->pwt.use_weight_chroma) {
chroma_weight_op(dest_cb, sl->mb_uvlinesize, chroma_height,
sl->pwt.chroma_log2_weight_denom,
@@ -566,7 +566,7 @@ static av_always_inline void xchg_mb_border(const H264Context *h, H264SliceConte
XCHG(sl->top_borders[top_idx][sl->mb_x + 1],
src_y + (17 << pixel_shift), 1);
}
- if (simple || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY)) {
+ if (!CHROMA400(h) && (simple || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY))) {
if (chroma444) {
if (deblock_topleft) {
XCHG(top_border_m1 + (24 << pixel_shift), src_cb - (7 << pixel_shift), 1);
@@ -52,6 +52,7 @@ static av_noinline void FUNC(hl_decode_mb)(const H264Context *h, H264SliceContex
void (*idct_add)(uint8_t *dst, int16_t *block, int stride);
const int block_h = 16 >> h->chroma_y_shift;
const int chroma422 = CHROMA422(h);
+ const int chroma400 = CHROMA400(h);
dest_y = h->cur_pic.f->data[0] + ((mb_x << PIXEL_SHIFT) + mb_y * sl->linesize) * 16;
dest_cb = h->cur_pic.f->data[1] + (mb_x << PIXEL_SHIFT) * 8 + mb_y * sl->uvlinesize * block_h;
@@ -108,16 +109,8 @@ static av_noinline void FUNC(hl_decode_mb)(const H264Context *h, H264SliceContex
for (j = 0; j < 16; j++)
tmp_y[j] = get_bits(&gb, bit_depth);
}
- if (SIMPLE || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY)) {
- if (!h->ps.sps->chroma_format_idc) {
- for (i = 0; i < block_h; i++) {
- uint16_t *tmp_cb = (uint16_t *)(dest_cb + i * uvlinesize);
- uint16_t *tmp_cr = (uint16_t *)(dest_cr + i * uvlinesize);
- for (j = 0; j < 8; j++) {
- tmp_cb[j] = tmp_cr[j] = 1 << (bit_depth - 1);
- }
- }
- } else {
+ if (!chroma400 && (SIMPLE || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY))) {
+ if (h->ps.sps->chroma_format_idc) {
for (i = 0; i < block_h; i++) {
uint16_t *tmp_cb = (uint16_t *)(dest_cb + i * uvlinesize);
for (j = 0; j < 8; j++)
@@ -133,13 +126,8 @@ static av_noinline void FUNC(hl_decode_mb)(const H264Context *h, H264SliceContex
} else {
for (i = 0; i < 16; i++)
memcpy(dest_y + i * linesize, sl->intra_pcm_ptr + i * 16, 16);
- if (SIMPLE || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY)) {
- if (!h->ps.sps->chroma_format_idc) {
- for (i = 0; i < 8; i++) {
- memset(dest_cb + i * uvlinesize, 1 << (bit_depth - 1), 8);
- memset(dest_cr + i * uvlinesize, 1 << (bit_depth - 1), 8);
- }
- } else {
+ if (!chroma400 && (SIMPLE || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY))) {
+ if (h->ps.sps->chroma_format_idc) {
const uint8_t *src_cb = sl->intra_pcm_ptr + 256;
const uint8_t *src_cr = sl->intra_pcm_ptr + 256 + block_h * 8;
for (i = 0; i < block_h; i++) {
@@ -155,7 +143,7 @@ static av_noinline void FUNC(hl_decode_mb)(const H264Context *h, H264SliceContex
xchg_mb_border(h, sl, dest_y, dest_cb, dest_cr, linesize,
uvlinesize, 1, 0, SIMPLE, PIXEL_SHIFT);
- if (SIMPLE || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY)) {
+ if (!chroma400 && (SIMPLE || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY))) {
h->hpc.pred8x8[sl->chroma_pred_mode](dest_cb, uvlinesize);
h->hpc.pred8x8[sl->chroma_pred_mode](dest_cr, uvlinesize);
}
@@ -190,7 +178,7 @@ static av_noinline void FUNC(hl_decode_mb)(const H264Context *h, H264SliceContex
hl_decode_mb_idct_luma(h, sl, mb_type, SIMPLE, transform_bypass,
PIXEL_SHIFT, block_offset, linesize, dest_y, 0);
- if ((SIMPLE || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY)) &&
+ if ((!CHROMA400(h) && (SIMPLE || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY))) &&
(sl->cbp & 0x30)) {
uint8_t *dest[2] = { dest_cb, dest_cr };
if (transform_bypass) {
@@ -264,7 +252,7 @@ static av_noinline void FUNC(hl_decode_mb_444)(const H264Context *h, H264SliceCo
int i, j, p;
const int *block_offset = &h->block_offset[0];
const int transform_bypass = !SIMPLE && (sl->qscale == 0 && h->ps.sps->transform_bypass);
- const int plane_count = (SIMPLE || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY)) ? 3 : 1;
+ const int plane_count = !CHROMA400(h) && (SIMPLE || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY)) ? 3 : 1;
for (p = 0; p < plane_count; p++) {
dest[p] = h->cur_pic.f->data[p] +
@@ -401,17 +401,20 @@ static inline int parse_nal_units(AVCodecParserContext *s,
case 9:
if (sps->chroma_format_idc == 3) s->format = AV_PIX_FMT_YUV444P9;
else if (sps->chroma_format_idc == 2) s->format = AV_PIX_FMT_YUV422P9;
- else s->format = AV_PIX_FMT_YUV420P9;
+ else if (sps->chroma_format_idc == 1) s->format = AV_PIX_FMT_YUV420P9;
+ else s->format = AV_PIX_FMT_GRAY9;
break;
case 10:
if (sps->chroma_format_idc == 3) s->format = AV_PIX_FMT_YUV444P10;
else if (sps->chroma_format_idc == 2) s->format = AV_PIX_FMT_YUV422P10;
- else s->format = AV_PIX_FMT_YUV420P10;
+ else if (sps->chroma_format_idc == 1) s->format = AV_PIX_FMT_YUV420P10;
+ else s->format = AV_PIX_FMT_GRAY10;
break;
case 8:
if (sps->chroma_format_idc == 3) s->format = AV_PIX_FMT_YUV444P;
else if (sps->chroma_format_idc == 2) s->format = AV_PIX_FMT_YUV422P;
- else s->format = AV_PIX_FMT_YUV420P;
+ else if (sps->chroma_format_idc == 1) s->format = AV_PIX_FMT_YUV420P;
+ else s->format = AV_PIX_FMT_GRAY8;
break;
default:
s->format = AV_PIX_FMT_NONE;
@@ -497,7 +497,7 @@ static int h264_frame_start(H264Context *h)
if ((ret = alloc_picture(h, pic)) < 0)
return ret;
- if(!h->frame_recovered && !h->avctx->hwaccel)
+ if(!h->frame_recovered && !h->avctx->hwaccel && !CHROMA400(h))
ff_color_frame(pic->f, c);
h->cur_pic_ptr = pic;
@@ -564,6 +564,7 @@ static av_always_inline void backup_mb_border(const H264Context *h, H264SliceCon
const int pixel_shift = h->pixel_shift;
int chroma444 = CHROMA444(h);
int chroma422 = CHROMA422(h);
+ int chroma400 = CHROMA400(h);
src_y -= linesize;
src_cb -= uvlinesize;
@@ -576,7 +577,7 @@ static av_always_inline void backup_mb_border(const H264Context *h, H264SliceCon
AV_COPY128(top_border, src_y + 15 * linesize);
if (pixel_shift)
AV_COPY128(top_border + 16, src_y + 15 * linesize + 16);
- if (simple || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY)) {
+ if (!chroma400 && (simple || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY))) {
if (chroma444) {
if (pixel_shift) {
AV_COPY128(top_border + 32, src_cb + 15 * uvlinesize);
@@ -619,7 +620,7 @@ static av_always_inline void backup_mb_border(const H264Context *h, H264SliceCon
if (pixel_shift)
AV_COPY128(top_border + 16, src_y + 16 * linesize + 16);
- if (simple || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY)) {
+ if (!chroma400 && (simple || !CONFIG_GRAY || !(h->flags & AV_CODEC_FLAG_GRAY))) {
if (chroma444) {
if (pixel_shift) {
AV_COPY128(top_border + 32, src_cb + 16 * linesize);
@@ -772,6 +773,8 @@ static enum AVPixelFormat get_pixel_format(H264Context *h, int force_callback)
*fmt++ = AV_PIX_FMT_GBRP9;
} else
*fmt++ = AV_PIX_FMT_YUV444P9;
+ } else if (CHROMA400(h)) {
+ *fmt++ = AV_PIX_FMT_GRAY9;
} else if (CHROMA422(h))
*fmt++ = AV_PIX_FMT_YUV422P9;
else
@@ -783,6 +786,8 @@ static enum AVPixelFormat get_pixel_format(H264Context *h, int force_callback)
*fmt++ = AV_PIX_FMT_GBRP10;
} else
*fmt++ = AV_PIX_FMT_YUV444P10;
+ } else if (CHROMA400(h)) {
+ *fmt++ = AV_PIX_FMT_GRAY10;
} else if (CHROMA422(h))
*fmt++ = AV_PIX_FMT_YUV422P10;
else
@@ -794,6 +799,8 @@ static enum AVPixelFormat get_pixel_format(H264Context *h, int force_callback)
*fmt++ = AV_PIX_FMT_GBRP12;
} else
*fmt++ = AV_PIX_FMT_YUV444P12;
+ } else if (CHROMA400(h)) {
+ *fmt++ = AV_PIX_FMT_GRAY12;
} else if (CHROMA422(h))
*fmt++ = AV_PIX_FMT_YUV422P12;
else
@@ -805,6 +812,8 @@ static enum AVPixelFormat get_pixel_format(H264Context *h, int force_callback)
*fmt++ = AV_PIX_FMT_GBRP14;
} else
*fmt++ = AV_PIX_FMT_YUV444P14;
+ } else if (CHROMA400(h)) {
+ *fmt++ = AV_PIX_FMT_GRAY14;
} else if (CHROMA422(h))
*fmt++ = AV_PIX_FMT_YUV422P14;
else
@@ -824,6 +833,8 @@ static enum AVPixelFormat get_pixel_format(H264Context *h, int force_callback)
*fmt++ = AV_PIX_FMT_YUVJ444P;
else
*fmt++ = AV_PIX_FMT_YUV444P;
+ } else if (CHROMA400(h)) {
+ *fmt++ = AV_PIX_FMT_GRAY8;
} else if (CHROMA422(h)) {
if (h->avctx->color_range == AVCOL_RANGE_JPEG)
*fmt++ = AV_PIX_FMT_YUVJ422P;
@@ -95,6 +95,7 @@
#endif
#define CHROMA(h) ((h)->ps.sps->chroma_format_idc)
+#define CHROMA400(h) ((h)->ps.sps->chroma_format_idc == 0)
#define CHROMA422(h) ((h)->ps.sps->chroma_format_idc == 2)
#define CHROMA444(h) ((h)->ps.sps->chroma_format_idc == 3)
@@ -3,103 +3,103 @@
#codec_id 0: rawvideo
#dimensions 0: 352x288
#sar 0: 0/1
-0, 0, 0, 1, 152064, 0xac83f54f
-0, 1, 1, 1, 152064, 0x4d673b43
-0, 2, 2, 1, 152064, 0x9050731f
-0, 3, 3, 1, 152064, 0x4a0741f3
-0, 4, 4, 1, 152064, 0xb2371c28
-0, 5, 5, 1, 152064, 0x42210524
-0, 6, 6, 1, 152064, 0x385f4be5
-0, 7, 7, 1, 152064, 0xe44ec27a
-0, 8, 8, 1, 152064, 0xfc668399
-0, 9, 9, 1, 152064, 0x903fe200
-0, 10, 10, 1, 152064, 0x4da1deaa
-0, 11, 11, 1, 152064, 0x68c956ab
-0, 12, 12, 1, 152064, 0x9cfad799
-0, 13, 13, 1, 152064, 0x841ed3cd
-0, 14, 14, 1, 152064, 0x99e66b48
-0, 15, 15, 1, 152064, 0xcfa28482
-0, 16, 16, 1, 152064, 0x72f2c717
-0, 17, 17, 1, 152064, 0xd1d92c80
-0, 18, 18, 1, 152064, 0x595063eb
-0, 19, 19, 1, 152064, 0x87373979
-0, 20, 20, 1, 152064, 0xfa0e75ac
-0, 21, 21, 1, 152064, 0x0cef3592
-0, 22, 22, 1, 152064, 0xecfc9c9a
-0, 23, 23, 1, 152064, 0x5776ff23
-0, 24, 24, 1, 152064, 0x83419e37
-0, 25, 25, 1, 152064, 0x4bb31524
-0, 26, 26, 1, 152064, 0xad8e1bdc
-0, 27, 27, 1, 152064, 0x7243b6cb
-0, 28, 28, 1, 152064, 0xf016cda0
-0, 29, 29, 1, 152064, 0xa2c1d730
-0, 30, 30, 1, 152064, 0x7999d704
-0, 31, 31, 1, 152064, 0x86ad0baf
-0, 32, 32, 1, 152064, 0x35dafe62
-0, 33, 33, 1, 152064, 0xcb2f5de2
-0, 34, 34, 1, 152064, 0x3542eb82
-0, 35, 35, 1, 152064, 0xa704dd92
-0, 36, 36, 1, 152064, 0x3e50ed92
-0, 37, 37, 1, 152064, 0x2fe5428a
-0, 38, 38, 1, 152064, 0xf05dab9d
-0, 39, 39, 1, 152064, 0xef40c2a3
-0, 40, 40, 1, 152064, 0x2df8983f
-0, 41, 41, 1, 152064, 0x0a205c93
-0, 42, 42, 1, 152064, 0x505562ea
-0, 43, 43, 1, 152064, 0x24114860
-0, 44, 44, 1, 152064, 0x2eecccc1
-0, 45, 45, 1, 152064, 0xc809105f
-0, 46, 46, 1, 152064, 0x394ab285
-0, 47, 47, 1, 152064, 0xfda68f17
-0, 48, 48, 1, 152064, 0x2fd66a51
-0, 49, 49, 1, 152064, 0x3abb891a
-0, 50, 50, 1, 152064, 0x62266682
-0, 51, 51, 1, 152064, 0x68fb38e9
-0, 52, 52, 1, 152064, 0xae4b9d9b
-0, 53, 53, 1, 152064, 0xdaf8e150
-0, 54, 54, 1, 152064, 0x2fd8bf74
-0, 55, 55, 1, 152064, 0xd2ad6c38
-0, 56, 56, 1, 152064, 0x76290574
-0, 57, 57, 1, 152064, 0xaea6b9be
-0, 58, 58, 1, 152064, 0xd0d797d7
-0, 59, 59, 1, 152064, 0x87ad00b2
-0, 60, 60, 1, 152064, 0xe57d11d0
-0, 61, 61, 1, 152064, 0x25a5c567
-0, 62, 62, 1, 152064, 0x477e2202
-0, 63, 63, 1, 152064, 0xaa0618ca
-0, 64, 64, 1, 152064, 0xb5d2262b
-0, 65, 65, 1, 152064, 0xae7c135d
-0, 66, 66, 1, 152064, 0xddb86a7c
-0, 67, 67, 1, 152064, 0x59bad3ba
-0, 68, 68, 1, 152064, 0x0b155178
-0, 69, 69, 1, 152064, 0xc2f265d9
-0, 70, 70, 1, 152064, 0xb550e8a8
-0, 71, 71, 1, 152064, 0x1fef6cbc
-0, 72, 72, 1, 152064, 0xd3d4e578
-0, 73, 73, 1, 152064, 0x70d20c0d
-0, 74, 74, 1, 152064, 0xbb8e95a9
-0, 75, 75, 1, 152064, 0x2a92cda3
-0, 76, 76, 1, 152064, 0xc0a5e7e0
-0, 77, 77, 1, 152064, 0x15b99dab
-0, 78, 78, 1, 152064, 0x536d44e8
-0, 79, 79, 1, 152064, 0xe43fb4fa
-0, 80, 80, 1, 152064, 0xdb0873b0
-0, 81, 81, 1, 152064, 0xc7901e9b
-0, 82, 82, 1, 152064, 0x36b69923
-0, 83, 83, 1, 152064, 0xc6a8ac8d
-0, 84, 84, 1, 152064, 0xd7e4c595
-0, 85, 85, 1, 152064, 0x2d64cf38
-0, 86, 86, 1, 152064, 0x007878b1
-0, 87, 87, 1, 152064, 0xc9c997d4
-0, 88, 88, 1, 152064, 0xf9de12de
-0, 89, 89, 1, 152064, 0x25982d54
-0, 90, 90, 1, 152064, 0xea5eef7c
-0, 91, 91, 1, 152064, 0x108aceb2
-0, 92, 92, 1, 152064, 0x3cbac8c8
-0, 93, 93, 1, 152064, 0x581ec9e1
-0, 94, 94, 1, 152064, 0xc898bd7d
-0, 95, 95, 1, 152064, 0x142a0235
-0, 96, 96, 1, 152064, 0xf9d0aa7e
-0, 97, 97, 1, 152064, 0xb9fe0bc4
-0, 98, 98, 1, 152064, 0x21889912
-0, 99, 99, 1, 152064, 0x3fb2ab18
+0, 0, 0, 1, 101376, 0x59acef82
+0, 1, 1, 1, 101376, 0xb1733576
+0, 2, 2, 1, 101376, 0x44326d52
+0, 3, 3, 1, 101376, 0x407f3c26
+0, 4, 4, 1, 101376, 0x6142165b
+0, 5, 5, 1, 101376, 0x143eff48
+0, 6, 6, 1, 101376, 0x8f694618
+0, 7, 7, 1, 101376, 0x9d54bcad
+0, 8, 8, 1, 101376, 0x95177dcc
+0, 9, 9, 1, 101376, 0x3778dc33
+0, 10, 10, 1, 101376, 0x9f86d8dd
+0, 11, 11, 1, 101376, 0x1ed850de
+0, 12, 12, 1, 101376, 0x66e7d1cc
+0, 13, 13, 1, 101376, 0x421bce00
+0, 14, 14, 1, 101376, 0xf2b8657b
+0, 15, 15, 1, 101376, 0x27c77eb5
+0, 16, 16, 1, 101376, 0x886ac14a
+0, 17, 17, 1, 101376, 0xb33926b3
+0, 18, 18, 1, 101376, 0xf5905e1e
+0, 19, 19, 1, 101376, 0x3c1033ac
+0, 20, 20, 1, 101376, 0x82596fdf
+0, 21, 21, 1, 101376, 0x99042fc5
+0, 22, 22, 1, 101376, 0x9d8596cd
+0, 23, 23, 1, 101376, 0x9a8af956
+0, 24, 24, 1, 101376, 0xb30a986a
+0, 25, 25, 1, 101376, 0x64210f57
+0, 26, 26, 1, 101376, 0x280e160f
+0, 27, 27, 1, 101376, 0x0cdfb0fe
+0, 28, 28, 1, 101376, 0xc3bcc7d3
+0, 29, 29, 1, 101376, 0xa76dd163
+0, 30, 30, 1, 101376, 0x8843d137
+0, 31, 31, 1, 101376, 0x8ada05e2
+0, 32, 32, 1, 101376, 0xc7a9f895
+0, 33, 33, 1, 101376, 0xa3835815
+0, 34, 34, 1, 101376, 0xe217e5b5
+0, 35, 35, 1, 101376, 0x95a0d7c5
+0, 36, 36, 1, 101376, 0x733de7c5
+0, 37, 37, 1, 101376, 0x55823cbd
+0, 38, 38, 1, 101376, 0xa0b3a5d0
+0, 39, 39, 1, 101376, 0xf066bcd6
+0, 40, 40, 1, 101376, 0x73039272
+0, 41, 41, 1, 101376, 0x0ba156c6
+0, 42, 42, 1, 101376, 0xbe3e5d1d
+0, 43, 43, 1, 101376, 0x81f24293
+0, 44, 44, 1, 101376, 0x86a6c6f4
+0, 45, 45, 1, 101376, 0x75d60a92
+0, 46, 46, 1, 101376, 0x2978acb8
+0, 47, 47, 1, 101376, 0x9cfb894a
+0, 48, 48, 1, 101376, 0x9dd96484
+0, 49, 49, 1, 101376, 0xcd7f834d
+0, 50, 50, 1, 101376, 0x166660b5
+0, 51, 51, 1, 101376, 0x8455331c
+0, 52, 52, 1, 101376, 0x8d2b97ce
+0, 53, 53, 1, 101376, 0xaa29db83
+0, 54, 54, 1, 101376, 0xafe8b9a7
+0, 55, 55, 1, 101376, 0x80a8666b
+0, 56, 56, 1, 101376, 0x64a4ff98
+0, 57, 57, 1, 101376, 0x350ab3f1
+0, 58, 58, 1, 101376, 0x8aa1920a
+0, 59, 59, 1, 101376, 0xb95afad6
+0, 60, 60, 1, 101376, 0x1c970c03
+0, 61, 61, 1, 101376, 0x6eafbf9a
+0, 62, 62, 1, 101376, 0x16a01c35
+0, 63, 63, 1, 101376, 0x342612fd
+0, 64, 64, 1, 101376, 0x9eac205e
+0, 65, 65, 1, 101376, 0xc58a0d90
+0, 66, 66, 1, 101376, 0x07db64af
+0, 67, 67, 1, 101376, 0xca89cded
+0, 68, 68, 1, 101376, 0x6f6f4bab
+0, 69, 69, 1, 101376, 0x34df600c
+0, 70, 70, 1, 101376, 0x1f4fe2db
+0, 71, 71, 1, 101376, 0xafe166ef
+0, 72, 72, 1, 101376, 0x82ccdfab
+0, 73, 73, 1, 101376, 0xbcb80640
+0, 74, 74, 1, 101376, 0x22a88fdc
+0, 75, 75, 1, 101376, 0xac0bc7d6
+0, 76, 76, 1, 101376, 0xe3aae213
+0, 77, 77, 1, 101376, 0x93d697de
+0, 78, 78, 1, 101376, 0xa98f3f1b
+0, 79, 79, 1, 101376, 0x39f3af2d
+0, 80, 80, 1, 101376, 0x625a6de3
+0, 81, 81, 1, 101376, 0x683018ce
+0, 82, 82, 1, 101376, 0x19719356
+0, 83, 83, 1, 101376, 0xcc18a6c0
+0, 84, 84, 1, 101376, 0x8ae1bfc8
+0, 85, 85, 1, 101376, 0x5e86c96b
+0, 86, 86, 1, 101376, 0x87aa72e4
+0, 87, 87, 1, 101376, 0xd5b19207
+0, 88, 88, 1, 101376, 0x50b90d11
+0, 89, 89, 1, 101376, 0x055c2787
+0, 90, 90, 1, 101376, 0x0d25e9af
+0, 91, 91, 1, 101376, 0xebb5c8e5
+0, 92, 92, 1, 101376, 0x5891c2fb
+0, 93, 93, 1, 101376, 0x113ec414
+0, 94, 94, 1, 101376, 0x6982b7b0
+0, 95, 95, 1, 101376, 0xe243fc59
+0, 96, 96, 1, 101376, 0xb128a4b1
+0, 97, 97, 1, 101376, 0x7f3b05f7
+0, 98, 98, 1, 101376, 0x2b069345
+0, 99, 99, 1, 101376, 0xd402a54b
@@ -3,103 +3,103 @@
#codec_id 0: rawvideo
#dimensions 0: 352x288
#sar 0: 0/1
-0, 0, 0, 1, 152064, 0xa18cfb97
-0, 1, 1, 1, 152064, 0x509b54d2
-0, 2, 2, 1, 152064, 0x1ba0fb8e
-0, 3, 3, 1, 152064, 0x43e7721f
-0, 4, 4, 1, 152064, 0xed196624
-0, 5, 5, 1, 152064, 0x4277f1e8
-0, 6, 6, 1, 152064, 0x88015cd6
-0, 7, 7, 1, 152064, 0x0f230af3
-0, 8, 8, 1, 152064, 0x91bbd664
-0, 9, 9, 1, 152064, 0x117c65dd
-0, 10, 10, 1, 152064, 0x8eebe5e8
-0, 11, 11, 1, 152064, 0xd205cc10
-0, 12, 12, 1, 152064, 0x4084a356
-0, 13, 13, 1, 152064, 0x37385081
-0, 14, 14, 1, 152064, 0xb7d34d8a
-0, 15, 15, 1, 152064, 0x96648874
-0, 16, 16, 1, 152064, 0x0623e65b
-0, 17, 17, 1, 152064, 0x7d5b0173
-0, 18, 18, 1, 152064, 0x0b6428e4
-0, 19, 19, 1, 152064, 0xf3ca22a8
-0, 20, 20, 1, 152064, 0x092e322c
-0, 21, 21, 1, 152064, 0xe82c2971
-0, 22, 22, 1, 152064, 0x29bf6111
-0, 23, 23, 1, 152064, 0x84f1ea0d
-0, 24, 24, 1, 152064, 0x45f822eb
-0, 25, 25, 1, 152064, 0x9672b2a7
-0, 26, 26, 1, 152064, 0xdb98e020
-0, 27, 27, 1, 152064, 0x729879eb
-0, 28, 28, 1, 152064, 0x3f629eae
-0, 29, 29, 1, 152064, 0x02e0ddb7
-0, 30, 30, 1, 152064, 0xbb1a0bb1
-0, 31, 31, 1, 152064, 0x9b85b55b
-0, 32, 32, 1, 152064, 0x2bae448b
-0, 33, 33, 1, 152064, 0xa8f28bfa
-0, 34, 34, 1, 152064, 0x687479da
-0, 35, 35, 1, 152064, 0xe1ec3111
-0, 36, 36, 1, 152064, 0x8afa37f1
-0, 37, 37, 1, 152064, 0x4af89faf
-0, 38, 38, 1, 152064, 0x1d9da53a
-0, 39, 39, 1, 152064, 0xdc599bcd
-0, 40, 40, 1, 152064, 0x01fb2e11
-0, 41, 41, 1, 152064, 0x2a33498e
-0, 42, 42, 1, 152064, 0x87874877
-0, 43, 43, 1, 152064, 0xdcd095c6
-0, 44, 44, 1, 152064, 0x4f14e6fb
-0, 45, 45, 1, 152064, 0x65fd165e
-0, 46, 46, 1, 152064, 0x4c267122
-0, 47, 47, 1, 152064, 0x18adf3aa
-0, 48, 48, 1, 152064, 0x74044daa
-0, 49, 49, 1, 152064, 0xa03bca1e
-0, 50, 50, 1, 152064, 0x7c1463fe
-0, 51, 51, 1, 152064, 0x688a14e3
-0, 52, 52, 1, 152064, 0x35c91c4e
-0, 53, 53, 1, 152064, 0xeaf51d07
-0, 54, 54, 1, 152064, 0xee61b9b1
-0, 55, 55, 1, 152064, 0xbab75db3
-0, 56, 56, 1, 152064, 0x199af472
-0, 57, 57, 1, 152064, 0x3bcf96db
-0, 58, 58, 1, 152064, 0x3fecdb09
-0, 59, 59, 1, 152064, 0x07be2431
-0, 60, 60, 1, 152064, 0x61432984
-0, 61, 61, 1, 152064, 0xdb12a3b9
-0, 62, 62, 1, 152064, 0xc2b8403e
-0, 63, 63, 1, 152064, 0x34c60bde
-0, 64, 64, 1, 152064, 0x08639859
-0, 65, 65, 1, 152064, 0xfc0fc556
-0, 66, 66, 1, 152064, 0x9cc27272
-0, 67, 67, 1, 152064, 0x3ef7dbb0
-0, 68, 68, 1, 152064, 0xbb74d9a3
-0, 69, 69, 1, 152064, 0x4007fc6e
-0, 70, 70, 1, 152064, 0x3d902f9b
-0, 71, 71, 1, 152064, 0xfbd0a76a
-0, 72, 72, 1, 152064, 0x4f1a4631
-0, 73, 73, 1, 152064, 0x4f58ee25
-0, 74, 74, 1, 152064, 0xd2c39501
-0, 75, 75, 1, 152064, 0x23de68d5
-0, 76, 76, 1, 152064, 0x4bf7d4ce
-0, 77, 77, 1, 152064, 0x2bdccc79
-0, 78, 78, 1, 152064, 0xc26b8f81
-0, 79, 79, 1, 152064, 0xe77fa90a
-0, 80, 80, 1, 152064, 0x48528308
-0, 81, 81, 1, 152064, 0xab19b66b
-0, 82, 82, 1, 152064, 0x04db5b4a
-0, 83, 83, 1, 152064, 0x9fade901
-0, 84, 84, 1, 152064, 0x1b7274ba
-0, 85, 85, 1, 152064, 0x387a0191
-0, 86, 86, 1, 152064, 0x2b3a8128
-0, 87, 87, 1, 152064, 0x2a0dab30
-0, 88, 88, 1, 152064, 0x5f5fc2da
-0, 89, 89, 1, 152064, 0x5a5c8150
-0, 90, 90, 1, 152064, 0xe0f5095e
-0, 91, 91, 1, 152064, 0xb87c8072
-0, 92, 92, 1, 152064, 0x08155daf
-0, 93, 93, 1, 152064, 0xc308353f
-0, 94, 94, 1, 152064, 0x2a04e8e4
-0, 95, 95, 1, 152064, 0xabe75987
-0, 96, 96, 1, 152064, 0x8733fb98
-0, 97, 97, 1, 152064, 0x810f53a0
-0, 98, 98, 1, 152064, 0xb3e4ea37
-0, 99, 99, 1, 152064, 0xb7a70980
+0, 0, 0, 1, 101376, 0x55d1f5ca
+0, 1, 1, 1, 101376, 0xf20d4f05
+0, 2, 2, 1, 101376, 0xc63ff5c1
+0, 3, 3, 1, 101376, 0x03636c52
+0, 4, 4, 1, 101376, 0x59a06057
+0, 5, 5, 1, 101376, 0xc10fec1b
+0, 6, 6, 1, 101376, 0xb4765709
+0, 7, 7, 1, 101376, 0x83cf0526
+0, 8, 8, 1, 101376, 0x67a9d097
+0, 9, 9, 1, 101376, 0x6b2d6010
+0, 10, 10, 1, 101376, 0x98cae01b
+0, 11, 11, 1, 101376, 0x17d5c643
+0, 12, 12, 1, 101376, 0x3ae39d89
+0, 13, 13, 1, 101376, 0xb0c34ab4
+0, 14, 14, 1, 101376, 0x5dd247bd
+0, 15, 15, 1, 101376, 0x94b782a7
+0, 16, 16, 1, 101376, 0x18cbe08e
+0, 17, 17, 1, 101376, 0x604dfb97
+0, 18, 18, 1, 101376, 0xbe9a2317
+0, 19, 19, 1, 101376, 0x576c1cdb
+0, 20, 20, 1, 101376, 0xa0b22c5f
+0, 21, 21, 1, 101376, 0x870e23a4
+0, 22, 22, 1, 101376, 0x831a5b44
+0, 23, 23, 1, 101376, 0xc0b5e440
+0, 24, 24, 1, 101376, 0xd47f1d1e
+0, 25, 25, 1, 101376, 0x391aacda
+0, 26, 26, 1, 101376, 0xd88eda53
+0, 27, 27, 1, 101376, 0x0f9c741e
+0, 28, 28, 1, 101376, 0x5fc798e1
+0, 29, 29, 1, 101376, 0x51c9d7ea
+0, 30, 30, 1, 101376, 0x333805e4
+0, 31, 31, 1, 101376, 0xe6c5af8e
+0, 32, 32, 1, 101376, 0x74083ebe
+0, 33, 33, 1, 101376, 0xda5f862d
+0, 34, 34, 1, 101376, 0x2c3b740d
+0, 35, 35, 1, 101376, 0x68542b44
+0, 36, 36, 1, 101376, 0x81943224
+0, 37, 37, 1, 101376, 0x99b499e2
+0, 38, 38, 1, 101376, 0xaa039f6d
+0, 39, 39, 1, 101376, 0x24339600
+0, 40, 40, 1, 101376, 0xab222844
+0, 41, 41, 1, 101376, 0xe65e43c1
+0, 42, 42, 1, 101376, 0x1a6942aa
+0, 43, 43, 1, 101376, 0xd4918ff9
+0, 44, 44, 1, 101376, 0x9a78e12e
+0, 45, 45, 1, 101376, 0x942e1091
+0, 46, 46, 1, 101376, 0xc50f6b55
+0, 47, 47, 1, 101376, 0x76e1eddd
+0, 48, 48, 1, 101376, 0x588c47dd
+0, 49, 49, 1, 101376, 0x289ac451
+0, 50, 50, 1, 101376, 0x65825e31
+0, 51, 51, 1, 101376, 0xc9e60f16
+0, 52, 52, 1, 101376, 0x7f121681
+0, 53, 53, 1, 101376, 0x15ec173a
+0, 54, 54, 1, 101376, 0x835bb3e4
+0, 55, 55, 1, 101376, 0xef2757e6
+0, 56, 56, 1, 101376, 0xbeb9eea5
+0, 57, 57, 1, 101376, 0xe8f7910e
+0, 58, 58, 1, 101376, 0x41f2d53c
+0, 59, 59, 1, 101376, 0x63811e64
+0, 60, 60, 1, 101376, 0x4d4423b7
+0, 61, 61, 1, 101376, 0x3efd9dec
+0, 62, 62, 1, 101376, 0xcafe3a71
+0, 63, 63, 1, 101376, 0xdcc80611
+0, 64, 64, 1, 101376, 0x3042928c
+0, 65, 65, 1, 101376, 0x6bebbf89
+0, 66, 66, 1, 101376, 0x267e6ca5
+0, 67, 67, 1, 101376, 0x0f6ed5e3
+0, 68, 68, 1, 101376, 0xb1b5d3d6
+0, 69, 69, 1, 101376, 0xa083f6a1
+0, 70, 70, 1, 101376, 0x18e729ce
+0, 71, 71, 1, 101376, 0x4ee6a19d
+0, 72, 72, 1, 101376, 0x205a4064
+0, 73, 73, 1, 101376, 0xcb97e858
+0, 74, 74, 1, 101376, 0x317b8f34
+0, 75, 75, 1, 101376, 0x8b1b6308
+0, 76, 76, 1, 101376, 0x384bcf01
+0, 77, 77, 1, 101376, 0x36dec6ac
+0, 78, 78, 1, 101376, 0x60f289b4
+0, 79, 79, 1, 101376, 0x67b7a33d
+0, 80, 80, 1, 101376, 0x0d937d3b
+0, 81, 81, 1, 101376, 0x8a0bb09e
+0, 82, 82, 1, 101376, 0x8b3e557d
+0, 83, 83, 1, 101376, 0x2fa1e334
+0, 84, 84, 1, 101376, 0xdaa36eed
+0, 85, 85, 1, 101376, 0xe604fbb5
+0, 86, 86, 1, 101376, 0x46387b5b
+0, 87, 87, 1, 101376, 0x2d4fa563
+0, 88, 88, 1, 101376, 0xd400bd0d
+0, 89, 89, 1, 101376, 0x83897b83
+0, 90, 90, 1, 101376, 0xa6070391
+0, 91, 91, 1, 101376, 0x9fbd7aa5
+0, 92, 92, 1, 101376, 0x54b257e2
+0, 93, 93, 1, 101376, 0x84ec2f72
+0, 94, 94, 1, 101376, 0x2942e317
+0, 95, 95, 1, 101376, 0x18cc53ba
+0, 96, 96, 1, 101376, 0x7569f5cb
+0, 97, 97, 1, 101376, 0xdc644dd3
+0, 98, 98, 1, 101376, 0x71c8e46a
+0, 99, 99, 1, 101376, 0x2f3303b3
--
1.7.10.4