[FFmpeg-devel] [PATCH] Use correct colorspace in Cinepak decoder.

u-bo1b at 0w.se u-bo1b at 0w.se
Mon Feb 18 18:00:33 CET 2013


The new code is also faster and more robust.

The decoder passed fate tests.

As for the performance:
an update to the numbers I posted earlier:

old decoder + conversion to rgb:         fps = 2618
old decoder, without converting to rgb:  fps = 4012

new decoder, producing rgb:              fps = 4502

Regards,
Rl
---
 libavcodec/cinepak.c          |  225 ++++++++++++++++---------------
 tests/ref/fate/cvid-grayscale |  304 ++++++++++++++++++++--------------------
 tests/ref/fate/cvid-partial   |  158 +++++++++++-----------
 tests/ref/fate/film-cvid      |  220 +++++++++++++++---------------
 4 files changed, 456 insertions(+), 451 deletions(-)

diff --git a/libavcodec/cinepak.c b/libavcodec/cinepak.c
index 54ad51c..c537761 100644
--- a/libavcodec/cinepak.c
+++ b/libavcodec/cinepak.c
@@ -28,6 +28,9 @@
  *   http://www.csse.monash.edu.au/~timf/
  * @see For more information on the quirky data inside Sega FILM/CPK files, visit:
  *   http://wiki.multimedia.cx/index.php?title=Sega_FILM
+ *
+ * Cinepak colorspace support (c) 2013 Rl, Aetey Global Technologies AB
+ * @author Cinepak colorspace, Rl, Aetey Global Technologies AB
  */
 
 #include <stdio.h>
@@ -39,10 +42,7 @@
 #include "avcodec.h"
 
 
-typedef struct {
-    uint8_t  y0, y1, y2, y3;
-    uint8_t  u, v;
-} cvid_codebook;
+typedef uint8_t cvid_codebook[12];
 
 #define MAX_STRIPS      32
 
