On Tue, May 14, 2013 at 09:17:55AM +0200, Anton Khirnov wrote:
> 
> A FATE test please. Without it it's just asking to be silently broken without
> anyone noticing for years.
> 
> On Tue, 14 May 2013 07:45:24 +0200, Kostya Shishkov 
> <[email protected]> wrote:
> > +
> > +    for (block_index = 0; block_index < total_blocks; block_index++) {
> > +        // Note that this call will make us skip the rest of the blocks
> > +        // if the frame ends prematurely.
> > +        if (skip == -1)
> > +            skip = decode_skip_count(&gb);
> 
> I think checking the return value and printing an error would make this much
> more clear to less smart readers than you.
[...]
> > +
> > +    av_dlog(avctx, "Frame data: provided %d bytes, used %d bytes\n",
> > +            buf_size, get_bits_count(&gb) >> 3);
> > +
> > +    FFSWAP(uint8_t*, s->old_y, s->new_y);
> > +    FFSWAP(uint8_t*, s->old_u, s->new_u);
> > +    FFSWAP(uint8_t*, s->old_v, s->new_v);
> > +
> > +    *got_frame = 1;
> > +
> > +    return buf_size;
> > +}
> > +
> > +
> 
> extra newline?
> 
> Otherwise looks simple enough to be ok.

Here you are.
>From 2e6c355aef8e7393b2fa175b43eb221125ef53d9 Mon Sep 17 00:00:00 2001
From: Eli Friedman <[email protected]>
Date: Fri, 16 Dec 2011 21:30:27 +0100
Subject: [PATCH 1/2] Escape 130 (RPL) decoder

Some fixes provided by Paul B Mahol <[email protected]>
and Michael Niedermayer <[email protected]> and me.

Signed-off-by: Diego Biurrun <[email protected]>
Signed-off-by: Kostya Shishkov <[email protected]>
---
 Changelog              |    1 +
 doc/general.texi       |    1 +
 libavcodec/Makefile    |    1 +
 libavcodec/allcodecs.c |    1 +
 libavcodec/avcodec.h   |    1 +
 libavcodec/escape130.c |  356 ++++++++++++++++++++++++++++++++++++++++++++++++
 libavcodec/version.h   |    2 +-
 libavformat/rpl.c      |    2 -
 8 files changed, 362 insertions(+), 3 deletions(-)
 create mode 100644 libavcodec/escape130.c

diff --git a/Changelog b/Changelog
index 97e7a32..25440d0 100644
--- a/Changelog
+++ b/Changelog
@@ -18,6 +18,7 @@ version 10:
   transcoding audio
 - Matroska muxer can now put the index at the beginning of the file.
 - avconv -deinterlace option removed, the yadif filter should be used instead
+- Escape 130 video decoder
 
 
 version 9:
diff --git a/doc/general.texi b/doc/general.texi
index ee87e9f..161bf76 100644
--- a/doc/general.texi
+++ b/doc/general.texi
@@ -496,6 +496,7 @@ following image formats are supported:
 @item Electronic Arts TGQ video  @tab     @tab  X
 @item Electronic Arts TQI video  @tab     @tab  X
 @item Escape 124             @tab     @tab  X
+@item Escape 130             @tab     @tab  X
 @item FFmpeg video codec #1  @tab  X  @tab  X
     @tab experimental lossless codec (fourcc: FFV1)
 @item Flash Screen Video v1  @tab  X  @tab  X
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 2c3522e..e82015a 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -162,6 +162,7 @@ OBJS-$(CONFIG_EIGHTBPS_DECODER)        += 8bps.o
 OBJS-$(CONFIG_EIGHTSVX_EXP_DECODER)    += 8svx.o
 OBJS-$(CONFIG_EIGHTSVX_FIB_DECODER)    += 8svx.o
 OBJS-$(CONFIG_ESCAPE124_DECODER)       += escape124.o
+OBJS-$(CONFIG_ESCAPE130_DECODER)       += escape130.o
 OBJS-$(CONFIG_FFV1_DECODER)            += ffv1dec.o ffv1.o
 OBJS-$(CONFIG_FFV1_ENCODER)            += ffv1enc.o ffv1.o
 OBJS-$(CONFIG_FFVHUFF_DECODER)         += huffyuv.o huffyuvdec.o
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index 45fea3a..e644851 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -135,6 +135,7 @@ void avcodec_register_all(void)
     REGISTER_DECODER(EIGHTSVX_EXP,      eightsvx_exp);
     REGISTER_DECODER(EIGHTSVX_FIB,      eightsvx_fib);
     REGISTER_DECODER(ESCAPE124,         escape124);