@@ -78,12 +78,14 @@ static void cinepak_decode_codebook (cvid_codebook *codebook,
     const uint8_t *eod = (data + size);
     uint32_t flag, mask;
     int      i, n;
+    uint8_t *p;
 
     /* check if this chunk contains 4- or 6-element vectors */
     n    = (chunk_id & 0x04) ? 4 : 6;
     flag = 0;
     mask = 0;
 
+    p = codebook[0];
     for (i=0; i < 256; i++) {
         if ((chunk_id & 0x01) && !(mask >>= 1)) {
             if ((data + 4) > eod)
@@ -95,28 +97,38 @@ static void cinepak_decode_codebook (cvid_codebook *codebook,
         }
 
         if (!(chunk_id & 0x01) || (flag & mask)) {
+            int k, kk;
+
             if ((data + n) > eod)
                 break;
 
+            for (k = 0; k < 4; ++k) {
+                int r = *data++;
+                for (kk = 0; kk < 3; ++kk)
+                    *p++ = r;
+            }
             if (n == 6) {
-                codebook[i].y0 = *data++;
-                codebook[i].y1 = *data++;
-                codebook[i].y2 = *data++;
-                codebook[i].y3 = *data++;
-                codebook[i].u  = 128 + *data++;
-                codebook[i].v  = 128 + *data++;
+                int r, g, b, u, v;
+                u = *(int8_t *)data++;
+                v = *(int8_t *)data++;
+                p -= 12;
+                for(k=0; k<4; ++k) {
+                    r = *p++ + v*2;
+                    g = *p++ - (u/2) - v;
+                    b = *p   + u*2;
+                    p -= 2;
+                    *p++ = av_clip_uint8(r);
+                    *p++ = av_clip_uint8(g);
+                    *p++ = av_clip_uint8(b);
+                }
             } else {
                 /* this codebook type indicates either greyscale or
-                 * palettized video; if palettized, U & V components will
-                 * not be used so it is safe to set them to 128 for the
-                 * benefit of greyscale rendering in YUV420P */
-                codebook[i].y0 = *data++;
-                codebook[i].y1 = *data++;
-                codebook[i].y2 = *data++;
-                codebook[i].y3 = *data++;
-                codebook[i].u  = 128;
-                codebook[i].v  = 128;
+                 * palettized video, it is already stored as grey rgb24
+                 * which makes it robust even when the frame is considered
+                 * to be rgb24 */
             }
+        } else {
+            p += 12;
         }
     }
 }
@@ -126,25 +138,31 @@ static int cinepak_decode_vectors (CinepakContext *s, cvid_strip *strip,
 {
     const uint8_t   *eod = (data + size);
     uint32_t         flag, mask;
-    cvid_codebook   *codebook;
+    uint8_t         *cb0, *cb1, *cb2, *cb3;
     unsigned int     x, y;
-    uint32_t         iy[4];
-    uint32_t         iu[2];
-    uint32_t         iv[2];
+    char            *ip0, *ip1, *ip2, *ip3;
 
     flag = 0;
     mask = 0;
-
+        
     for (y=strip->y1; y < strip->y2; y+=4) {
 
-        iy[0] = strip->x1 + (y * s->frame.linesize[0]);
-        iy[1] = iy[0] + s->frame.linesize[0];
-        iy[2] = iy[1] + s->frame.linesize[0];
-        iy[3] = iy[2] + s->frame.linesize[0];
-        iu[0] = (strip->x1/2) + ((y/2) * s->frame.linesize[1]);
-        iu[1] = iu[0] + s->frame.linesize[1];
-        iv[0] = (strip->x1/2) + ((y/2) * s->frame.linesize[2]);
-        iv[1] = iv[0] + s->frame.linesize[2];
+/* take care of y dimension not being multiple of 4, such streams exist */
+        ip0 = ip1 = ip2 = ip3 = s->frame.data[0] +
+          (s->palette_video?strip->x1:strip->x1*3) + (y * s->frame.linesize[0]);
+        if(s->avctx->height - y > 1) {
+            ip1 = ip0 + s->frame.linesize[0];
+            if(s->avctx->height - y > 2) {
+                ip2 = ip1 + s->frame.linesize[0];
+                if(s->avctx->height - y > 3) {
+                    ip3 = ip2 + s->frame.linesize[0];
+                }
+            }
+        }
+/* to get the correct picture for not-multiple-of-4 cases let us fill
+ * each block from the bottom up, thus possibly overwriting the top line
+ * more than once but ending with the correct data in place
+ * (instead of in-loop checking) */
 
         for (x=strip->x1; x < strip->x2; x+=4) {
             if ((chunk_id & 0x01) && !(mask >>= 1)) {
@@ -167,97 +185,84 @@ static int cinepak_decode_vectors (CinepakContext *s, cvid_strip *strip,
                 }
 
                 if ((chunk_id & 0x02) || (~flag & mask)) {
+                    uint8_t *p;
                     if (data >= eod)
                         return AVERROR_INVALIDDATA;
 
-                    codebook = &strip->v1_codebook[*data++];
-                    s->frame.data[0][iy[0] + 0] = codebook->y0;
-                    s->frame.data[0][iy[0] + 1] = codebook->y0;
-                    s->frame.data[0][iy[1] + 0] = codebook->y0;
-                    s->frame.data[0][iy[1] + 1] = codebook->y0;
-                    if (!s->palette_video) {
-                        s->frame.data[1][iu[0]] = codebook->u;
-                        s->frame.data[2][iv[0]] = codebook->v;
-                    }
-
-                    s->frame.data[0][iy[0] + 2] = codebook->y1;
-                    s->frame.data[0][iy[0] + 3] = codebook->y1;
-                    s->frame.data[0][iy[1] + 2] = codebook->y1;
-                    s->frame.data[0][iy[1] + 3] = codebook->y1;
-                    if (!s->palette_video) {
-                        s->frame.data[1][iu[0] + 1] = codebook->u;
-                        s->frame.data[2][iv[0] + 1] = codebook->v;
-                    }
-
-                    s->frame.data[0][iy[2] + 0] = codebook->y2;
-                    s->frame.data[0][iy[2] + 1] = codebook->y2;
-                    s->frame.data[0][iy[3] + 0] = codebook->y2;
-                    s->frame.data[0][iy[3] + 1] = codebook->y2;
-                    if (!s->palette_video) {
-                        s->frame.data[1][iu[1]] = codebook->u;
-                        s->frame.data[2][iv[1]] = codebook->v;
-                    }
-
-                    s->frame.data[0][iy[2] + 2] = codebook->y3;
-                    s->frame.data[0][iy[2] + 3] = codebook->y3;
-                    s->frame.data[0][iy[3] + 2] = codebook->y3;
-                    s->frame.data[0][iy[3] + 3] = codebook->y3;
-                    if (!s->palette_video) {
-                        s->frame.data[1][iu[1] + 1] = codebook->u;
-                        s->frame.data[2][iv[1] + 1] = codebook->v;
+                    p = strip->v1_codebook[*data++] + 6;
+                    if (s->palette_video) {
+                        *(ip3+0) = *(ip3+1) = *(ip2+0) = *(ip2+1) = *p;
+                        p += 3; /* ... + 9 */
+                        *(ip3+2) = *(ip3+3) = *(ip2+2) = *(ip2+3) = *p;
+                        p -= 9; /* ... + 0 */
+                        *(ip1+0) = *(ip1+1) = *(ip0+0) = *(ip0+1) = *p;
+                        p += 3; /* ... + 3 */
+                        *(ip1+2) = *(ip1+3) = *(ip0+2) = *(ip0+3) = *p;
+                    } else {
+                        memcpy(ip3 + 0, p, 3); memcpy(ip3 + 3, p, 3);
+                        memcpy(ip2 + 0, p, 3); memcpy(ip2 + 3, p, 3);
+                        p += 3; /* ... + 9 */
+                        memcpy(ip3 + 6, p, 3); memcpy(ip3 + 9, p, 3);
+                        memcpy(ip2 + 6, p, 3); memcpy(ip2 + 9, p, 3);
+                        p -= 9; /* ... + 0 */
+                        memcpy(ip1 + 0, p, 3); memcpy(ip1 + 3, p, 3);
+                        memcpy(ip0 + 0, p, 3); memcpy(ip0 + 3, p, 3);
+                        p += 3; /* ... + 3 */
+                        memcpy(ip1 + 6, p, 3); memcpy(ip1 + 9, p, 3);
+                        memcpy(ip0 + 6, p, 3); memcpy(ip0 + 9, p, 3);
                     }
 
                 } else if (flag & mask) {
                     if ((data + 4) > eod)
                         return AVERROR_INVALIDDATA;
 
-                    codebook = &strip->v4_codebook[*data++];
-                    s->frame.data[0][iy[0] + 0] = codebook->y0;
-                    s->frame.data[0][iy[0] + 1] = codebook->y1;
-                    s->frame.data[0][iy[1] + 0] = codebook->y2;
-                    s->frame.data[0][iy[1] + 1] = codebook->y3;
-                    if (!s->palette_video) {
-                        s->frame.data[1][iu[0]] = codebook->u;
-                        s->frame.data[2][iv[0]] = codebook->v;
-                    }
-
-                    codebook = &strip->v4_codebook[*data++];
-                    s->frame.data[0][iy[0] + 2] = codebook->y0;
-                    s->frame.data[0][iy[0] + 3] = codebook->y1;
-                    s->frame.data[0][iy[1] + 2] = codebook->y2;
-                    s->frame.data[0][iy[1] + 3] = codebook->y3;
-                    if (!s->palette_video) {
-                        s->frame.data[1][iu[0] + 1] = codebook->u;
-                        s->frame.data[2][iv[0] + 1] = codebook->v;
-                    }
-
-                    codebook = &strip->v4_codebook[*data++];
-                    s->frame.data[0][iy[2] + 0] = codebook->y0;
-                    s->frame.data[0][iy[2] + 1] = codebook->y1;
-                    s->frame.data[0][iy[3] + 0] = codebook->y2;
-                    s->frame.data[0][iy[3] + 1] = codebook->y3;
-                    if (!s->palette_video) {
-                        s->frame.data[1][iu[1]] = codebook->u;
-                        s->frame.data[2][iv[1]] = codebook->v;
-                    }
-
-                    codebook = &strip->v4_codebook[*data++];
-                    s->frame.data[0][iy[2] + 2] = codebook->y0;
-                    s->frame.data[0][iy[2] + 3] = codebook->y1;
-                    s->frame.data[0][iy[3] + 2] = codebook->y2;
-                    s->frame.data[0][iy[3] + 3] = codebook->y3;
-                    if (!s->palette_video) {
-                        s->frame.data[1][iu[1] + 1] = codebook->u;
-                        s->frame.data[2][iv[1] + 1] = codebook->v;
+                    cb0 = strip->v4_codebook[*data++];
+                    cb1 = strip->v4_codebook[*data++];
+                    cb2 = strip->v4_codebook[*data++];
+                    cb3 = strip->v4_codebook[*data++];
+                    if (s->palette_video) {
+                        uint8_t *p;
+                        p = ip3;
+                        *p++ = cb2[6];
+                        *p++ = cb2[9];
+                        *p++ = cb3[6];
+                        *p   = cb3[9];
+                        p = ip2;
+                        *p++ = cb2[0];
+                        *p++ = cb2[3];
+                        *p++ = cb3[0];
+                        *p   = cb3[3];
+                        p = ip1;
+                        *p++ = cb0[6];
+                        *p++ = cb0[9];
+                        *p++ = cb1[6];
+                        *p   = cb1[9];
+                        p = ip0;
+                        *p++ = cb0[0];
+                        *p++ = cb0[3];
+                        *p++ = cb1[0];
+                        *p   = cb1[3];
+                    } else {
+                        memcpy(ip3 + 0, cb2 + 6, 6);
+                        memcpy(ip3 + 6, cb3 + 6, 6);
+                        memcpy(ip2 + 0, cb2 + 0, 6);
+                        memcpy(ip2 + 6, cb3 + 0, 6);
+                        memcpy(ip1 + 0, cb0 + 6, 6);
+                        memcpy(ip1 + 6, cb1 + 6, 6);
+                        memcpy(ip0 + 0, cb0 + 0, 6);
+                        memcpy(ip0 + 6, cb1 + 0, 6);
                     }
 
                 }
             }
 
-            iy[0] += 4;  iy[1] += 4;
-            iy[2] += 4;  iy[3] += 4;
-            iu[0] += 2;  iu[1] += 2;
-            iv[0] += 2;  iv[1] += 2;
+            if (s->palette_video) {
+                ip0 += 4;  ip1 += 4;
+                ip2 += 4;  ip3 += 4;
+            } else {
+                ip0 += 12;  ip1 += 12;
+                ip2 += 12;  ip3 += 12;
+            }
         }
     }
 
@@ -412,7 +417,7 @@ static av_cold int cinepak_decode_init(AVCodecContext *avctx)
     // check for paletted data
     if (avctx->bits_per_coded_sample != 8) {
         s->palette_video = 0;
-        avctx->pix_fmt = AV_PIX_FMT_YUV420P;
+        avctx->pix_fmt = AV_PIX_FMT_RGB24;
     } else {
         s->palette_video = 1;
         avctx->pix_fmt = AV_PIX_FMT_PAL8;
diff --git a/tests/ref/fate/cvid-grayscale b/tests/ref/fate/cvid-grayscale
index 87ca600..1b586b3 100644
--- a/tests/ref/fate/cvid-grayscale
+++ b/tests/ref/fate/cvid-grayscale
@@ -1,153 +1,153 @@
 #tb 0: 99561/500000
-0,          0,          0,        1,    11300, 0x46c78923
-0,          1,          1,        1,    11300, 0x3f2a1175
-0,          2,          2,        1,    11300, 0x722de221
-0,          3,          3,        1,    11300, 0x01746b88
-0,          4,          4,        1,    11300, 0x549587a7
-0,          5,          5,        1,    11300, 0x843ab943
-0,          6,          6,        1,    11300, 0x62fdee48
-0,          7,          7,        1,    11300, 0x74a62867
-0,          8,          8,        1,    11300, 0x35a20e2f
-0,          9,          9,        1,    11300, 0x4e9ef54d
-0,         10,         10,        1,    11300, 0xec7201f5
-0,         11,         11,        1,    11300, 0x363bfe27
-0,         12,         12,        1,    11300, 0x2aaab418
-0,         13,         13,        1,    11300, 0x6a48ab3f
-0,         14,         14,        1,    11300, 0x3fecea34
-0,         15,         15,        1,    11300, 0xa371f55e
-0,         16,         16,        1,    11300, 0xa86b147c
-0,         17,         17,        1,    11300, 0x49e9206e
-0,         18,         18,        1,    11300, 0x6c9a2155
-0,         19,         19,        1,    11300, 0x2c8a4798
-0,         20,         20,        1,    11300, 0x3485676c
-0,         21,         21,        1,    11300, 0xb0b293f2
-0,         22,         22,        1,    11300, 0xe4a9b068
-0,         23,         23,        1,    11300, 0xd68d0556
-0,         24,         24,        1,    11300, 0xc28e5193
-0,         25,         25,        1,    11300, 0xf6948483
-0,         26,         26,        1,    11300, 0xf21fbf57
-0,         27,         27,        1,    11300, 0x8345eb44
-0,         28,         28,        1,    11300, 0x8124f045
-0,         29,         29,        1,    11300, 0x18e31f10
-0,         30,         30,        1,    11300, 0xdb1943fc
-0,         31,         31,        1,    11300, 0x8701699f
-0,         32,         32,        1,    11300, 0xd7b18550
-0,         33,         33,        1,    11300, 0xa56faccc
-0,         34,         34,        1,    11300, 0xf8bcc17c
-0,         35,         35,        1,    11300, 0x446acab9
-0,         36,         36,        1,    11300, 0x755fd295
-0,         37,         37,        1,    11300, 0x92e3d100
-0,         38,         38,        1,    11300, 0x54895bb3
-0,         39,         39,        1,    11300, 0xd18bffda
-0,         40,         40,        1,    11300, 0x480dbe4f
-0,         41,         41,        1,    11300, 0x49ea9dbe
-0,         42,         42,        1,    11300, 0x00d3a003
-0,         43,         43,        1,    11300, 0xda7bbfb2
-0,         44,         44,        1,    11300, 0x9700d9c2
-0,         45,         45,        1,    11300, 0xa0a9e490
-0,         46,         46,        1,    11300, 0x00eb0979
-0,         47,         47,        1,    11300, 0x32b04630
-0,         48,         48,        1,    11300, 0xdfb73e51
-0,         49,         49,        1,    11300, 0x3d8e4f96
-0,         50,         50,        1,    11300, 0x2ca83271
-0,         51,         51,        1,    11300, 0xb5b123c0
-0,         52,         52,        1,    11300, 0x8a570e58
-0,         53,         53,        1,    11300, 0xc6c805bc
-0,         54,         54,        1,    11300, 0x27caf7a5
-0,         55,         55,        1,    11300, 0x5319ecb0
-0,         56,         56,        1,    11300, 0x5471e3fd
-0,         57,         57,        1,    11300, 0x6d68a6f4
-0,         58,         58,        1,    11300, 0x872b7194
-0,         59,         59,        1,    11300, 0x007c36bd
-0,         60,         60,        1,    11300, 0x2714f1b5
-0,         61,         61,        1,    11300, 0x6c8eb50f
-0,         62,         62,        1,    11300, 0xf5d57be8
-0,         63,         63,        1,    11300, 0x981f412b
-0,         64,         64,        1,    11300, 0x1a9804a1
-0,         65,         65,        1,    11300, 0xf0c1d24a
-0,         66,         66,        1,    11300, 0xa70a9d9b
-0,         67,         67,        1,    11300, 0x8c466876
-0,         68,         68,        1,    11300, 0xcf2e32df
-0,         69,         69,        1,    11300, 0xcb8cfebf
-0,         70,         70,        1,    11300, 0xb961ca99
-0,         71,         71,        1,    11300, 0x666d9619
-0,         72,         72,        1,    11300, 0x84bf5b55
-0,         73,         73,        1,    11300, 0xbfa22ccc
-0,         74,         74,        1,    11300, 0xcde41849
-0,         75,         75,        1,    11300, 0x71372dcd
-0,         76,         76,        1,    11300, 0x13402cfd
-0,         77,         77,        1,    11300, 0xdebdd321
-0,         78,         78,        1,    11300, 0xdda66de1
-0,         79,         79,        1,    11300, 0x7f4bb682
-0,         80,         80,        1,    11300, 0xf67fd528
-0,         81,         81,        1,    11300, 0xe739ff8c
-0,         82,         82,        1,    11300, 0x2e131774
-0,         83,         83,        1,    11300, 0xfa942811
-0,         84,         84,        1,    11300, 0x0cd93ac2
-0,         85,         85,        1,    11300, 0xd0445e0e
-0,         86,         86,        1,    11300, 0x3f3497c7
-0,         87,         87,        1,    11300, 0x11b5bd2c
-0,         88,         88,        1,    11300, 0xccd5e62a
-0,         89,         89,        1,    11300, 0xa9d4fcb5
-0,         90,         90,        1,    11300, 0x34aa1a03
-0,         91,         91,        1,    11300, 0x1ce6299e
-0,         92,         92,        1,    11300, 0x661c2745
-0,         93,         93,        1,    11300, 0x27d8a8b3
-0,         94,         94,        1,    11300, 0x9eb07467
-0,         95,         95,        1,    11300, 0x128374d2
-0,         96,         96,        1,    11300, 0x05c36ff5
-0,         97,         97,        1,    11300, 0x8a136bde
-0,         98,         98,        1,    11300, 0x15c47c99
-0,         99,         99,        1,    11300, 0xcc4a93f4
-0,        100,        100,        1,    11300, 0x19529b2b
-0,        101,        101,        1,    11300, 0x9943c076
-0,        102,        102,        1,    11300, 0xf898e583
-0,        103,        103,        1,    11300, 0x40f71f94
-0,        104,        104,        1,    11300, 0x5b604afb
-0,        105,        105,        1,    11300, 0x8c176af4
-0,        106,        106,        1,    11300, 0x0f1a6216
-0,        107,        107,        1,    11300, 0x38bbd13d
-0,        108,        108,        1,    11300, 0x90c8d1fc
-0,        109,        109,        1,    11300, 0x253000d7
-0,        110,        110,        1,    11300, 0xb94b03b1
-0,        111,        111,        1,    11300, 0xbc872268
-0,        112,        112,        1,    11300, 0xe77adb8c
-0,        113,        113,        1,    11300, 0xa38936b7
-0,        114,        114,        1,    11300, 0xd6153632
-0,        115,        115,        1,    11300, 0x1ae633cc
-0,        116,        116,        1,    11300, 0xb90c286e
-0,        117,        117,        1,    11300, 0xbc7e333d
-0,        118,        118,        1,    11300, 0x1b5421f8
-0,        119,        119,        1,    11300, 0xdde6506d
-0,        120,        120,        1,    11300, 0xd3eb757e
-0,        121,        121,        1,    11300, 0x5ad1929c
-0,        122,        122,        1,    11300, 0x4f6aa47d
-0,        123,        123,        1,    11300, 0xab3caf55
-0,        124,        124,        1,    11300, 0x5ff9b39a
-0,        125,        125,        1,    11300, 0x1454e12e
-0,        126,        126,        1,    11300, 0xf18216e8
-0,        127,        127,        1,    11300, 0x62144880
-0,        128,        128,        1,    11300, 0x54284241
-0,        129,        129,        1,    11300, 0x8e8c7228
-0,        130,        130,        1,    11300, 0xb498d06e
-0,        131,        131,        1,    11300, 0x7b1e6be1
-0,        132,        132,        1,    11300, 0x5e5ea1f4
-0,        133,        133,        1,    11300, 0x41eda28e
-0,        134,        134,        1,    11300, 0x7ba6aa92
-0,        135,        135,        1,    11300, 0xa8a8b1c7
-0,        136,        136,        1,    11300, 0x0d30bd08
-0,        137,        137,        1,    11300, 0xc610bf16
-0,        138,        138,        1,    11300, 0xed57c075
-0,        139,        139,        1,    11300, 0xb86dbfea
-0,        140,        140,        1,    11300, 0x0970c03d
-0,        141,        141,        1,    11300, 0x743ac2ac
-0,        142,        142,        1,    11300, 0x0a44c816
-0,        143,        143,        1,    11300, 0xe32acd6b
-0,        144,        144,        1,    11300, 0x209bcdab
-0,        145,        145,        1,    11300, 0x3cd0d105
-0,        146,        146,        1,    11300, 0xc0bcd330
-0,        147,        147,        1,    11300, 0x4785d6dc
-0,        148,        148,        1,    11300, 0xe85f9c90
-0,        149,        149,        1,    11300, 0xd4a72850
-0,        150,        150,        1,    11300, 0x04766e41
-0,        151,        151,        1,    11300, 0x04766e41
+0,          0,          0,        1,    22500, 0x0f8e562e
+0,          1,          1,        1,    22500, 0x507aef06
+0,          2,          2,        1,    22500, 0x059d6137
+0,          3,          3,        1,    22500, 0xfb1bfd4e
+0,          4,          4,        1,    22500, 0xe97a51ba
+0,          5,          5,        1,    22500, 0xfc77e68e
+0,          6,          6,        1,    22500, 0x7f1985ac
+0,          7,          7,        1,    22500, 0xdfb933eb
+0,          8,          8,        1,    22500, 0x6dafe534
+0,          9,          9,        1,    22500, 0xb7b69abb
+0,         10,         10,        1,    22500, 0xc435c086
+0,         11,         11,        1,    22500, 0xf8ddb549
+0,         12,         12,        1,    22500, 0x76c0d70d
+0,         13,         13,        1,    22500, 0x1120bc82
+0,         14,         14,        1,    22500, 0x3f7c7970
+0,         15,         15,        1,    22500, 0xd37c9aee
+0,         16,         16,        1,    22500, 0x7407f81b
+0,         17,         17,        1,    22500, 0xce2f1c00
+0,         18,         18,        1,    22500, 0x70921eb5
+0,         19,         19,        1,    22500, 0x0abc917e
+0,         20,         20,        1,    22500, 0xeff1f0fa
+0,         21,         21,        1,    22500, 0x5e0d769b
+0,         22,         22,        1,    22500, 0xc984cbfd
+0,         23,         23,        1,    22500, 0x73f1caa9
+0,         24,         24,        1,    22500, 0x9108af6f
+0,         25,         25,        1,    22500, 0x4f33484e
+0,         26,         26,        1,    22500, 0x9810f8ca
+0,         27,         27,        1,    22500, 0xa0b97ca0
+0,         28,         28,        1,    22500, 0xd9c28ba3
+0,         29,         29,        1,    22500, 0xc97e17e6
+0,         30,         30,        1,    22500, 0x85cf86aa
+0,         31,         31,        1,    22500, 0xf15ff793
+0,         32,         32,        1,    22500, 0x35c54ab5
+0,         33,         33,        1,    22500, 0xe80ec129
+0,         34,         34,        1,    22500, 0x3d6cff39
+0,         35,         35,        1,    22500, 0x54e41aff
+0,         36,         36,        1,    22500, 0xc1d63293
+0,         37,         37,        1,    22500, 0x362c2dd4
+0,         38,         38,        1,    22500, 0xa1f8cdcf
+0,         39,         39,        1,    22500, 0x5b59ba62
+0,         40,         40,        1,    22500, 0x6d02f5b2
+0,         41,         41,        1,    22500, 0x899293ff
+0,         42,         42,        1,    22500, 0xad0e9ace
+0,         43,         43,        1,    22500, 0x4263f9db
+0,         44,         44,        1,    22500, 0xff1e481a
+0,         45,         45,        1,    22500, 0x70c86884
+0,         46,         46,        1,    22500, 0x203ed712
+0,         47,         47,        1,    22500, 0x2f0e8d46
+0,         48,         48,        1,    22500, 0x215075a9
+0,         49,         49,        1,    22500, 0x9882a978
+0,         50,         50,        1,    22500, 0xc2fd5209
+0,         51,         51,        1,    22500, 0xe1c925f6
+0,         52,         52,        1,    22500, 0x012be5af
+0,         53,         53,        1,    22500, 0xa718cbdb
+0,         54,         54,        1,    22500, 0x2494a1c3
+0,         55,         55,        1,    22500, 0xeb8980e4
+0,         56,         56,        1,    22500, 0x7f2766cb
+0,         57,         57,        1,    22500, 0xdf3cafa1
+0,         58,         58,        1,    22500, 0x9a390f81
+0,         59,         59,        1,    22500, 0xfdad5eed
+0,         60,         60,        1,    22500, 0x94f58ff3
+0,         61,         61,        1,    22500, 0xd7c6d9f2
+0,         62,         62,        1,    22500, 0x48b72e7d
+0,         63,         63,        1,    22500, 0x8a7a7e37
+0,         64,         64,        1,    22500, 0x5413c88a
+0,         65,         65,        1,    22500, 0x3f4531b2
+0,         66,         66,        1,    22500, 0x152d9396
+0,         67,         67,        1,    22500, 0x2ac3f418
+0,         68,         68,        1,    22500, 0x0e1c5353
+0,         69,         69,        1,    22500, 0xe058b711
+0,         70,         70,        1,    22500, 0x262e1a9f
+0,         71,         71,        1,    22500, 0x20057d10
+0,         72,         72,        1,    22500, 0x65c5ccb5
+0,         73,         73,        1,    22500, 0x3e36411a
+0,         74,         74,        1,    22500, 0xd9740391
+0,         75,         75,        1,    22500, 0x53d1441d
+0,         76,         76,        1,    22500, 0x9a3941ad
+0,         77,         77,        1,    22500, 0x61553437
+0,         78,         78,        1,    22500, 0xfe0c0468
+0,         79,         79,        1,    22500, 0xd57bde4b
+0,         80,         80,        1,    22500, 0x4a183a4c
+0,         81,         81,        1,    22500, 0xd618b978
+0,         82,         82,        1,    22500, 0x6b480112
+0,         83,         83,        1,    22500, 0x7a1732e9
+0,         84,         84,        1,    22500, 0x45836afc
+0,         85,         85,        1,    22500, 0x3548d4e0
+0,         86,         86,        1,    22500, 0x476c821a
+0,         87,         87,        1,    22500, 0x6be5f249
+0,         88,         88,        1,    22500, 0xf79b6d52
+0,         89,         89,        1,    22500, 0x2edeb0f3
+0,         90,         90,        1,    22500, 0xbaf808bf
+0,         91,         91,        1,    22500, 0x71013790
+0,         92,         92,        1,    22500, 0xbf4e3085
+0,         93,         93,        1,    22500, 0x15c2b4de
+0,         94,         94,        1,    22500, 0x031d17fa
+0,         95,         95,        1,    22500, 0x3a2c193b
+0,         96,         96,        1,    22500, 0xb0420aa4
+0,         97,         97,        1,    22500, 0xe448fe50
+0,         98,         98,        1,    22500, 0x02173090
+0,         99,         99,        1,    22500, 0x4b2f76a1
+0,        100,        100,        1,    22500, 0xd6458c46
+0,        101,        101,        1,    22500, 0xa698fc27
+0,        102,        102,        1,    22500, 0xaeca6b5d
+0,        103,        103,        1,    22500, 0x4a591972
+0,        104,        104,        1,    22500, 0x19e49ba7
+0,        105,        105,        1,    22500, 0x1d4ffb92
+0,        106,        106,        1,    22500, 0xb1f8e0f8
+0,        107,        107,        1,    22500, 0x32c82e8b
+0,        108,        108,        1,    22500, 0x96e930c8
+0,        109,        109,        1,    22500, 0x0e6ebd2c
+0,        110,        110,        1,    22500, 0x315bc5ba
+0,        111,        111,        1,    22500, 0xb22321ee
+0,        112,        112,        1,    22500, 0xbe464d78
+0,        113,        113,        1,    22500, 0xdb4b5edb
+0,        114,        114,        1,    22500, 0x0ff65d4c
+0,        115,        115,        1,    22500, 0xff68561a
+0,        116,        116,        1,    22500, 0xa0033400
+0,        117,        117,        1,    22500, 0x5414546d
+0,        118,        118,        1,    22500, 0x7e43209e
+0,        119,        119,        1,    22500, 0x0037abfd
+0,        120,        120,        1,    22500, 0x3dd31b3f
+0,        121,        121,        1,    22500, 0xe0777299
+0,        122,        122,        1,    22500, 0x35a2a83c
+0,        123,        123,        1,    22500, 0x5282c8c4
+0,        124,        124,        1,    22500, 0x1ccdd593
+0,        125,        125,        1,    22500, 0x92525e5e
+0,        126,        126,        1,    22500, 0x5fa3ff5f
+0,        127,        127,        1,    22500, 0xd1169436
+0,        128,        128,        1,    22500, 0x07dc8179
+0,        129,        129,        1,    22500, 0x9a83113d
+0,        130,        130,        1,    22500, 0x9c722c1e
+0,        131,        131,        1,    22500, 0xccbcfe59
+0,        132,        132,        1,    22500, 0x8606a0a1
+0,        133,        133,        1,    22500, 0x2210a26f
+0,        134,        134,        1,    22500, 0xfc73ba7b
+0,        135,        135,        1,    22500, 0x731fd01a
+0,        136,        136,        1,    22500, 0x0e21f1dd
+0,        137,        137,        1,    22500, 0xf9c4f807
+0,        138,        138,        1,    22500, 0x2123fc24
+0,        139,        139,        1,    22500, 0xd42cfa83
+0,        140,        140,        1,    22500, 0x5927fb7c
+0,        141,        141,        1,    22500, 0xe32e02d8
+0,        142,        142,        1,    22500, 0xa5c11316
+0,        143,        143,        1,    22500, 0xb9112315
+0,        144,        144,        1,    22500, 0x78f223d5
+0,        145,        145,        1,    22500, 0x93202de3
+0,        146,        146,        1,    22500, 0x7eb03464
+0,        147,        147,        1,    22500, 0x899c3f68
+0,        148,        148,        1,    22500, 0xc2169075
+0,        149,        149,        1,    22500, 0x419f33a6
+0,        150,        150,        1,    22500, 0x3de50588
+0,        151,        151,        1,    22500, 0x3de50588
diff --git a/tests/ref/fate/cvid-partial b/tests/ref/fate/cvid-partial
index 907ef4a..bb368a1 100644
--- a/tests/ref/fate/cvid-partial
+++ b/tests/ref/fate/cvid-partial
@@ -1,80 +1,80 @@
 #tb 0: 1/12
-0,          0,          0,        1,   112400, 0x829180d8
-0,          1,          1,        1,   112400, 0xdbebac5b
-0,          2,          2,        1,   112400, 0xc5adc0f7
-0,          3,          3,        1,   112400, 0xbe1fc030
-0,          4,          4,        1,   112400, 0xe08ab460
-0,          5,          5,        1,   112400, 0xfde0dbc5
-0,          6,          6,        1,   112400, 0xed9242b0
-0,          7,          7,        1,   112400, 0x1ae3933a
-0,          8,          8,        1,   112400, 0xc82d2f5b
-0,          9,          9,        1,   112400, 0xbae9ddfc
-0,         10,         10,        1,   112400, 0xa350a1f7
-0,         11,         11,        1,   112400, 0x3cf78029
-0,         12,         12,        1,   112400, 0xaa0b82bf
-0,         13,         13,        1,   112400, 0x71aa4794
-0,         14,         14,        1,   112400, 0x2fe57373
-0,         15,         15,        1,   112400, 0x429c6f82
-0,         16,         16,        1,   112400, 0xfb2d917d
-0,         17,         17,        1,   112400, 0xcc84cb9a
-0,         18,         18,        1,   112400, 0xc68f0613
-0,         19,         19,        1,   112400, 0x05f30e6a
-0,         20,         20,        1,   112400, 0x5c5d853d
-0,         21,         21,        1,   112400, 0x01e0aff2
-0,         22,         22,        1,   112400, 0xc3b2cf4a
-0,         23,         23,        1,   112400, 0xc0a3cf19
-0,         24,         24,        1,   112400, 0xc743abda
-0,         25,         25,        1,   112400, 0x54bd17a2
-0,         26,         26,        1,   112400, 0x616ef28d
-0,         27,         27,        1,   112400, 0x04b51f59
-0,         28,         28,        1,   112400, 0x857511a2
-0,         29,         29,        1,   112400, 0x25c62440
-0,         30,         30,        1,   112400, 0x8c78198d
-0,         31,         31,        1,   112400, 0xc046c912
-0,         32,         32,        1,   112400, 0x0d828630
-0,         33,         33,        1,   112400, 0x48999b80
-0,         34,         34,        1,   112400, 0x9a869e77
-0,         35,         35,        1,   112400, 0x16d893df
-0,         36,         36,        1,   112400, 0xf6b86132
-0,         37,         37,        1,   112400, 0xfa564ea4
-0,         38,         38,        1,   112400, 0xdd473f69
-0,         39,         39,        1,   112400, 0xf89625a6
-0,         40,         40,        1,   112400, 0x823a58aa
-0,         41,         41,        1,   112400, 0x25e0fe43
-0,         42,         42,        1,   112400, 0x41034522
-0,         43,         43,        1,   112400, 0xb8da4f00
-0,         44,         44,        1,   112400, 0x9f684fce
-0,         45,         45,        1,   112400, 0xf7188710
-0,         46,         46,        1,   112400, 0x428fbfc6
-0,         47,         47,        1,   112400, 0x535bace0
-0,         48,         48,        1,   112400, 0x23216059
-0,         49,         49,        1,   112400, 0x9b8bbfa6
-0,         50,         50,        1,   112400, 0x932be522
-0,         51,         51,        1,   112400, 0xdbd31409
-0,         52,         52,        1,   112400, 0x0a69bf18
-0,         53,         53,        1,   112400, 0xa15ef128
-0,         54,         54,        1,   112400, 0x49a1fa92
-0,         55,         55,        1,   112400, 0xadeeaf62
-0,         56,         56,        1,   112400, 0xc1ce636e
-0,         57,         57,        1,   112400, 0x5ca544eb
-0,         58,         58,        1,   112400, 0x07230a36
-0,         59,         59,        1,   112400, 0x12ae2b53
-0,         60,         60,        1,   112400, 0x62453ef6
-0,         61,         61,        1,   112400, 0xe0588a98
-0,         62,         62,        1,   112400, 0xacd3927a
-0,         63,         63,        1,   112400, 0x5d3c6b01
-0,         64,         64,        1,   112400, 0xda671808
-0,         65,         65,        1,   112400, 0x61d0b492
-0,         66,         66,        1,   112400, 0x068b1293
-0,         67,         67,        1,   112400, 0x75b99287
-0,         68,         68,        1,   112400, 0xe657e7d6
-0,         69,         69,        1,   112400, 0x17873df6
-0,         70,         70,        1,   112400, 0xa8db5e31
-0,         71,         71,        1,   112400, 0x4f633b8e
-0,         72,         72,        1,   112400, 0x22266252
-0,         73,         73,        1,   112400, 0x308a6282
-0,         74,         74,        1,   112400, 0xfdb356ce
-0,         75,         75,        1,   112400, 0xe4394f1f
-0,         76,         76,        1,   112400, 0x8ca8649f
-0,         77,         77,        1,   112400, 0x804d44eb
-0,         78,         78,        1,   112400, 0x3864488b
+0,          0,          0,        1,   224400, 0xd8f2f310
+0,          1,          1,        1,   224400, 0xe38676c2
+0,          2,          2,        1,   224400, 0x7163b6ad
+0,          3,          3,        1,   224400, 0xa514b0f7
+0,          4,          4,        1,   224400, 0xeed48b96
+0,          5,          5,        1,   224400, 0x5e9f02b2
+0,          6,          6,        1,   224400, 0x70822c53
+0,          7,          7,        1,   224400, 0x93101067
+0,          8,          8,        1,   224400, 0x0710e900
+0,          9,          9,        1,   224400, 0x0e8add6a
+0,         10,         10,        1,   224400, 0x53fb2c5a
+0,         11,         11,        1,   224400, 0xa58cc02f
+0,         12,         12,        1,   224400, 0x0a5cc76b
+0,         13,         13,        1,   224400, 0xfa551631
+0,         14,         14,        1,   224400, 0xde9f99bf
+0,         15,         15,        1,   224400, 0xe66a8690
+0,         16,         16,        1,   224400, 0xd9e6f3d1
+0,         17,         17,        1,   224400, 0xa479a5c6
+0,         18,         18,        1,   224400, 0xdaa3531f
+0,         19,         19,        1,   224400, 0xde3e6843
+0,         20,         20,        1,   224400, 0x181adafd
+0,         21,         21,        1,   224400, 0x784b6429
+0,         22,         22,        1,   224400, 0x91cdc30e
+0,         23,         23,        1,   224400, 0x6e78be49
+0,         24,         24,        1,   224400, 0x7515644c
+0,         25,         25,        1,   224400, 0xcc32a91b
+0,         26,         26,        1,   224400, 0xc63e3831
+0,         27,         27,        1,   224400, 0xfb53b651
+0,         28,         28,        1,   224400, 0x12ec8a01
+0,         29,         29,        1,   224400, 0x136fcb2c
+0,         30,         30,        1,   224400, 0x827fa546
+0,         31,         31,        1,   224400, 0x1773b7f5
+0,         32,         32,        1,   224400, 0x732defc1
+0,         33,         33,        1,   224400, 0x84292372
+0,         34,         34,        1,   224400, 0x20f22365
+0,         35,         35,        1,   224400, 0xb39a0700
+0,         36,         36,        1,   224400, 0xf245706c
+0,         37,         37,        1,   224400, 0xdb702ae7
+0,         38,         38,        1,   224400, 0xadfefe5b
+0,         39,         39,        1,   224400, 0xa667adcb
+0,         40,         40,        1,   224400, 0x4d645191
+0,         41,         41,        1,   224400, 0x33802f58
+0,         42,         42,        1,   224400, 0x24eff4b8
+0,         43,         43,        1,   224400, 0x4dc817a6
+0,         44,         44,        1,   224400, 0x9a891d35
+0,         45,         45,        1,   224400, 0x2d0bb83b
+0,         46,         46,        1,   224400, 0xd13469c1
+0,         47,         47,        1,   224400, 0xd2e6302a
+0,         48,         48,        1,   224400, 0xc7594ee1
+0,         49,         49,        1,   224400, 0xc6da714c
+0,         50,         50,        1,   224400, 0xf675e838
+0,         51,         51,        1,   224400, 0xdc047c76
+0,         52,         52,        1,   224400, 0xe5727de5
+0,         53,         53,        1,   224400, 0x153b0f62
+0,         54,         54,        1,   224400, 0x65922f68
+0,         55,         55,        1,   224400, 0x04e04bfb
+0,         56,         56,        1,   224400, 0x1dde6c88
+0,         57,         57,        1,   224400, 0xed3905f2
+0,         58,         58,        1,   224400, 0x211a5996
+0,         59,         59,        1,   224400, 0xd010baaf
+0,         60,         60,        1,   224400, 0xcbc9f272
+0,         61,         61,        1,   224400, 0x7380d6f0
+0,         62,         62,        1,   224400, 0xfd0bf084
+0,         63,         63,        1,   224400, 0xc4d671d9
+0,         64,         64,        1,   224400, 0x84236aa5
+0,         65,         65,        1,   224400, 0x9c584ede
+0,         66,         66,        1,   224400, 0xdb0c6029
+0,         67,         67,        1,   224400, 0x775ae560
+0,         68,         68,        1,   224400, 0xe3800916
+0,         69,         69,        1,   224400, 0x9313a8e8
+0,         70,         70,        1,   224400, 0x3a5d07cc
+0,         71,         71,        1,   224400, 0x4651a10b
+0,         72,         72,        1,   224400, 0xc2d72183
+0,         73,         73,        1,   224400, 0xcd971625
+0,         74,         74,        1,   224400, 0x9fb0f3c2
+0,         75,         75,        1,   224400, 0x920ee561
+0,         76,         76,        1,   224400, 0x8a2c1bbf
+0,         77,         77,        1,   224400, 0x6150c072
+0,         78,         78,        1,   224400, 0x499dc869
diff --git a/tests/ref/fate/film-cvid b/tests/ref/fate/film-cvid
index 12b1f1c..3ca7b59 100644
--- a/tests/ref/fate/film-cvid
+++ b/tests/ref/fate/film-cvid
@@ -1,111 +1,111 @@
 #tb 0: 1/30
-0,          0,          0,        1,   107520, 0xa6c9fdd2
-0,          2,          2,        1,   107520, 0x61eb28c1
-0,          4,          4,        1,   107520, 0x45e20af7
-0,          6,          6,        1,   107520, 0x366970fc
-0,          8,          8,        1,   107520, 0xa392bcb3
-0,         10,         10,        1,   107520, 0xcf7bac98
-0,         12,         12,        1,   107520, 0x222eba53
-0,         14,         14,        1,   107520, 0x74e255a1
-0,         16,         16,        1,   107520, 0xc19eec6f
-0,         18,         18,        1,   107520, 0xa3880681
-0,         20,         20,        1,   107520, 0x957878db
-0,         22,         22,        1,   107520, 0x18340692
-0,         24,         24,        1,   107520, 0x9970f24d
-0,         26,         26,        1,   107520, 0xf08618aa
-0,         28,         28,        1,   107520, 0xee7324f0
-0,         30,         30,        1,   107520, 0xe15025b3
-0,         32,         32,        1,   107520, 0x8afa312e
-0,         34,         34,        1,   107520, 0x717a7d0f
-0,         36,         36,        1,   107520, 0x355c6e23
-0,         38,         38,        1,   107520, 0x7015a50f
-0,         40,         40,        1,   107520, 0xcdfc1a16
-0,         42,         42,        1,   107520, 0x38d929e7
-0,         44,         44,        1,   107520, 0x52913423
-0,         46,         46,        1,   107520, 0xe2c91c10
-0,         48,         48,        1,   107520, 0x85516e9c
-0,         50,         50,        1,   107520, 0xd1626030
-0,         52,         52,        1,   107520, 0xea7b16de
-0,         54,         54,        1,   107520, 0xa33eaa0d
-0,         56,         56,        1,   107520, 0x8e3be6a6
-0,         58,         58,        1,   107520, 0x14147bd6
-0,         60,         60,        1,   107520, 0x07d54bec
-0,         62,         62,        1,   107520, 0xe287a0a7
-0,         64,         64,        1,   107520, 0xc023a14d
-0,         66,         66,        1,   107520, 0x2437085d
-0,         68,         68,        1,   107520, 0x63823918
-0,         70,         70,        1,   107520, 0xbc17e198
-0,         72,         72,        1,   107520, 0x9d99bc81
-0,         74,         74,        1,   107520, 0x7e4ec71e
-0,         76,         76,        1,   107520, 0x55b98376
-0,         78,         78,        1,   107520, 0x356d8e9e
-0,         80,         80,        1,   107520, 0xf77e8a61
-0,         82,         82,        1,   107520, 0x5ae7c8c7
-0,         84,         84,        1,   107520, 0x8acf9322
-0,         86,         86,        1,   107520, 0x40a9177e
-0,         88,         88,        1,   107520, 0x3e0e4d8d
-0,         90,         90,        1,   107520, 0xd268865b
-0,         92,         92,        1,   107520, 0x89a4efeb
-0,         94,         94,        1,   107520, 0x70ca2478
-0,         96,         96,        1,   107520, 0xcc9ec981
-0,         98,         98,        1,   107520, 0xf0648459
-0,        100,        100,        1,   107520, 0x7e4a4cca
-0,        102,        102,        1,   107520, 0xb315dc65
-0,        104,        104,        1,   107520, 0x2aecc7b4
-0,        106,        106,        1,   107520, 0x81742f51
-0,        108,        108,        1,   107520, 0x3a1d7571
-0,        110,        110,        1,   107520, 0x3a1d7571
-0,        112,        112,        1,   107520, 0x3a1d7571
-0,        114,        114,        1,   107520, 0x3a1d7571
-0,        116,        116,        1,   107520, 0x3a1d7571
-0,        118,        118,        1,   107520, 0x3a1d7571
-0,        120,        120,        1,   107520, 0x3a1d7571
-0,        122,        122,        1,   107520, 0xe974733e
-0,        124,        124,        1,   107520, 0x999c6fbf
-0,        126,        126,        1,   107520, 0x26b56b6e
-0,        128,        128,        1,   107520, 0xc9f9647b
-0,        130,        130,        1,   107520, 0x6d025d00
-0,        132,        132,        1,   107520, 0xf9c056c1
-0,        134,        134,        1,   107520, 0xa5cc4d0b
-0,        136,        136,        1,   107520, 0x1a4c4236
-0,        138,        138,        1,   107520, 0xa9d538b6
-0,        140,        140,        1,   107520, 0x14682d00
-0,        142,        142,        1,   107520, 0x6236204f
-0,        144,        144,        1,   107520, 0x303e14aa
-0,        146,        146,        1,   107520, 0x943b0837
-0,        148,        148,        1,   107520, 0xfce5fd07
-0,        150,        150,        1,   107520, 0xd993f193
-0,        152,        152,        1,   107520, 0x4d48e7b4
-0,        154,        154,        1,   107520, 0x61ccdf83
-0,        156,        156,        1,   107520, 0xfb4fd608
-0,        158,        158,        1,   107520, 0x5efdcdb3
-0,        160,        160,        1,   107520, 0xb03ec886
-0,        162,        162,        1,   107520, 0xf464c343
-0,        164,        164,        1,   107520, 0xf464c343
-0,        166,        166,        1,   107520, 0xf464c343
-0,        168,        168,        1,   107520, 0xf464c343
-0,        170,        170,        1,   107520, 0xf464c343
-0,        172,        172,        1,   107520, 0xf464c343
-0,        174,        174,        1,   107520, 0xf464c343
-0,        176,        176,        1,   107520, 0xf464c343
-0,        178,        178,        1,   107520, 0xf464c343
-0,        180,        180,        1,   107520, 0xf464c343
-0,        182,        182,        1,   107520, 0xf464c343
-0,        184,        184,        1,   107520, 0xf2b2c712
-0,        186,        186,        1,   107520, 0xf2b2c712
-0,        188,        188,        1,   107520, 0xf2b2c712
-0,        190,        190,        1,   107520, 0xf2b2c712
-0,        192,        192,        1,   107520, 0xb95e6bc8
-0,        194,        194,        1,   107520, 0x33feee37
-0,        196,        196,        1,   107520, 0x36ee3cd5
-0,        198,        198,        1,   107520, 0x59096471
-0,        200,        200,        1,   107520, 0x53b470c6
-0,        202,        202,        1,   107520, 0xdb7c64ff
-0,        204,        204,        1,   107520, 0xe5a1596a
-0,        206,        206,        1,   107520, 0x8c8942eb
-0,        208,        208,        1,   107520, 0x5ecc379e
-0,        210,        210,        1,   107520, 0xea09432a
-0,        212,        212,        1,   107520, 0xe01e6b73
-0,        214,        214,        1,   107520, 0x1d13bba8
-0,        216,        216,        1,   107520, 0x3a993a6c
-0,        218,        218,        1,   107520, 0x2ede041a
+0,          0,          0,        1,   215040, 0x067c5362
+0,          2,          2,        1,   215040, 0xd9eacb98
+0,          4,          4,        1,   215040, 0x3c8a4cbd
+0,          6,          6,        1,   215040, 0xbdf996e1
+0,          8,          8,        1,   215040, 0x1b7fa123
+0,         10,         10,        1,   215040, 0x834b4a8d
+0,         12,         12,        1,   215040, 0xf4b1bebe
+0,         14,         14,        1,   215040, 0x088c3802
+0,         16,         16,        1,   215040, 0xf6ddedb9
+0,         18,         18,        1,   215040, 0x2791d538
+0,         20,         20,        1,   215040, 0x81fe4688
+0,         22,         22,        1,   215040, 0xad864fbd
+0,         24,         24,        1,   215040, 0xa637a97a
+0,         26,         26,        1,   215040, 0x2287e378
+0,         28,         28,        1,   215040, 0x13a017d7
+0,         30,         30,        1,   215040, 0x89a4acee
+0,         32,         32,        1,   215040, 0x97888ffc
+0,         34,         34,        1,   215040, 0x7c2c3b58
+0,         36,         36,        1,   215040, 0x2e3ab808
+0,         38,         38,        1,   215040, 0x2d553af2
+0,         40,         40,        1,   215040, 0x929c420e
+0,         42,         42,        1,   215040, 0x4841bd6d
+0,         44,         44,        1,   215040, 0xb350fbcd
+0,         46,         46,        1,   215040, 0x0d70b918
+0,         48,         48,        1,   215040, 0xf98b0f47
+0,         50,         50,        1,   215040, 0x748b8ff2
+0,         52,         52,        1,   215040, 0x62017c38
+0,         54,         54,        1,   215040, 0x46042bb4
+0,         56,         56,        1,   215040, 0xe7a74806
+0,         58,         58,        1,   215040, 0xb4c856e6
+0,         60,         60,        1,   215040, 0xb21a28dd
+0,         62,         62,        1,   215040, 0x2a6e0834
+0,         64,         64,        1,   215040, 0x7044d6ca
+0,         66,         66,        1,   215040, 0x17780335
+0,         68,         68,        1,   215040, 0x94f51e7a
+0,         70,         70,        1,   215040, 0x5beb5f5f
+0,         72,         72,        1,   215040, 0xc7d59527
+0,         74,         74,        1,   215040, 0x40f69049
+0,         76,         76,        1,   215040, 0x1f78740e
+0,         78,         78,        1,   215040, 0x49f7265d
+0,         80,         80,        1,   215040, 0x057ac5c9
+0,         82,         82,        1,   215040, 0x649bd476
+0,         84,         84,        1,   215040, 0x1c75aa43
+0,         86,         86,        1,   215040, 0xc4bd1e29
+0,         88,         88,        1,   215040, 0x5033fa74
+0,         90,         90,        1,   215040, 0xba5c949e
+0,         92,         92,        1,   215040, 0x2fa78a0e
+0,         94,         94,        1,   215040, 0x9d363dce
+0,         96,         96,        1,   215040, 0xd1dc82b0
+0,         98,         98,        1,   215040, 0xd25be322
+0,        100,        100,        1,   215040, 0xf1374ef9
+0,        102,        102,        1,   215040, 0x33467b42
+0,        104,        104,        1,   215040, 0x7ec7dfad
+0,        106,        106,        1,   215040, 0x706ed416
+0,        108,        108,        1,   215040, 0x6576b3eb
+0,        110,        110,        1,   215040, 0x6576b3eb
+0,        112,        112,        1,   215040, 0x6576b3eb
+0,        114,        114,        1,   215040, 0x6576b3eb
+0,        116,        116,        1,   215040, 0x6576b3eb
+0,        118,        118,        1,   215040, 0x6576b3eb
+0,        120,        120,        1,   215040, 0x6576b3eb
+0,        122,        122,        1,   215040, 0x6873993d
+0,        124,        124,        1,   215040, 0x8c2a84d8
+0,        126,        126,        1,   215040, 0xdd456bd5
+0,        128,        128,        1,   215040, 0x50fa4f3d
+0,        130,        130,        1,   215040, 0x00c4369c
+0,        132,        132,        1,   215040, 0xe4c220d2
+0,        134,        134,        1,   215040, 0xe43a033b
+0,        136,        136,        1,   215040, 0x72f6e32c
+0,        138,        138,        1,   215040, 0xb738c69c
+0,        140,        140,        1,   215040, 0x56bda3fe
+0,        142,        142,        1,   215040, 0xaa2f7da3
+0,        144,        144,        1,   215040, 0xf21f5c24
+0,        146,        146,        1,   215040, 0xd33e3579
+0,        148,        148,        1,   215040, 0x6a601495
+0,        150,        150,        1,   215040, 0xdfcff1e0
+0,        152,        152,        1,   215040, 0xa774d327
+0,        154,        154,        1,   215040, 0x8e9db8c9
+0,        156,        156,        1,   215040, 0xb4fd9689
+0,        158,        158,        1,   215040, 0xa80b77ff
+0,        160,        160,        1,   215040, 0x1d9c6568
+0,        162,        162,        1,   215040, 0x388c515a
+0,        164,        164,        1,   215040, 0x388c515a
+0,        166,        166,        1,   215040, 0x388c515a
+0,        168,        168,        1,   215040, 0x388c515a
+0,        170,        170,        1,   215040, 0x388c515a
+0,        172,        172,        1,   215040, 0x388c515a
+0,        174,        174,        1,   215040, 0x388c515a
+0,        176,        176,        1,   215040, 0x388c515a
+0,        178,        178,        1,   215040, 0x388c515a
+0,        180,        180,        1,   215040, 0x388c515a
+0,        182,        182,        1,   215040, 0x388c515a
+0,        184,        184,        1,   215040, 0x3aef5fee
+0,        186,        186,        1,   215040, 0x3aef5fee
+0,        188,        188,        1,   215040, 0x3aef5fee
+0,        190,        190,        1,   215040, 0x3aef5fee
+0,        192,        192,        1,   215040, 0x7f8e4b62
+0,        194,        194,        1,   215040, 0xbf9fcae8
+0,        196,        196,        1,   215040, 0x02f9a66c
+0,        198,        198,        1,   215040, 0x00ef062f
+0,        200,        200,        1,   215040, 0xe83b132c
+0,        202,        202,        1,   215040, 0x2701d21b
+0,        204,        204,        1,   215040, 0xbea79188
+0,        206,        206,        1,   215040, 0x6f6d3109
+0,        208,        208,        1,   215040, 0x4173f1e8
+0,        210,        210,        1,   215040, 0xd7adfce1
+0,        212,        212,        1,   215040, 0xa3825ffd
+0,        214,        214,        1,   215040, 0x41e63fe4
+0,        216,        216,        1,   215040, 0xb525b9c5
+0,        218,        218,        1,   215040, 0x00000000
-- 
1.5.4




More information about the ffmpeg-devel mailing list