+    REGISTER_DECODER(ESCAPE130,         escape130);
     REGISTER_ENCDEC (FFV1,              ffv1);
     REGISTER_ENCDEC (FFVHUFF,           ffvhuff);
     REGISTER_ENCDEC (FLASHSV,           flashsv);
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 968f9e5..346ece3 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -267,6 +267,7 @@ enum AVCodecID {
     AV_CODEC_ID_CLLC,
     AV_CODEC_ID_MSS2,
     AV_CODEC_ID_VP9,
+    AV_CODEC_ID_ESCAPE130,
 
     /* various PCM "codecs" */
     AV_CODEC_ID_FIRST_AUDIO = 0x10000,     ///< A dummy id pointing at the start of audio codecs
diff --git a/libavcodec/escape130.c b/libavcodec/escape130.c
new file mode 100644
index 0000000..3e3f7e1
--- /dev/null
+++ b/libavcodec/escape130.c
@@ -0,0 +1,356 @@
+/*
+ * Escape 130 video decoder
+ * Copyright (C) 2008 Eli Friedman (eli.friedman <at> gmail.com)
+ *
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Libav; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "libavutil/attributes.h"
+#include "libavutil/mem.h"
+#include "avcodec.h"
+#define BITSTREAM_READER_LE
+#include "get_bits.h"
+#include "internal.h"
+
+typedef struct Escape130Context {
+    uint8_t *old_y_avg;
+
+    uint8_t *new_y, *old_y;
+    uint8_t *new_u, *old_u;
+    uint8_t *new_v, *old_v;
+
+    uint8_t *buf1, *buf2;
+    int     linesize[3];
+} Escape130Context;
+
+static const uint8_t offset_table[] = { 2, 4, 10, 20 };
+static const int8_t sign_table[64][4] = {
+    {  0,  0,  0,  0 },
+    { -1,  1,  0,  0 },
+    {  1, -1,  0,  0 },
+    { -1,  0,  1,  0 },
+    { -1,  1,  1,  0 },
+    {  0, -1,  1,  0 },
+    {  1, -1,  1,  0 },
+    { -1, -1,  1,  0 },
+    {  1,  0, -1,  0 },
+    {  0,  1, -1,  0 },
+    {  1,  1, -1,  0 },
+    { -1,  1, -1,  0 },
+    {  1, -1, -1,  0 },
+    { -1,  0,  0,  1 },
+    { -1,  1,  0,  1 },
+    {  0, -1,  0,  1 },
+
+    {  0,  0,  0,  0 },
+    {  1, -1,  0,  1 },
+    { -1, -1,  0,  1 },
+    { -1,  0,  1,  1 },
+    { -1,  1,  1,  1 },
+    {  0, -1,  1,  1 },
+    {  1, -1,  1,  1 },
+    { -1, -1,  1,  1 },
+    {  0,  0, -1,  1 },
+    {  1,  0, -1,  1 },
+    { -1,  0, -1,  1 },
+    {  0,  1, -1,  1 },
+    {  1,  1, -1,  1 },
+    { -1,  1, -1,  1 },
+    {  0, -1, -1,  1 },
+    {  1, -1, -1,  1 },
+
+    {  0,  0,  0,  0 },
+    { -1, -1, -1,  1 },
+    {  1,  0,  0, -1 },
+    {  0,  1,  0, -1 },
+    {  1,  1,  0, -1 },
+    { -1,  1,  0, -1 },
+    {  1, -1,  0, -1 },
+    {  0,  0,  1, -1 },
+    {  1,  0,  1, -1 },
+    { -1,  0,  1, -1 },
+    {  0,  1,  1, -1 },
+    {  1,  1,  1, -1 },
+    { -1,  1,  1, -1 },
+    {  0, -1,  1, -1 },
+    {  1, -1,  1, -1 },
+    { -1, -1,  1, -1 },
+
+    {  0,  0,  0,  0 },
+    {  1,  0, -1, -1 },
+    {  0,  1, -1, -1 },
+    {  1,  1, -1, -1 },
+    { -1,  1, -1, -1 },
+    {  1, -1, -1, -1 }
+};
+
+static const int8_t luma_adjust[] = { -4, -3, -2, -1, 1, 2, 3, 4 };
+
+static const int8_t chroma_adjust[2][8] = {
+    { 1, 1, 0, -1, -1, -1,  0,  1 },
+    { 0, 1, 1,  1,  0, -1, -1, -1 }
+};
+
+const uint8_t chroma_vals[] = {
+     20,  28,  36,  44,  52,  60,  68,  76,
+     84,  92, 100, 106, 112, 116, 120, 124,
+    128, 132, 136, 140, 144, 150, 156, 164,
+    172, 180, 188, 196, 204, 212, 220, 228
+};
+
+static av_cold int escape130_decode_init(AVCodecContext *avctx)
+{
+    Escape130Context *s = avctx->priv_data;
+    avctx->pix_fmt = PIX_FMT_YUV420P;
+
+    if ((avctx->width & 1) || (avctx->height & 1)) {
+        av_log(avctx, AV_LOG_ERROR,
+               "Dimensions should be a multiple of two.\n");
+        return AVERROR_INVALIDDATA;
+    }
+
+    s->old_y_avg = av_malloc(avctx->width * avctx->height / 4);
+    s->buf1      = av_malloc(avctx->width * avctx->height * 3 / 2);
+    s->buf2      = av_malloc(avctx->width * avctx->height * 3 / 2);
+    if (!s->old_y_avg || !s->buf1 || !s->buf2) {
+        av_freep(&s->old_y_avg);
+        av_freep(&s->buf1);
+        av_freep(&s->buf2);
+        av_log(avctx, AV_LOG_ERROR, "Could not allocate buffer.\n");
+        return AVERROR(ENOMEM);
+    }
+
+    s->linesize[0] = avctx->width;
+    s->linesize[1] =
+    s->linesize[2] = avctx->width / 2;
+
+    s->new_y = s->buf1;
+    s->new_u = s->new_y + avctx->width * avctx->height;
+    s->new_v = s->new_u + avctx->width * avctx->height / 4;
+    s->old_y = s->buf2;
+    s->old_u = s->old_y + avctx->width * avctx->height;
+    s->old_v = s->old_u + avctx->width * avctx->height / 4;
+    memset(s->old_y, 0,    avctx->width * avctx->height);
+    memset(s->old_u, 0x10, avctx->width * avctx->height / 4);
+    memset(s->old_v, 0x10, avctx->width * avctx->height / 4);
+
+    return 0;
+}
+
+static av_cold int escape130_decode_close(AVCodecContext *avctx)
+{
+    Escape130Context *s = avctx->priv_data;
+
+    av_freep(&s->old_y_avg);
+    av_freep(&s->buf1);
+    av_freep(&s->buf2);
+
+    return 0;
+}
+
+static int decode_skip_count(GetBitContext* gb)
+{
+    int value;
+
+    value = get_bits1(gb);
+    if (value)
+        return 0;
+
+    value = get_bits(gb, 3);
+    if (value)
+        return value;
+
+    value = get_bits(gb, 8);
+    if (value)
+        return value + 7;
+
+    value = get_bits(gb, 15);
+    if (value)
+        return value + 262;
+
+    return -1;
+}
+
+static int escape130_decode_frame(AVCodecContext *avctx, void *data,
+                                  int *got_frame, AVPacket *avpkt)
+{
+    const uint8_t *buf  = avpkt->data;
+    int buf_size        = avpkt->size;
+    Escape130Context *s = avctx->priv_data;
+    AVFrame *pic        = data;
+    GetBitContext gb;
+    int ret;
+
+    uint8_t *old_y, *old_cb, *old_cr,
+            *new_y, *new_cb, *new_cr;
+    uint8_t *dstY, *dstU, *dstV;
+    unsigned old_y_stride, old_cb_stride, old_cr_stride,
+             new_y_stride, new_cb_stride, new_cr_stride;
+    unsigned total_blocks = avctx->width * avctx->height / 4,
+             block_index, block_x = 0;
+    unsigned y[4] = { 0 }, cb = 0x10, cr = 0x10;
+    int skip = -1, y_avg = 0, i, j;
+    uint8_t *ya = s->old_y_avg;
+
+    // first 16 bytes are header; no useful information in here
+    if (buf_size <= 16) {
+        av_log(avctx, AV_LOG_ERROR, "Insufficient frame data\n");
+        return AVERROR_INVALIDDATA;
+    }
+
+    if ((ret = ff_get_buffer(avctx, pic, 0)) < 0)
+        return ret;
+
+    init_get_bits(&gb, buf + 16, (buf_size - 16) * 8);
+
+    new_y  = s->new_y;
+    new_cb = s->new_u;
+    new_cr = s->new_v;
+    new_y_stride  = s->linesize[0];
+    new_cb_stride = s->linesize[1];
+    new_cr_stride = s->linesize[2];
+    old_y  = s->old_y;
+    old_cb = s->old_u;
+    old_cr = s->old_v;
+    old_y_stride  = s->linesize[0];
+    old_cb_stride = s->linesize[1];
+    old_cr_stride = s->linesize[2];
+
+    for (block_index = 0; block_index < total_blocks; block_index++) {
+        // Note that this call will make us skip the rest of the blocks
+        // if the frame ends prematurely.
+        if (skip == -1)
+            skip = decode_skip_count(&gb);
+        if (skip == -1) {
+            av_log(avctx, AV_LOG_ERROR, "Error decoding skip value\n");
+            return AVERROR_INVALIDDATA;
+        }
+
+        if (skip) {
+            y[0] = old_y[0];
+            y[1] = old_y[1];
+            y[2] = old_y[old_y_stride];
+            y[3] = old_y[old_y_stride + 1];
+            y_avg = ya[0];
+            cb = old_cb[0];
+            cr = old_cr[0];
+        } else {
+            if (get_bits1(&gb)) {
+                unsigned sign_selector       = get_bits(&gb, 6);
+                unsigned difference_selector = get_bits(&gb, 2);
+                y_avg = 2 * get_bits(&gb, 5);
+                for (i = 0; i < 4; i++) {
+                    y[i] = av_clip(y_avg + offset_table[difference_selector] *
+                                   sign_table[sign_selector][i], 0, 63);
+                }
+            } else if (get_bits1(&gb)) {
+                if (get_bits1(&gb)) {
+                    y_avg = get_bits(&gb, 6);
+                } else {
+                    unsigned adjust_index = get_bits(&gb, 3);
+                    y_avg = (y_avg + luma_adjust[adjust_index]) & 63;
+                }
+                for (i = 0; i < 4; i++)
+                    y[i] = y_avg;
+            }
+
+            if (get_bits1(&gb)) {
+                if (get_bits1(&gb)) {
+                    cb = get_bits(&gb, 5);
+                    cr = get_bits(&gb, 5);
+                } else {
+                    unsigned adjust_index = get_bits(&gb, 3);
+                    cb = (cb + chroma_adjust[0][adjust_index]) & 31;
+                    cr = (cr + chroma_adjust[1][adjust_index]) & 31;
+                }
+            }
+        }
+        *ya++ = y_avg;
+
+        new_y[0]                = y[0];
+        new_y[1]                = y[1];
+        new_y[new_y_stride]     = y[2];
+        new_y[new_y_stride + 1] = y[3];
+        *new_cb = cb;
+        *new_cr = cr;
+
+        old_y += 2;
+        old_cb++;
+        old_cr++;
+        new_y += 2;
+        new_cb++;
+        new_cr++;
+        block_x++;
+        if (block_x * 2 == avctx->width) {
+            block_x = 0;
+            old_y  += old_y_stride * 2  - avctx->width;
+            old_cb += old_cb_stride     - avctx->width / 2;
+            old_cr += old_cr_stride     - avctx->width / 2;
+            new_y  += new_y_stride * 2  - avctx->width;
+            new_cb += new_cb_stride     - avctx->width / 2;
+            new_cr += new_cr_stride     - avctx->width / 2;
+        }
+
+        skip--;
+    }
+
+    new_y  = s->new_y;
+    new_cb = s->new_u;
+    new_cr = s->new_v;
+    dstY   = pic->data[0];
+    dstU   = pic->data[1];
+    dstV   = pic->data[2];
+    for (j = 0; j < avctx->height; j++) {
+        for (i = 0; i < avctx->width; i++)
+            dstY[i] = new_y[i] << 2;
+        dstY  += pic->linesize[0];
+        new_y += new_y_stride;
+    }
+    for (j = 0; j < avctx->height / 2; j++) {
+        for (i = 0; i < avctx->width / 2; i++) {
+            dstU[i] = chroma_vals[new_cb[i]];
+            dstV[i] = chroma_vals[new_cr[i]];
+        }
+        dstU   += pic->linesize[1];
+        dstV   += pic->linesize[2];
+        new_cb += new_cb_stride;
+        new_cr += new_cr_stride;
+    }
+
+    av_dlog(avctx, "Frame data: provided %d bytes, used %d bytes\n",
+            buf_size, get_bits_count(&gb) >> 3);
+
+    FFSWAP(uint8_t*, s->old_y, s->new_y);
+    FFSWAP(uint8_t*, s->old_u, s->new_u);
+    FFSWAP(uint8_t*, s->old_v, s->new_v);
+
+    *got_frame = 1;
+
+    return buf_size;
+}
+
+AVCodec ff_escape130_decoder = {
+    .name           = "escape130",
+    .type           = AVMEDIA_TYPE_VIDEO,
+    .id             = AV_CODEC_ID_ESCAPE130,
+    .priv_data_size = sizeof(Escape130Context),
+    .init           = escape130_decode_init,
+    .close          = escape130_decode_close,
+    .decode         = escape130_decode_frame,
+    .capabilities   = CODEC_CAP_DR1,
+    .long_name      = NULL_IF_CONFIG_SMALL("Escape 130"),
+};
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 2dc0f4d..afc2d35 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -27,7 +27,7 @@
  */
 
 #define LIBAVCODEC_VERSION_MAJOR 55
-#define LIBAVCODEC_VERSION_MINOR  4
+#define LIBAVCODEC_VERSION_MINOR  5
 #define LIBAVCODEC_VERSION_MICRO  0
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
diff --git a/libavformat/rpl.c b/libavformat/rpl.c
index a5b1e6e..42b47f8 100644
--- a/libavformat/rpl.c
+++ b/libavformat/rpl.c
@@ -164,11 +164,9 @@ static int rpl_read_header(AVFormatContext *s)
             // The header is wrong here, at least sometimes
             vst->codec->bits_per_coded_sample = 16;
             break;
-#if 0
         case 130:
             vst->codec->codec_id = AV_CODEC_ID_ESCAPE130;
             break;
-#endif
         default:
             av_log(s, AV_LOG_WARNING,
                    "RPL video format %i not supported yet!\n",
-- 
1.7.9.5

>From cf9ed22ef59e8b4c6dc37b4cba631f9eb070dae3 Mon Sep 17 00:00:00 2001
From: Kostya Shishkov <[email protected]>
Date: Tue, 14 May 2013 18:53:23 +0200
Subject: [PATCH 2/2] Escape 130 FATE test

---
 tests/fate/video.mak             |    3 +
 tests/ref/fate/armovie-escape130 |  360 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 363 insertions(+)
 create mode 100644 tests/ref/fate/armovie-escape130

diff --git a/tests/fate/video.mak b/tests/fate/video.mak
index 618776f..998bf35 100644
--- a/tests/fate/video.mak
+++ b/tests/fate/video.mak
@@ -22,6 +22,9 @@ fate-ansi: CMD = framecrc -chars_per_frame 44100 -i $(SAMPLES)/ansi/TRE-IOM5.ANS
 FATE_SAMPLES_AVCONV-$(call DEMDEC, RPL, ESCAPE124) += fate-armovie-escape124
 fate-armovie-escape124: CMD = framecrc -i $(SAMPLES)/rpl/ESCAPE.RPL -pix_fmt rgb24
 
+FATE_SAMPLES_AVCONV-$(call DEMDEC, RPL, ESCAPE130) += fate-armovie-escape130
+fate-armovie-escape130: CMD = framecrc -i $(SAMPLES)/rpl/landing.rpl -an
+
 FATE_SAMPLES_AVCONV-$(call DEMDEC, AVI, AURA) += fate-auravision-v1
 fate-auravision-v1: CMD = framecrc -i $(SAMPLES)/auravision/SOUVIDEO.AVI -an
 
diff --git a/tests/ref/fate/armovie-escape130 b/tests/ref/fate/armovie-escape130
new file mode 100644
index 0000000..ee4ec26
--- /dev/null
+++ b/tests/ref/fate/armovie-escape130
@@ -0,0 +1,360 @@
+#tb 0: 1/15
+0,          0,          0,        1,    76800, 0x860502ee
+0,          1,          1,        1,    76800, 0x055da755
+0,          2,          2,        1,    76800, 0x67969220
+0,          3,          3,        1,    76800, 0xbb28885c
+0,          4,          4,        1,    76800, 0x4000a5dd
+0,          5,          5,        1,    76800, 0xfe1f6b04
+0,          6,          6,        1,    76800, 0x334cbe5d
+0,          7,          7,        1,    76800, 0x87d15088
+0,          8,          8,        1,    76800, 0x70248ad3
+0,          9,          9,        1,    76800, 0x29bcaea0
+0,         10,         10,        1,    76800, 0xee81d3e2
+0,         11,         11,        1,    76800, 0x5bdd3cbc
+0,         12,         12,        1,    76800, 0xd7a5e42e
+0,         13,         13,        1,    76800, 0xbb354f7c
+0,         14,         14,        1,    76800, 0x4c86e881
+0,         15,         15,        1,    76800, 0xc6acb7f4
+0,         16,         16,        1,    76800, 0x7701ca9c
+0,         17,         17,        1,    76800, 0x5555d472
+0,         18,         18,        1,    76800, 0xa8fbc2d6
+0,         19,         19,        1,    76800, 0x558ab4f2
+0,         20,         20,        1,    76800, 0x9eb5ab72
+0,         21,         21,        1,    76800, 0x4711a894
+0,         22,         22,        1,    76800, 0xd649c04c
+0,         23,         23,        1,    76800, 0x26b9d6cc
+0,         24,         24,        1,    76800, 0x6217e494
+0,         25,         25,        1,    76800, 0x85d7e232
+0,         26,         26,        1,    76800, 0x4059ddb0
+0,         27,         27,        1,    76800, 0x3581cae2
+0,         28,         28,        1,    76800, 0x1885c99e
+0,         29,         29,        1,    76800, 0xc87dcd66
+0,         30,         30,        1,    76800, 0x8645e084
+0,         31,         31,        1,    76800, 0xe17ed6b4
+0,         32,         32,        1,    76800, 0x2709c7b6
+0,         33,         33,        1,    76800, 0xded3ab34
+0,         34,         34,        1,    76800, 0x3e69a364
+0,         35,         35,        1,    76800, 0x90c7ae7e
+0,         36,         36,        1,    76800, 0x7dffba9a
+0,         37,         37,        1,    76800, 0x1311ce7a
+0,         38,         38,        1,    76800, 0x6663e5ce
+0,         39,         39,        1,    76800, 0x597d0173
+0,         40,         40,        1,    76800, 0x936b1ab3
+0,         41,         41,        1,    76800, 0x860f2157
+0,         42,         42,        1,    76800, 0x69cd2ffd
+0,         43,         43,        1,    76800, 0xd0a24429
+0,         44,         44,        1,    76800, 0x6fbd49b3
+0,         45,         45,        1,    76800, 0x6e866211
+0,         46,         46,        1,    76800, 0x8ed9615d
+0,         47,         47,        1,    76800, 0x5ef45ab1
+0,         48,         48,        1,    76800, 0x72174a5d
+0,         49,         49,        1,    76800, 0x9e1346e1
+0,         50,         50,        1,    76800, 0xbe2046ef
+0,         51,         51,        1,    76800, 0x6417511d
+0,         52,         52,        1,    76800, 0xdc7d59d7
+0,         53,         53,        1,    76800, 0xea8f5569
+0,         54,         54,        1,    76800, 0x77b45d67
+0,         55,         55,        1,    76800, 0x949566bf
+0,         56,         56,        1,    76800, 0x644c6e39
+0,         57,         57,        1,    76800, 0xe8e47155
+0,         58,         58,        1,    76800, 0x84eb80d3
+0,         59,         59,        1,    76800, 0x6ade8f99
+0,         60,         60,        1,    76800, 0x1359adf5
+0,         61,         61,        1,    76800, 0x3b8ab849
+0,         62,         62,        1,    76800, 0xb761c9af
+0,         63,         63,        1,    76800, 0x89f0ccf5
+0,         64,         64,        1,    76800, 0xf50dc989
+0,         65,         65,        1,    76800, 0xc9e8c37f
+0,         66,         66,        1,    76800, 0x91b1c6fb
+0,         67,         67,        1,    76800, 0x30accc59
+0,         68,         68,        1,    76800, 0x4dbbd735
+0,         69,         69,        1,    76800, 0x06ece049
+0,         70,         70,        1,    76800, 0x9112ebef
+0,         71,         71,        1,    76800, 0x4b9af209
+0,         72,         72,        1,    76800, 0x1063f2d5
+0,         73,         73,        1,    76800, 0xc00ef0eb
+0,         74,         74,        1,    76800, 0xfc76efa1
+0,         75,         75,        1,    76800, 0xd85cff3b
+0,         76,         76,        1,    76800, 0x2dc9fc19
+0,         77,         77,        1,    76800, 0xe5610674
+0,         78,         78,        1,    76800, 0xdfa5fdb5
+0,         79,         79,        1,    76800, 0xb7eef1d9
+0,         80,         80,        1,    76800, 0x3743ed2b
+0,         81,         81,        1,    76800, 0xaaf6a11d
+0,         82,         82,        1,    76800, 0xbd3dba25
+0,         83,         83,        1,    76800, 0x0d5a84c2
+0,         84,         84,        1,    76800, 0x04d3cede
+0,         85,         85,        1,    76800, 0xd0ed078b
+0,         86,         86,        1,    76800, 0x712c4257
+0,         87,         87,        1,    76800, 0x0866f074
+0,         88,         88,        1,    76800, 0x7bcbd610
+0,         89,         89,        1,    76800, 0xcfb16193
+0,         90,         90,        1,    76800, 0x08b2bf53
+0,         91,         91,        1,    76800, 0x8a89d293
+0,         92,         92,        1,    76800, 0xdceb169e
+0,         93,         93,        1,    76800, 0x91b53522
+0,         94,         94,        1,    76800, 0xc6f36e86
+0,         95,         95,        1,    76800, 0x64849fae
+0,         96,         96,        1,    76800, 0x7f060705
+0,         97,         97,        1,    76800, 0x100c7c79
+0,         98,         98,        1,    76800, 0xe6d3df05
+0,         99,         99,        1,    76800, 0x3947f65d
+0,        100,        100,        1,    76800, 0xfe52d0e1
+0,        101,        101,        1,    76800, 0x5a81b935
+0,        102,        102,        1,    76800, 0x3dabcb31
+0,        103,        103,        1,    76800, 0x0ae6dea9
+0,        104,        104,        1,    76800, 0x214c2dec
+0,        105,        105,        1,    76800, 0xeb526560
+0,        106,        106,        1,    76800, 0xbb618418
+0,        107,        107,        1,    76800, 0x61d9cbd0
+0,        108,        108,        1,    76800, 0x9d2660bb
+0,        109,        109,        1,    76800, 0xf4f5dc33
+0,        110,        110,        1,    76800, 0xe2551ec2
+0,        111,        111,        1,    76800, 0x5f971e3a
+0,        112,        112,        1,    76800, 0xa96c0cea
+0,        113,        113,        1,    76800, 0xd904cdeb
+0,        114,        114,        1,    76800, 0x0443a227
+0,        115,        115,        1,    76800, 0xf3e92457
+0,        116,        116,        1,    76800, 0x2df4d5b0
+0,        117,        117,        1,    76800, 0x72d4b018
+0,        118,        118,        1,    76800, 0x260ac3dc
+0,        119,        119,        1,    76800, 0x30160163
+0,        120,        120,        1,    76800, 0x76c7656f
+0,        121,        121,        1,    76800, 0xdc42bb23
+0,        122,        122,        1,    76800, 0xdbab366a
+0,        123,        123,        1,    76800, 0xf998ae66
+0,        124,        124,        1,    76800, 0x3b6afb62
+0,        125,        125,        1,    76800, 0x3fb3f76e
+0,        126,        126,        1,    76800, 0xc4f4d89a
+0,        127,        127,        1,    76800, 0xf448aa5a
+0,        128,        128,        1,    76800, 0xf9fed3c2
+0,        129,        129,        1,    76800, 0x8e4526bd
+0,        130,        130,        1,    76800, 0xa4be7a39
+0,        131,        131,        1,    76800, 0x07d376b9
+0,        132,        132,        1,    76800, 0x47993f51
+0,        133,        133,        1,    76800, 0x2f5816ad
+0,        134,        134,        1,    76800, 0x0f78187d
+0,        135,        135,        1,    76800, 0x5129e47e
+0,        136,        136,        1,    76800, 0x1050b9e2
+0,        137,        137,        1,    76800, 0x5ba278d2
+0,        138,        138,        1,    76800, 0xc5f5278e
+0,        139,        139,        1,    76800, 0xe406e093
+0,        140,        140,        1,    76800, 0x1b03c34f
+0,        141,        141,        1,    76800, 0xaad8b463
+0,        142,        142,        1,    76800, 0x4f90ad0d
+0,        143,        143,        1,    76800, 0x83a1b8b3
+0,        144,        144,        1,    76800, 0x682ccba1
+0,        145,        145,        1,    76800, 0xf44f0d22
+0,        146,        146,        1,    76800, 0x19c02d14
+0,        147,        147,        1,    76800, 0x01148baa
+0,        148,        148,        1,    76800, 0xff45dfbe
+0,        149,        149,        1,    76800, 0x05f8db6e
+0,        150,        150,        1,    76800, 0x9a129a6e
+0,        151,        151,        1,    76800, 0x93f8749e
+0,        152,        152,        1,    76800, 0x7dd1f89b
+0,        153,        153,        1,    76800, 0x3c81b16f
+0,        154,        154,        1,    76800, 0xefc3e567
+0,        155,        155,        1,    76800, 0x9fe26222
+0,        156,        156,        1,    76800, 0x85018ef4
+0,        157,        157,        1,    76800, 0x0aa984a4
+0,        158,        158,        1,    76800, 0xea45538e
+0,        159,        159,        1,    76800, 0x8e112454
+0,        160,        160,        1,    76800, 0xab76bf13
+0,        161,        161,        1,    76800, 0x9c1e32a1
+0,        162,        162,        1,    76800, 0xedb88ef8
+0,        163,        163,        1,    76800, 0x5371d475
+0,        164,        164,        1,    76800, 0x631a36eb
+0,        165,        165,        1,    76800, 0x6d4403ef
+0,        166,        166,        1,    76800, 0xdd67190b
+0,        167,        167,        1,    76800, 0x41b054a5
+0,        168,        168,        1,    76800, 0x53f55a99
+0,        169,        169,        1,    76800, 0x93182147
+0,        170,        170,        1,    76800, 0xcce0dd8c
+0,        171,        171,        1,    76800, 0x51f68932
+0,        172,        172,        1,    76800, 0x3d5e2f4a
+0,        173,        173,        1,    76800, 0x8baed3b3
+0,        174,        174,        1,    76800, 0xdc66509b
+0,        175,        175,        1,    76800, 0x1b81fb6c
+0,        176,        176,        1,    76800, 0x63e1f954
+0,        177,        177,        1,    76800, 0x75fd36a1
+0,        178,        178,        1,    76800, 0x68f1a18f
+0,        179,        179,        1,    76800, 0x8b0a1c76
+0,        180,        180,        1,    76800, 0x6d7b9810
+0,        181,        181,        1,    76800, 0x5dcdee4a
+0,        182,        182,        1,    76800, 0xf97c2187
+0,        183,        183,        1,    76800, 0x3e575d0d
+0,        184,        184,        1,    76800, 0x4fc6a723
+0,        185,        185,        1,    76800, 0xf5dcde6d
+0,        186,        186,        1,    76800, 0xc42204d2
+0,        187,        187,        1,    76800, 0x12cff747
+0,        188,        188,        1,    76800, 0xa11ae405
+0,        189,        189,        1,    76800, 0x7cd8d07f
+0,        190,        190,        1,    76800, 0xa100a8fb
+0,        191,        191,        1,    76800, 0x7e9e945b
+0,        192,        192,        1,    76800, 0x2ead8009
+0,        193,        193,        1,    76800, 0x755a7399
+0,        194,        194,        1,    76800, 0x25324c65
+0,        195,        195,        1,    76800, 0xe12ad1a4
+0,        196,        196,        1,    76800, 0x02366ec8
+0,        197,        197,        1,    76800, 0x1e8f0d5a
+0,        198,        198,        1,    76800, 0x0235d45b
+0,        199,        199,        1,    76800, 0x26d2b581
+0,        200,        200,        1,    76800, 0x304f1ccb
+0,        201,        201,        1,    76800, 0x4e1625ff
+0,        202,        202,        1,    76800, 0xfecc1f5b
+0,        203,        203,        1,    76800, 0x499714ff
+0,        204,        204,        1,    76800, 0xff240d1b
+0,        205,        205,        1,    76800, 0xc257ebf8
+0,        206,        206,        1,    76800, 0xf752cdfc
+0,        207,        207,        1,    76800, 0xb031b7cc
+0,        208,        208,        1,    76800, 0xb3f29c84
+0,        209,        209,        1,    76800, 0x77f66fd4
+0,        210,        210,        1,    76800, 0x9ef247ec
+0,        211,        211,        1,    76800, 0xdc32180c
+0,        212,        212,        1,    76800, 0x41bed8e5
+0,        213,        213,        1,    76800, 0x931b8b05
+0,        214,        214,        1,    76800, 0xe45b36f9
+0,        215,        215,        1,    76800, 0xc71bd626
+0,        216,        216,        1,    76800, 0x5b637aca
+0,        217,        217,        1,    76800, 0x3e8d1752
+0,        218,        218,        1,    76800, 0x5f9ca28b
+0,        219,        219,        1,    76800, 0x56d937bf
+0,        220,        220,        1,    76800, 0xe811c010
+0,        221,        221,        1,    76800, 0xca414fe8
+0,        222,        222,        1,    76800, 0x774ef141
+0,        223,        223,        1,    76800, 0xa44282f9
+0,        224,        224,        1,    76800, 0x30690641
+0,        225,        225,        1,    76800, 0xa833ad96
+0,        226,        226,        1,    76800, 0xe18d4932
+0,        227,        227,        1,    76800, 0xf934c0af
+0,        228,        228,        1,    76800, 0xdbc361b7
+0,        229,        229,        1,    76800, 0x7e0d0077
+0,        230,        230,        1,    76800, 0x2d3faaa4
+0,        231,        231,        1,    76800, 0xfa1a7708
+0,        232,        232,        1,    76800, 0xb60870a0
+0,        233,        233,        1,    76800, 0x5f5f7682
+0,        234,        234,        1,    76800, 0x47dc7564
+0,        235,        235,        1,    76800, 0x48f984c8
+0,        236,        236,        1,    76800, 0x7b0892a8
+0,        237,        237,        1,    76800, 0x56a0c014
+0,        238,        238,        1,    76800, 0x5dd1d854
+0,        239,        239,        1,    76800, 0xdfb0f698
+0,        240,        240,        1,    76800, 0xda051775
+0,        241,        241,        1,    76800, 0xa19c3eb1
+0,        242,        242,        1,    76800, 0xda74780d
+0,        243,        243,        1,    76800, 0x5dd28f7f
+0,        244,        244,        1,    76800, 0xf23fa74b
+0,        245,        245,        1,    76800, 0x4014c817
+0,        246,        246,        1,    76800, 0x0954ead7
+0,        247,        247,        1,    76800, 0xa8e319fe
+0,        248,        248,        1,    76800, 0x722e3f2c
+0,        249,        249,        1,    76800, 0xbee3702c
+0,        250,        250,        1,    76800, 0x19599172
+0,        251,        251,        1,    76800, 0x61c18ef0
+0,        252,        252,        1,    76800, 0xfb13780e
+0,        253,        253,        1,    76800, 0xd86e6b80
+0,        254,        254,        1,    76800, 0xf5cc6abc
+0,        255,        255,        1,    76800, 0x5fe86912
+0,        256,        256,        1,    76800, 0xba3d6efe
+0,        257,        257,        1,    76800, 0x23927f3e
+0,        258,        258,        1,    76800, 0x6947b124
+0,        259,        259,        1,    76800, 0x80e9f682
+0,        260,        260,        1,    76800, 0x6a393a9b
+0,        261,        261,        1,    76800, 0x5aff928b
+0,        262,        262,        1,    76800, 0xd81dfbab
+0,        263,        263,        1,    76800, 0x950166ca
+0,        264,        264,        1,    76800, 0xc7e6c6f0
+0,        265,        265,        1,    76800, 0x9aa328a1
+0,        266,        266,        1,    76800, 0x17de849b
+0,        267,        267,        1,    76800, 0xc4f7d9e3
+0,        268,        268,        1,    76800, 0x3f372bee
+0,        269,        269,        1,    76800, 0xaffc6e06
+0,        270,        270,        1,    76800, 0x94b8875c
+0,        271,        271,        1,    76800, 0xb713a42a
+0,        272,        272,        1,    76800, 0x8a89c232
+0,        273,        273,        1,    76800, 0xde65db42
+0,        274,        274,        1,    76800, 0x2c7dfaac
+0,        275,        275,        1,    76800, 0xa9202a71
+0,        276,        276,        1,    76800, 0x78715817
+0,        277,        277,        1,    76800, 0x3c0d8bb9
+0,        278,        278,        1,    76800, 0xa4cdbb61
+0,        279,        279,        1,    76800, 0xb9abd6ad
+0,        280,        280,        1,    76800, 0xecef0146
+0,        281,        281,        1,    76800, 0x82f22350
+0,        282,        282,        1,    76800, 0x17f442f2
+0,        283,        283,        1,    76800, 0xa6ea59e4
+0,        284,        284,        1,    76800, 0x62e452e6
+0,        285,        285,        1,    76800, 0xce2c454e
+0,        286,        286,        1,    76800, 0x27a821b4
+0,        287,        287,        1,    76800, 0x899f0f98
+0,        288,        288,        1,    76800, 0xe25dffb7
+0,        289,        289,        1,    76800, 0xa288ff17
+0,        290,        290,        1,    76800, 0x678500b0
+0,        291,        291,        1,    76800, 0xfe9c1216
+0,        292,        292,        1,    76800, 0x56da27a0
+0,        293,        293,        1,    76800, 0x62f239be
+0,        294,        294,        1,    76800, 0xa0a74b90
+0,        295,        295,        1,    76800, 0xc2f969a0
+0,        296,        296,        1,    76800, 0xe1ca7ad4
+0,        297,        297,        1,    76800, 0xf7938a7e
+0,        298,        298,        1,    76800, 0x3a339640
+0,        299,        299,        1,    76800, 0x44b79e0c
+0,        300,        300,        1,    76800, 0xd6e78ee6
+0,        301,        301,        1,    76800, 0xeecd91b6
+0,        302,        302,        1,    76800, 0x3ea99774
+0,        303,        303,        1,    76800, 0xd399967e
+0,        304,        304,        1,    76800, 0xc1e38de6
+0,        305,        305,        1,    76800, 0xd8ec7958
+0,        306,        306,        1,    76800, 0xe9e26992
+0,        307,        307,        1,    76800, 0xb6ee580a
+0,        308,        308,        1,    76800, 0xd56852f4
+0,        309,        309,        1,    76800, 0x997f4b9c
+0,        310,        310,        1,    76800, 0xc62841a6
+0,        311,        311,        1,    76800, 0x58063cee
+0,        312,        312,        1,    76800, 0xbaaf3e16
+0,        313,        313,        1,    76800, 0xac043a50
+0,        314,        314,        1,    76800, 0xa6c73a14
+0,        315,        315,        1,    76800, 0x1d614480
+0,        316,        316,        1,    76800, 0xc4e63b4c
+0,        317,        317,        1,    76800, 0x9d393b06
+0,        318,        318,        1,    76800, 0x9a902ef4
+0,        319,        319,        1,    76800, 0x6f872c74
+0,        320,        320,        1,    76800, 0x288a2f92
+0,        321,        321,        1,    76800, 0xb4832d76
+0,        322,        322,        1,    76800, 0x99e21c30
+0,        323,        323,        1,    76800, 0x287f0c90
+0,        324,        324,        1,    76800, 0xfd8bfe3f
+0,        325,        325,        1,    76800, 0x0a62f1d3
+0,        326,        326,        1,    76800, 0x2928eb4d
+0,        327,        327,        1,    76800, 0x2acfe487
+0,        328,        328,        1,    76800, 0x2b2ce339
+0,        329,        329,        1,    76800, 0x25d2e4c5
+0,        330,        330,        1,    76800, 0x0c14dd95
+0,        331,        331,        1,    76800, 0xfe8fdf29
+0,        332,        332,        1,    76800, 0x3afedd29
+0,        333,        333,        1,    76800, 0x3c85dd05
+0,        334,        334,        1,    76800, 0x9981db4d
+0,        335,        335,        1,    76800, 0xc4f9d501
+0,        336,        336,        1,    76800, 0xccd4d2d5
+0,        337,        337,        1,    76800, 0x229fdc41
+0,        338,        338,        1,    76800, 0x305de4ad
+0,        339,        339,        1,    76800, 0xb40eaef6
+0,        340,        340,        1,    76800, 0xb14f0431
+0,        341,        341,        1,    76800, 0x346b9280
+0,        342,        342,        1,    76800, 0x9198b4c0
+0,        343,        343,        1,    76800, 0xba1fde8f
+0,        344,        344,        1,    76800, 0x45260fa2
+0,        345,        345,        1,    76800, 0x69dd33cb
+0,        346,        346,        1,    76800, 0x6e10c599
+0,        347,        347,        1,    76800, 0x9dd33a40
+0,        348,        348,        1,    76800, 0x9dc7eb47
+0,        349,        349,        1,    76800, 0x8776f7df
+0,        350,        350,        1,    76800, 0xfd674e91
+0,        351,        351,        1,    76800, 0xcd69d151
+0,        352,        352,        1,    76800, 0xa8f69f9e
+0,        353,        353,        1,    76800, 0xf83587a2
+0,        354,        354,        1,    76800, 0xcb656e2a
+0,        355,        355,        1,    76800, 0x8c5e6b82
+0,        356,        356,        1,    76800, 0x880d5f56
+0,        357,        357,        1,    76800, 0x93405cce
+0,        358,        358,        1,    76800, 0x51345c1e
-- 
1.7.9.5

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to