[FFmpeg-devel] [PATCH] zmbv: stop doing colorspace conversion

Paul B Mahol onemda at gmail.com
Sat Mar 2 19:43:38 CET 2013


Signed-off-by: Paul B Mahol <onemda at gmail.com>
---
 libavcodec/zmbv.c         |  78 ++++--------
 tests/ref/fate/zmbv-15bit | 318 +++++++++++++++++++++++-----------------------
 tests/ref/fate/zmbv-16bit | 238 +++++++++++++++++-----------------
 tests/ref/fate/zmbv-32bit | 100 +++++++--------
 4 files changed, 353 insertions(+), 381 deletions(-)

diff --git a/libavcodec/zmbv.c b/libavcodec/zmbv.c
index 03821cd..8dc5f7a 100644
--- a/libavcodec/zmbv.c
+++ b/libavcodec/zmbv.c
@@ -65,6 +65,7 @@ typedef struct ZmbvContext {
     int fmt;
     int comp;
     int flags;
+    int stride;
     int bw, bh, bx, by;
     int decomp_len;
     z_stream zstream;
@@ -410,13 +411,6 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPac
     if (c->pic.data[0])
             avctx->release_buffer(avctx, &c->pic);
 
-    c->pic.reference = 3;
-    c->pic.buffer_hints = FF_BUFFER_HINTS_VALID;
-    if ((ret = ff_get_buffer(avctx, &c->pic)) < 0) {
-        av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
-        return ret;
-    }
-
     /* parse header */
     c->flags = buf[0];
     buf++; len--;
@@ -458,24 +452,35 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPac
             c->bpp = 8;
             decode_intra = zmbv_decode_intra;
             c->decode_xor = zmbv_decode_xor_8;
+            avctx->pix_fmt = AV_PIX_FMT_PAL8;
+            c->stride = c->width;
             break;
         case ZMBV_FMT_15BPP:
         case ZMBV_FMT_16BPP:
             c->bpp = 16;
             decode_intra = zmbv_decode_intra;
             c->decode_xor = zmbv_decode_xor_16;
+            if (c->fmt == ZMBV_FMT_15BPP)
+                avctx->pix_fmt = AV_PIX_FMT_RGB555LE;
+            else
+                avctx->pix_fmt = AV_PIX_FMT_RGB565LE;
+            c->stride = c->width * 2;
             break;
 #ifdef ZMBV_ENABLE_24BPP
         case ZMBV_FMT_24BPP:
             c->bpp = 24;
             decode_intra = zmbv_decode_intra;
             c->decode_xor = zmbv_decode_xor_24;
+            avctx->pix_fmt = AV_PIX_FMT_RGB24;
+            c->stride = c->width * 3;
             break;
 #endif //ZMBV_ENABLE_24BPP
         case ZMBV_FMT_32BPP:
             c->bpp = 32;
             decode_intra = zmbv_decode_intra;
             c->decode_xor = zmbv_decode_xor_32;
+            avctx->pix_fmt = AV_PIX_FMT_RGBA;
+            c->stride = c->width * 4;
             break;
         default:
             c->decode_xor = NULL;
@@ -506,6 +511,13 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPac
         return AVERROR_INVALIDDATA;
     }
 
+    c->pic.reference = 3;
+    c->pic.buffer_hints = FF_BUFFER_HINTS_VALID;
+    if ((ret = ff_get_buffer(avctx, &c->pic)) < 0) {
+        av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
+        return ret;
+    }
+
     if (c->comp == 0) { //Uncompressed data
         if (c->decomp_size < len) {
             av_log(avctx, AV_LOG_ERROR, "decomp buffer too small\n");
@@ -539,62 +551,23 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPac
     /* update frames */
     {
         uint8_t *out, *src;
-        int i, j;
+        int j;
 
         out = c->pic.data[0];
         src = c->cur;
         switch (c->fmt) {
         case ZMBV_FMT_8BPP:
-            for (j = 0; j < c->height; j++) {
-                for (i = 0; i < c->width; i++) {
-                    out[i * 3 + 0] = c->pal[(*src) * 3 + 0];
-                    out[i * 3 + 1] = c->pal[(*src) * 3 + 1];
-                    out[i * 3 + 2] = c->pal[(*src) * 3 + 2];
-                    src++;
-                }
-                out += c->pic.linesize[0];
-            }
-            break;
+            for (j = 0; j < 256; j++)
+                AV_WN32(&c->pic.data[1][j * 4], AV_RB24(&c->pal[j * 3]));
         case ZMBV_FMT_15BPP:
-            for (j = 0; j < c->height; j++) {
-                for (i = 0; i < c->width; i++) {
-                    uint16_t tmp = AV_RL16(src);
-                    src += 2;
-                    out[i * 3 + 0] = (tmp & 0x7C00) >> 7;
-                    out[i * 3 + 1] = (tmp & 0x03E0) >> 2;
-                    out[i * 3 + 2] = (tmp & 0x001F) << 3;
-                }
-                out += c->pic.linesize[0];
-            }
-            break;
         case ZMBV_FMT_16BPP:
-            for (j = 0; j < c->height; j++) {
-                for (i = 0; i < c->width; i++) {
-                    uint16_t tmp = AV_RL16(src);
-                    src += 2;
-                    out[i * 3 + 0] = (tmp & 0xF800) >> 8;
-                    out[i * 3 + 1] = (tmp & 0x07E0) >> 3;
-                    out[i * 3 + 2] = (tmp & 0x001F) << 3;
-                }
-                out += c->pic.linesize[0];
-            }
-            break;
 #ifdef ZMBV_ENABLE_24BPP
         case ZMBV_FMT_24BPP:
-            for (j = 0; j < c->height; j++) {
-                memcpy(out, src, c->width * 3);
-                src += c->width * 3;
-                out += c->pic.linesize[0];
-            }
-            break;
-#endif //ZMBV_ENABLE_24BPP
+#endif
         case ZMBV_FMT_32BPP:
             for (j = 0; j < c->height; j++) {
-                for (i = 0; i < c->width; i++) {
-                    uint32_t tmp = AV_RL32(src);
-                    src += 4;
-                    AV_WB24(out+(i*3), tmp);
-                }
+                memcpy(out, src, c->stride);
+                src += c->stride;
                 out += c->pic.linesize[0];
             }
             break;
@@ -626,7 +599,6 @@ static av_cold int decode_init(AVCodecContext *avctx)
     // Needed if zlib unused or init aborted before inflateInit
     memset(&c->zstream, 0, sizeof(z_stream));
 
-    avctx->pix_fmt = AV_PIX_FMT_RGB24;
     c->decomp_size = (avctx->width + 255) * 4 * (avctx->height + 64);
 
     /* Allocate decompression buffer */
diff --git a/tests/ref/fate/zmbv-15bit b/tests/ref/fate/zmbv-15bit
index f054a9d..384bb65 100644
--- a/tests/ref/fate/zmbv-15bit
+++ b/tests/ref/fate/zmbv-15bit
@@ -1,160 +1,160 @@
 #tb 0: 250000/1585341
-0,          0,          0,        1,   192000, 0xe1d317d6
-0,          1,          1,        1,   192000, 0xe100109d
-0,          2,          2,        1,   192000, 0xecc69c65
-0,          3,          3,        1,   192000, 0x68f06324
-0,          4,          4,        1,   192000, 0x68f06324
-0,          5,          5,        1,   192000, 0x68f06324
-0,          6,          6,        1,   192000, 0x68f06324
-0,          7,          7,        1,   192000, 0x68f06324
-0,          8,          8,        1,   192000, 0x68f06324
-0,          9,          9,        1,   192000, 0x68f06324
-0,         10,         10,        1,   192000, 0x68f06324
-0,         11,         11,        1,   192000, 0x68f06324
-0,         12,         12,        1,   192000, 0x68f06324
-0,         13,         13,        1,   192000, 0x68f06324
-0,         14,         14,        1,   192000, 0x68f06324
-0,         15,         15,        1,   192000, 0x68f06324
-0,         16,         16,        1,   192000, 0x68f06324
-0,         17,         17,        1,   192000, 0x4c03d2e3
-0,         18,         18,        1,   192000, 0x4c03d2e3
-0,         19,         19,        1,   192000, 0x4c03d2e3
-0,         20,         20,        1,   192000, 0x4c03d2e3
-0,         21,         21,        1,   192000, 0xb562cf68
-0,         22,         22,        1,   192000, 0xb562cf68
-0,         23,         23,        1,   192000, 0xb562cf68
-0,         24,         24,        1,   192000, 0xb562cf68
-0,         25,         25,        1,   192000, 0xb562cf68
-0,         26,         26,        1,   192000, 0x0e5e03c7
-0,         27,         27,        1,   192000, 0x0e5e03c7
-0,         28,         28,        1,   192000, 0x0e5e03c7
-0,         29,         29,        1,   192000, 0x0e5e03c7
-0,         30,         30,        1,   192000, 0xeb2e0f67
-0,         31,         31,        1,   192000, 0xeb2e0f67
-0,         32,         32,        1,   192000, 0xeb2e0f67
-0,         33,         33,        1,   192000, 0xeb2e0f67
-0,         34,         34,        1,   192000, 0xeb2e0f67
-0,         35,         35,        1,   192000, 0xdce603c7
-0,         36,         36,        1,   192000, 0xdce603c7
-0,         37,         37,        1,   192000, 0xdce603c7
-0,         38,         38,        1,   192000, 0xdce603c7
-0,         39,         39,        1,   192000, 0xa8e7db08
-0,         40,         40,        1,   192000, 0xa8e7db08
-0,         41,         41,        1,   192000, 0xa8e7db08
-0,         42,         42,        1,   192000, 0xa8e7db08
-0,         43,         43,        1,   192000, 0xa8e7db08
-0,         44,         44,        1,   192000, 0x322a1b07
-0,         45,         45,        1,   192000, 0x322a1b07
-0,         46,         46,        1,   192000, 0x322a1b07
-0,         47,         47,        1,   192000, 0x322a1b07
-0,         48,         48,        1,   192000, 0x743206af
-0,         49,         49,        1,   192000, 0x743206af
-0,         50,         50,        1,   192000, 0x743206af
-0,         51,         51,        1,   192000, 0x743206af
-0,         52,         52,        1,   192000, 0x743206af
-0,         53,         53,        1,   192000, 0x50195ddf
-0,         54,         54,        1,   192000, 0x50195ddf
-0,         55,         55,        1,   192000, 0x50195ddf
-0,         56,         56,        1,   192000, 0x50195ddf
-0,         57,         57,        1,   192000, 0xd31620d7
-0,         58,         58,        1,   192000, 0xd31620d7
-0,         59,         59,        1,   192000, 0xd31620d7
-0,         60,         60,        1,   192000, 0xd31620d7
-0,         61,         61,        1,   192000, 0xd31620d7
-0,         62,         62,        1,   192000, 0x3af023bf
-0,         63,         63,        1,   192000, 0x3af023bf
-0,         64,         64,        1,   192000, 0x3af023bf
-0,         65,         65,        1,   192000, 0x3af023bf
-0,         66,         66,        1,   192000, 0x561a124f
-0,         67,         67,        1,   192000, 0x561a124f
-0,         68,         68,        1,   192000, 0x561a124f
-0,         69,         69,        1,   192000, 0x561a124f
-0,         70,         70,        1,   192000, 0x561a124f
-0,         71,         71,        1,   192000, 0x99210c7f
-0,         72,         72,        1,   192000, 0x99210c7f
-0,         73,         73,        1,   192000, 0x99210c7f
-0,         74,         74,        1,   192000, 0x99210c7f
-0,         75,         75,        1,   192000, 0xc77b03c7
-0,         76,         76,        1,   192000, 0xc77b03c7
-0,         77,         77,        1,   192000, 0xc77b03c7
-0,         78,         78,        1,   192000, 0xc77b03c7
-0,         79,         79,        1,   192000, 0xc77b03c7
-0,         80,         80,        1,   192000, 0x83ea7550
-0,         81,         81,        1,   192000, 0xec285270
-0,         82,         82,        1,   192000, 0x0e075558
-0,         83,         83,        1,   192000, 0x880c2108
-0,         84,         84,        1,   192000, 0x40c523f0
-0,         85,         85,        1,   192000, 0x01378f78
-0,         86,         86,        1,   192000, 0x42045558
-0,         87,         87,        1,   192000, 0xde8f3278
-0,         88,         88,        1,   192000, 0xa58c0110
-0,         89,         89,        1,   192000, 0x335ea9d1
-0,         90,         90,        1,   192000, 0x7e94bb41
-0,         91,         91,        1,   192000, 0x9cc5d569
-0,         92,         92,        1,   192000, 0xe942e109
-0,         93,         93,        1,   192000, 0x4cb83848
-0,         94,         94,        1,   192000, 0x6986fe19
-0,         95,         95,        1,   192000, 0xbb8c23f0
-0,         96,         96,        1,   192000, 0x296766c8
-0,         97,         97,        1,   192000, 0xb4230cb0
-0,         98,         98,        1,   192000, 0x2c2f1850
-0,         99,         99,        1,   192000, 0x93c70110
-0,        100,        100,        1,   192000, 0xb830a9d1
-0,        101,        101,        1,   192000, 0xbed48fa9
-0,        102,        102,        1,   192000, 0xc087bb41
-0,        103,        103,        1,   192000, 0x792de6d9
-0,        104,        104,        1,   192000, 0x1edaf849
-0,        105,        105,        1,   192000, 0x6564bb41
-0,        106,        106,        1,   192000, 0x9153d569
-0,        107,        107,        1,   192000, 0xe73ff561
-0,        108,        108,        1,   192000, 0xfa3be3f1
-0,        109,        109,        1,   192000, 0x8008fe19
-0,        110,        110,        1,   192000, 0xd2561b38
-0,        111,        111,        1,   192000, 0xae3c26d8
-0,        112,        112,        1,   192000, 0xb0114f88
-0,        113,        113,        1,   192000, 0x117e1e20
-0,        114,        114,        1,   192000, 0x482d1280
-0,        115,        115,        1,   192000, 0x425106e0
-0,        116,        116,        1,   192000, 0x0e6b0cb0
-0,        117,        117,        1,   192000, 0x95dc2ca8
-0,        118,        118,        1,   192000, 0x52097b20
-0,        119,        119,        1,   192000, 0x41a84f88
-0,        120,        120,        1,   192000, 0xb78d7268
-0,        121,        121,        1,   192000, 0x2cd366c8
-0,        122,        122,        1,   192000, 0xbf39e109
-0,        123,        123,        1,   192000, 0xecbaeca9
-0,        124,        124,        1,   192000, 0x3254eca9
-0,        125,        125,        1,   192000, 0x3fc903f8
-0,        126,        126,        1,   192000, 0x0bbc5e10
-0,        127,        127,        1,   192000, 0xe9103560
-0,        128,        128,        1,   192000, 0xbd5d2f90
-0,        129,        129,        1,   192000, 0x7ace2ca8
-0,        130,        130,        1,   192000, 0x7354c6e1
-0,        131,        131,        1,   192000, 0x72e0d569
-0,        132,        132,        1,   192000, 0xa4ade3f1
-0,        133,        133,        1,   192000, 0xf2f8cf99
-0,        134,        134,        1,   192000, 0x2b7ee6d9
-0,        135,        135,        1,   192000, 0x548d1b38
-0,        136,        136,        1,   192000, 0xa1551b38
-0,        137,        137,        1,   192000, 0xfb3e3560
-0,        138,        138,        1,   192000, 0x3aaaccb1
-0,        139,        139,        1,   192000, 0xa85ee109
-0,        140,        140,        1,   192000, 0xc1bff849
-0,        141,        141,        1,   192000, 0xa62bef91
-0,        142,        142,        1,   192000, 0xddf40cb0
-0,        143,        143,        1,   192000, 0x15bb3e18
-0,        144,        144,        1,   192000, 0x92fd5558
-0,        145,        145,        1,   192000, 0x2d365270
-0,        146,        146,        1,   192000, 0xb5f343e8
-0,        147,        147,        1,   192000, 0x93042108
-0,        148,        148,        1,   192000, 0x96d59830
-0,        149,        149,        1,   192000, 0x1f69ddf0
-0,        150,        150,        1,   192000, 0x8eb0124f
-0,        151,        151,        1,   192000, 0xae727dd7
-0,        152,        152,        1,   192000, 0xb8a63aff
-0,        153,        153,        1,   192000, 0xfae83de7
-0,        154,        154,        1,   192000, 0x2f034987
-0,        155,        155,        1,   192000, 0xa99e1537
-0,        156,        156,        1,   192000, 0x0ad70c7f
-0,        157,        157,        1,   192000, 0x74b3e990
-0,        158,        158,        1,   192000, 0x1bf0d250
+0,          0,          0,        1,   192000, 0x8f9020f2
+0,          1,          1,        1,   192000, 0xbfba7f63
+0,          2,          2,        1,   192000, 0x96b48d11
+0,          3,          3,        1,   192000, 0xf91727d5
+0,          4,          4,        1,   192000, 0xf91727d5
+0,          5,          5,        1,   192000, 0xf91727d5
+0,          6,          6,        1,   192000, 0xf91727d5
+0,          7,          7,        1,   192000, 0xf91727d5
+0,          8,          8,        1,   192000, 0xf91727d5
+0,          9,          9,        1,   192000, 0xf91727d5
+0,         10,         10,        1,   192000, 0xf91727d5
+0,         11,         11,        1,   192000, 0xf91727d5
+0,         12,         12,        1,   192000, 0xf91727d5
+0,         13,         13,        1,   192000, 0xf91727d5
+0,         14,         14,        1,   192000, 0xf91727d5
+0,         15,         15,        1,   192000, 0xf91727d5
+0,         16,         16,        1,   192000, 0xf91727d5
+0,         17,         17,        1,   192000, 0x61c4e431
+0,         18,         18,        1,   192000, 0x61c4e431
+0,         19,         19,        1,   192000, 0x61c4e431
+0,         20,         20,        1,   192000, 0x61c4e431
+0,         21,         21,        1,   192000, 0x1fb3f649
+0,         22,         22,        1,   192000, 0x1fb3f649
+0,         23,         23,        1,   192000, 0x1fb3f649
+0,         24,         24,        1,   192000, 0x1fb3f649
+0,         25,         25,        1,   192000, 0x1fb3f649
+0,         26,         26,        1,   192000, 0x14f72c22
+0,         27,         27,        1,   192000, 0x14f72c22
+0,         28,         28,        1,   192000, 0x14f72c22
+0,         29,         29,        1,   192000, 0x14f72c22
+0,         30,         30,        1,   192000, 0x8cae3816
+0,         31,         31,        1,   192000, 0x8cae3816
+0,         32,         32,        1,   192000, 0x8cae3816
+0,         33,         33,        1,   192000, 0x8cae3816
+0,         34,         34,        1,   192000, 0x8cae3816
+0,         35,         35,        1,   192000, 0x2b6f2c22
+0,         36,         36,        1,   192000, 0x2b6f2c22
+0,         37,         37,        1,   192000, 0x2b6f2c22
+0,         38,         38,        1,   192000, 0x2b6f2c22
+0,         39,         39,        1,   192000, 0xc568024c
+0,         40,         40,        1,   192000, 0xc568024c
+0,         41,         41,        1,   192000, 0xc568024c
+0,         42,         42,        1,   192000, 0xc568024c
+0,         43,         43,        1,   192000, 0xc568024c
+0,         44,         44,        1,   192000, 0xa93b440a
+0,         45,         45,        1,   192000, 0xa93b440a
+0,         46,         46,        1,   192000, 0xa93b440a
+0,         47,         47,        1,   192000, 0xa93b440a
+0,         48,         48,        1,   192000, 0x798a2f1f
+0,         49,         49,        1,   192000, 0x798a2f1f
+0,         50,         50,        1,   192000, 0x798a2f1f
+0,         51,         51,        1,   192000, 0x798a2f1f
+0,         52,         52,        1,   192000, 0x798a2f1f
+0,         53,         53,        1,   192000, 0xf04288c5
+0,         54,         54,        1,   192000, 0xf04288c5
+0,         55,         55,        1,   192000, 0xf04288c5
+0,         56,         56,        1,   192000, 0xf04288c5
+0,         57,         57,        1,   192000, 0x4aa04a04
+0,         58,         58,        1,   192000, 0x4aa04a04
+0,         59,         59,        1,   192000, 0x4aa04a04
+0,         60,         60,        1,   192000, 0x4aa04a04
+0,         61,         61,        1,   192000, 0x4aa04a04
+0,         62,         62,        1,   192000, 0xb0304d01
+0,         63,         63,        1,   192000, 0xb0304d01
+0,         64,         64,        1,   192000, 0xb0304d01
+0,         65,         65,        1,   192000, 0xb0304d01
+0,         66,         66,        1,   192000, 0xef353b13
+0,         67,         67,        1,   192000, 0xef353b13
+0,         68,         68,        1,   192000, 0xef353b13
+0,         69,         69,        1,   192000, 0xef353b13
+0,         70,         70,        1,   192000, 0xef353b13
+0,         71,         71,        1,   192000, 0xbf823519
+0,         72,         72,        1,   192000, 0xbf823519
+0,         73,         73,        1,   192000, 0xbf823519
+0,         74,         74,        1,   192000, 0xbf823519
+0,         75,         75,        1,   192000, 0xd0352c22
+0,         76,         76,        1,   192000, 0xd0352c22
+0,         77,         77,        1,   192000, 0xd0352c22
+0,         78,         78,        1,   192000, 0xd0352c22
+0,         79,         79,        1,   192000, 0xd0352c22
+0,         80,         80,        1,   192000, 0x817299a6
+0,         81,         81,        1,   192000, 0xfb1475ca
+0,         82,         82,        1,   192000, 0xfcd278c7
+0,         83,         83,        1,   192000, 0xa08742fd
+0,         84,         84,        1,   192000, 0x47c245fa
+0,         85,         85,        1,   192000, 0xf7e7b48b
+0,         86,         86,        1,   192000, 0xf56378c7
+0,         87,         87,        1,   192000, 0x80bc54eb
+0,         88,         88,        1,   192000, 0xae59221e
+0,         89,         89,        1,   192000, 0x7d0fc869
+0,         90,         90,        1,   192000, 0x8e89da57
+0,         91,         91,        1,   192000, 0xf0a9f53c
+0,         92,         92,        1,   192000, 0x658d013f
+0,         93,         93,        1,   192000, 0x90ef5ae5
+0,         94,         94,        1,   192000, 0x93b81f21
+0,         95,         95,        1,   192000, 0x61e545fa
+0,         96,         96,        1,   192000, 0xc6688ab5
+0,         97,         97,        1,   192000, 0x72032e12
+0,         98,         98,        1,   192000, 0xf28c3a06
+0,         99,         99,        1,   192000, 0xf1bc221e
+0,        100,        100,        1,   192000, 0x941bc869
+0,        101,        101,        1,   192000, 0xe95ead84
+0,        102,        102,        1,   192000, 0x61dbda57
+0,        103,        103,        1,   192000, 0x79800739
+0,        104,        104,        1,   192000, 0x00c31927
+0,        105,        105,        1,   192000, 0x74a3da57
+0,        106,        106,        1,   192000, 0xb98cf53c
+0,        107,        107,        1,   192000, 0xd3f9162a
+0,        108,        108,        1,   192000, 0x888c043c
+0,        109,        109,        1,   192000, 0x100f1f21
+0,        110,        110,        1,   192000, 0x41993d03
+0,        111,        111,        1,   192000, 0x01a548f7
+0,        112,        112,        1,   192000, 0xbe5372cd
+0,        113,        113,        1,   192000, 0x0fec4000
+0,        114,        114,        1,   192000, 0x80e9340c
+0,        115,        115,        1,   192000, 0xea582818
+0,        116,        116,        1,   192000, 0x5c3a2e12
+0,        117,        117,        1,   192000, 0x5c2b4ef1
+0,        118,        118,        1,   192000, 0xf2409fa0
+0,        119,        119,        1,   192000, 0x4bc472cd
+0,        120,        120,        1,   192000, 0x3dcb96a9
+0,        121,        121,        1,   192000, 0xff978ab5
+0,        122,        122,        1,   192000, 0xff72013f
+0,        123,        123,        1,   192000, 0x2f530d33
+0,        124,        124,        1,   192000, 0xa3350d33
+0,        125,        125,        1,   192000, 0x6be6251b
+0,        126,        126,        1,   192000, 0x07f081be
+0,        127,        127,        1,   192000, 0xb5d957e8
+0,        128,        128,        1,   192000, 0x43c551ee
+0,        129,        129,        1,   192000, 0x19224ef1
+0,        130,        130,        1,   192000, 0x0720e64b
+0,        131,        131,        1,   192000, 0x3c53f53c
+0,        132,        132,        1,   192000, 0x8534043c
+0,        133,        133,        1,   192000, 0xb7c7ef42
+0,        134,        134,        1,   192000, 0x9e3e0739
+0,        135,        135,        1,   192000, 0x95e43d03
+0,        136,        136,        1,   192000, 0x92473d03
+0,        137,        137,        1,   192000, 0x636757e8
+0,        138,        138,        1,   192000, 0xba3aec45
+0,        139,        139,        1,   192000, 0xfd9e013f
+0,        140,        140,        1,   192000, 0x108c1927
+0,        141,        141,        1,   192000, 0x29db1030
+0,        142,        142,        1,   192000, 0xe0172e12
+0,        143,        143,        1,   192000, 0x744260df
+0,        144,        144,        1,   192000, 0xc59478c7
+0,        145,        145,        1,   192000, 0xa84475ca
+0,        146,        146,        1,   192000, 0x9d2866d9
+0,        147,        147,        1,   192000, 0xc49342fd
+0,        148,        148,        1,   192000, 0x13e5bd82
+0,        149,        149,        1,   192000, 0x10d10549
+0,        150,        150,        1,   192000, 0xf5ca3b13
+0,        151,        151,        1,   192000, 0x8c27a9a4
+0,        152,        152,        1,   192000, 0xcc4f64e9
+0,        153,        153,        1,   192000, 0x020c67e6
+0,        154,        154,        1,   192000, 0xaf4773da
+0,        155,        155,        1,   192000, 0x62093e10
+0,        156,        156,        1,   192000, 0x96783519
+0,        157,        157,        1,   192000, 0x8b9a113d
+0,        158,        158,        1,   192000, 0x9050f946
diff --git a/tests/ref/fate/zmbv-16bit b/tests/ref/fate/zmbv-16bit
index b0c3df5..cb39014 100644
--- a/tests/ref/fate/zmbv-16bit
+++ b/tests/ref/fate/zmbv-16bit
@@ -1,123 +1,123 @@
 #tb 0: 250000/1585341
-0,          0,          0,        1,   192000, 0x11e62dbe
-0,          1,          1,        1,   192000, 0x31698b8f
-0,          2,          2,        1,   192000, 0x31698b8f
-0,          3,          3,        1,   192000, 0x31698b8f
-0,          4,          4,        1,   192000, 0x31698b8f
-0,          5,          5,        1,   192000, 0x31698b8f
-0,          6,          6,        1,   192000, 0x31698b8f
-0,          7,          7,        1,   192000, 0x31698b8f
-0,          8,          8,        1,   192000, 0x31698b8f
-0,          9,          9,        1,   192000, 0x31698b8f
-0,         10,         10,        1,   192000, 0x31698b8f
-0,         11,         11,        1,   192000, 0x31698b8f
-0,         12,         12,        1,   192000, 0x31698b8f
-0,         13,         13,        1,   192000, 0x4ca609ea
-0,         14,         14,        1,   192000, 0x4ca609ea
-0,         15,         15,        1,   192000, 0x4ca609ea
-0,         16,         16,        1,   192000, 0x4ca609ea
-0,         17,         17,        1,   192000, 0x33dd0a8b
-0,         18,         18,        1,   192000, 0x33dd0a8b
-0,         19,         19,        1,   192000, 0x33dd0a8b
-0,         20,         20,        1,   192000, 0x33dd0a8b
-0,         21,         21,        1,   192000, 0x33dd0a8b
-0,         22,         22,        1,   192000, 0x08e2420f
-0,         23,         23,        1,   192000, 0x08e2420f
-0,         24,         24,        1,   192000, 0x08e2420f
-0,         25,         25,        1,   192000, 0x08e2420f
-0,         26,         26,        1,   192000, 0x7b7b50ab
-0,         27,         27,        1,   192000, 0x7b7b50ab
-0,         28,         28,        1,   192000, 0x7b7b50ab
-0,         29,         29,        1,   192000, 0x7b7b50ab
-0,         30,         30,        1,   192000, 0x7b7b50ab
-0,         31,         31,        1,   192000, 0x128744fb
-0,         32,         32,        1,   192000, 0x128744fb
-0,         33,         33,        1,   192000, 0x128744fb
-0,         34,         34,        1,   192000, 0x128744fb
-0,         35,         35,        1,   192000, 0x8643163b
-0,         36,         36,        1,   192000, 0x8643163b
-0,         37,         37,        1,   192000, 0x8643163b
-0,         38,         38,        1,   192000, 0x8643163b
-0,         39,         39,        1,   192000, 0x8643163b
-0,         40,         40,        1,   192000, 0x4f7c596f
-0,         41,         41,        1,   192000, 0x4f7c596f
-0,         42,         42,        1,   192000, 0x4f7c596f
-0,         43,         43,        1,   192000, 0x4f7c596f
-0,         44,         44,        1,   192000, 0xa275420f
-0,         45,         45,        1,   192000, 0xa275420f
-0,         46,         46,        1,   192000, 0xa275420f
-0,         47,         47,        1,   192000, 0xa275420f
-0,         48,         48,        1,   192000, 0xa275420f
-0,         49,         49,        1,   192000, 0x2e4796cb
-0,         50,         50,        1,   192000, 0x2e4796cb
-0,         51,         51,        1,   192000, 0x2e4796cb
-0,         52,         52,        1,   192000, 0x2e4796cb
-0,         53,         53,        1,   192000, 0xebd45683
-0,         54,         54,        1,   192000, 0xebd45683
-0,         55,         55,        1,   192000, 0xebd45683
-0,         56,         56,        1,   192000, 0xebd45683
-0,         57,         57,        1,   192000, 0xebd45683
-0,         58,         58,        1,   192000, 0x0bf6596f
-0,         59,         59,        1,   192000, 0x0bf6596f
-0,         60,         60,        1,   192000, 0x0bf6596f
-0,         61,         61,        1,   192000, 0x0bf6596f
-0,         62,         62,        1,   192000, 0xb7af47e7
-0,         63,         63,        1,   192000, 0xb7af47e7
-0,         64,         64,        1,   192000, 0xb7af47e7
-0,         65,         65,        1,   192000, 0xb7af47e7
-0,         66,         66,        1,   192000, 0xb7af47e7
-0,         67,         67,        1,   192000, 0x8bc344fb
-0,         68,         68,        1,   192000, 0x8bc344fb
-0,         69,         69,        1,   192000, 0x8bc344fb
-0,         70,         70,        1,   192000, 0x8bc344fb
-0,         71,         71,        1,   192000, 0x8bc344fb
-0,         72,         72,        1,   192000, 0x02a23f23
-0,         73,         73,        1,   192000, 0x02a23f23
-0,         74,         74,        1,   192000, 0x02a23f23
-0,         75,         75,        1,   192000, 0x02a23f23
-0,         76,         76,        1,   192000, 0x17be3087
-0,         77,         77,        1,   192000, 0x52c7b2d4
-0,         78,         78,        1,   192000, 0xa05e9888
-0,         79,         79,        1,   192000, 0x4d6a6cb4
-0,         80,         80,        1,   192000, 0x3e2189ec
-0,         81,         81,        1,   192000, 0xfbe3ca34
-0,         82,         82,        1,   192000, 0xa9cd8fc4
-0,         83,         83,        1,   192000, 0x986e6cb4
-0,         84,         84,        1,   192000, 0x42373b08
-0,         85,         85,        1,   192000, 0xab96e351
-0,         86,         86,        1,   192000, 0x28ccf4d9
-0,         87,         87,        1,   192000, 0xc19e0f34
-0,         88,         88,        1,   192000, 0xd8da1ae4
-0,         89,         89,        1,   192000, 0xd015728c
-0,         90,         90,        1,   192000, 0x550623a8
-0,         91,         91,        1,   192000, 0x3c5c5268
-0,         92,         92,        1,   192000, 0x3eae8128
-0,         93,         93,        1,   192000, 0x3c51381c
-0,         94,         94,        1,   192000, 0x745046b8
-0,         95,         95,        1,   192000, 0xa8bd43cc
-0,         96,         96,        1,   192000, 0xde8fe351
-0,         97,         97,        1,   192000, 0x3d5cc905
-0,         98,         98,        1,   192000, 0xcf8df4d9
-0,         99,         99,        1,   192000, 0x698b20bc
-0,        100,        100,        1,   192000, 0x159d3244
-0,        101,        101,        1,   192000, 0xba1af4d9
-0,        102,        102,        1,   192000, 0x033a0f34
-0,        103,        103,        1,   192000, 0x72612f58
-0,        104,        104,        1,   192000, 0x11e11dd0
-0,        105,        105,        1,   192000, 0x4fc04f7c
-0,        106,        106,        1,   192000, 0x37779888
-0,        107,        107,        1,   192000, 0xabfc5e18
-0,        108,        108,        1,   192000, 0x0ad97e3c
-0,        109,        109,        1,   192000, 0xddf492b0
-0,        110,        110,        1,   192000, 0x198b23a8
-0,        111,        111,        1,   192000, 0x6b491220
-0,        112,        112,        1,   192000, 0x632417f8
-0,        113,        113,        1,   192000, 0x0dc5381c
-0,        114,        114,        1,   192000, 0x6d548700
-0,        115,        115,        1,   192000, 0xae0c5b2c
-0,        116,        116,        1,   192000, 0x23427e3c
-0,        117,        117,        1,   192000, 0x5def728c
-0,        118,        118,        1,   192000, 0xec831ae4
+0,          0,          0,        1,   192000, 0xe869dc94
+0,          1,          1,        1,   192000, 0x742932f2
+0,          2,          2,        1,   192000, 0x742932f2
+0,          3,          3,        1,   192000, 0x742932f2
+0,          4,          4,        1,   192000, 0x742932f2
+0,          5,          5,        1,   192000, 0x742932f2
+0,          6,          6,        1,   192000, 0x742932f2
+0,          7,          7,        1,   192000, 0x742932f2
+0,          8,          8,        1,   192000, 0x742932f2
+0,          9,          9,        1,   192000, 0x742932f2
+0,         10,         10,        1,   192000, 0x742932f2
+0,         11,         11,        1,   192000, 0x742932f2
+0,         12,         12,        1,   192000, 0x742932f2
+0,         13,         13,        1,   192000, 0xb718e72e
+0,         14,         14,        1,   192000, 0xb718e72e
+0,         15,         15,        1,   192000, 0xb718e72e
+0,         16,         16,        1,   192000, 0xb718e72e
+0,         17,         17,        1,   192000, 0x7507f946
+0,         18,         18,        1,   192000, 0x7507f946
+0,         19,         19,        1,   192000, 0x7507f946
+0,         20,         20,        1,   192000, 0x7507f946
+0,         21,         21,        1,   192000, 0x7507f946
+0,         22,         22,        1,   192000, 0xe620321c
+0,         23,         23,        1,   192000, 0xe620321c
+0,         24,         24,        1,   192000, 0xe620321c
+0,         25,         25,        1,   192000, 0xe620321c
+0,         26,         26,        1,   192000, 0x9b5f410d
+0,         27,         27,        1,   192000, 0x9b5f410d
+0,         28,         28,        1,   192000, 0x9b5f410d
+0,         29,         29,        1,   192000, 0x9b5f410d
+0,         30,         30,        1,   192000, 0x9b5f410d
+0,         31,         31,        1,   192000, 0xea2c3519
+0,         32,         32,        1,   192000, 0xea2c3519
+0,         33,         33,        1,   192000, 0xea2c3519
+0,         34,         34,        1,   192000, 0xea2c3519
+0,         35,         35,        1,   192000, 0x1acb0549
+0,         36,         36,        1,   192000, 0x1acb0549
+0,         37,         37,        1,   192000, 0x1acb0549
+0,         38,         38,        1,   192000, 0x1acb0549
+0,         39,         39,        1,   192000, 0x1acb0549
+0,         40,         40,        1,   192000, 0x3a064a04
+0,         41,         41,        1,   192000, 0x3a064a04
+0,         42,         42,        1,   192000, 0x3a064a04
+0,         43,         43,        1,   192000, 0x3a064a04
+0,         44,         44,        1,   192000, 0xcede321c
+0,         45,         45,        1,   192000, 0xcede321c
+0,         46,         46,        1,   192000, 0xcede321c
+0,         47,         47,        1,   192000, 0xcede321c
+0,         48,         48,        1,   192000, 0xcede321c
+0,         49,         49,        1,   192000, 0xef4988c5
+0,         50,         50,        1,   192000, 0xef4988c5
+0,         51,         51,        1,   192000, 0xef4988c5
+0,         52,         52,        1,   192000, 0xef4988c5
+0,         53,         53,        1,   192000, 0x1fc84707
+0,         54,         54,        1,   192000, 0x1fc84707
+0,         55,         55,        1,   192000, 0x1fc84707
+0,         56,         56,        1,   192000, 0x1fc84707
+0,         57,         57,        1,   192000, 0x1fc84707
+0,         58,         58,        1,   192000, 0xbabd4a04
+0,         59,         59,        1,   192000, 0xbabd4a04
+0,         60,         60,        1,   192000, 0xbabd4a04
+0,         61,         61,        1,   192000, 0xbabd4a04
+0,         62,         62,        1,   192000, 0x649b3816
+0,         63,         63,        1,   192000, 0x649b3816
+0,         64,         64,        1,   192000, 0x649b3816
+0,         65,         65,        1,   192000, 0x649b3816
+0,         66,         66,        1,   192000, 0x649b3816
+0,         67,         67,        1,   192000, 0x206b3519
+0,         68,         68,        1,   192000, 0x206b3519
+0,         69,         69,        1,   192000, 0x206b3519
+0,         70,         70,        1,   192000, 0x206b3519
+0,         71,         71,        1,   192000, 0x206b3519
+0,         72,         72,        1,   192000, 0x25982f1f
+0,         73,         73,        1,   192000, 0x25982f1f
+0,         74,         74,        1,   192000, 0x25982f1f
+0,         75,         75,        1,   192000, 0x25982f1f
+0,         76,         76,        1,   192000, 0xde0e202e
+0,         77,         77,        1,   192000, 0xced09fa0
+0,         78,         78,        1,   192000, 0x3b4f84bb
+0,         79,         79,        1,   192000, 0xa09c57e8
+0,         80,         80,        1,   192000, 0xf3dd75ca
+0,         81,         81,        1,   192000, 0x4d4ab788
+0,         82,         82,        1,   192000, 0x4ac67bc4
+0,         83,         83,        1,   192000, 0xd61057e8
+0,         84,         84,        1,   192000, 0x03bc251b
+0,         85,         85,        1,   192000, 0xd263cb66
+0,         86,         86,        1,   192000, 0xe3dddd54
+0,         87,         87,        1,   192000, 0x460cf839
+0,         88,         88,        1,   192000, 0xbae1043c
+0,         89,         89,        1,   192000, 0xe6435de2
+0,         90,         90,        1,   192000, 0x340e0d33
+0,         91,         91,        1,   192000, 0x9acd3d03
+0,         92,         92,        1,   192000, 0x1d346cd3
+0,         93,         93,        1,   192000, 0xdabe221e
+0,         94,         94,        1,   192000, 0xeb4b310f
+0,         95,         95,        1,   192000, 0xec8f2e12
+0,         96,         96,        1,   192000, 0xe96fcb66
+0,         97,         97,        1,   192000, 0x3ec1b081
+0,         98,         98,        1,   192000, 0xb72fdd54
+0,         99,         99,        1,   192000, 0xced40a36
+0,        100,        100,        1,   192000, 0x56171c24
+0,        101,        101,        1,   192000, 0xc9f7dd54
+0,        102,        102,        1,   192000, 0x0eeff839
+0,        103,        103,        1,   192000, 0x295c1927
+0,        104,        104,        1,   192000, 0xdde00739
+0,        105,        105,        1,   192000, 0x51903a06
+0,        106,        106,        1,   192000, 0xe16a84bb
+0,        107,        107,        1,   192000, 0xf5b248f7
+0,        108,        108,        1,   192000, 0x054769d6
+0,        109,        109,        1,   192000, 0x9d327ec1
+0,        110,        110,        1,   192000, 0x94470d33
+0,        111,        111,        1,   192000, 0x9671fb36
+0,        112,        112,        1,   192000, 0x0853013f
+0,        113,        113,        1,   192000, 0x0844221e
+0,        114,        114,        1,   192000, 0x9e5972cd
+0,        115,        115,        1,   192000, 0xf7ce45fa
+0,        116,        116,        1,   192000, 0xe9d569d6
+0,        117,        117,        1,   192000, 0xabb05de2
+0,        118,        118,        1,   192000, 0x54d5043c
 0,        119,        119,        1,   192000, 0x00000000
 0,        120,        120,        1,   192000, 0x00000000
 0,        121,        121,        1,   192000, 0x00000000
diff --git a/tests/ref/fate/zmbv-32bit b/tests/ref/fate/zmbv-32bit
index e1df123..62ce651 100644
--- a/tests/ref/fate/zmbv-32bit
+++ b/tests/ref/fate/zmbv-32bit
@@ -1,19 +1,19 @@
 #tb 0: 250000/1585341
-0,          0,          0,        1,   192000, 0x3ac10e8e
-0,          1,          1,        1,   192000, 0xb772ee57
-0,          2,          2,        1,   192000, 0x9b6e648a
-0,          3,          3,        1,   192000, 0x3d9c33e3
-0,          4,          4,        1,   192000, 0x006db76d
-0,          5,          5,        1,   192000, 0x006db76d
-0,          6,          6,        1,   192000, 0x006db76d
-0,          7,          7,        1,   192000, 0x006db76d
-0,          8,          8,        1,   192000, 0x006db76d
-0,          9,          9,        1,   192000, 0x006db76d
-0,         10,         10,        1,   192000, 0x006db76d
-0,         11,         11,        1,   192000, 0x006db76d
-0,         12,         12,        1,   192000, 0x006db76d
-0,         13,         13,        1,   192000, 0x006db76d
-0,         14,         14,        1,   192000, 0x006db76d
+0,          0,          0,        1,   192000, 0x555e0e8e
+0,          1,          1,        1,   192000, 0xe711ee57
+0,          2,          2,        1,   192000, 0xe446648a
+0,          3,          3,        1,   192000, 0x0fe233e3
+0,          4,          4,        1,   192000, 0x90e4b76d
+0,          5,          5,        1,   192000, 0x90e4b76d
+0,          6,          6,        1,   192000, 0x90e4b76d
+0,          7,          7,        1,   192000, 0x90e4b76d
+0,          8,          8,        1,   192000, 0x90e4b76d
+0,          9,          9,        1,   192000, 0x90e4b76d
+0,         10,         10,        1,   192000, 0x90e4b76d
+0,         11,         11,        1,   192000, 0x90e4b76d
+0,         12,         12,        1,   192000, 0x90e4b76d
+0,         13,         13,        1,   192000, 0x90e4b76d
+0,         14,         14,        1,   192000, 0x90e4b76d
 0,         15,         15,        1,   192000, 0x7b9b28fb
 0,         16,         16,        1,   192000, 0x7b9b28fb
 0,         17,         17,        1,   192000, 0x7b9b28fb
@@ -123,38 +123,38 @@
 0,        121,        121,        1,   192000, 0xfac56cd3
 0,        122,        122,        1,   192000, 0x00000000
 0,        123,        123,        1,   192000, 0x00000000
-0,        124,        124,        1,   192000, 0xc61c026a
-0,        125,        125,        1,   192000, 0x60810842
-0,        126,        126,        1,   192000, 0x65081393
-0,        127,        127,        1,   192000, 0xc806209f
-0,        128,        128,        1,   192000, 0x53aa32cb
-0,        129,        129,        1,   192000, 0x176546ef
-0,        130,        130,        1,   192000, 0x4e095d0e
-0,        131,        131,        1,   192000, 0xf74b7774
-0,        132,        132,        1,   192000, 0x32809306
-0,        133,        133,        1,   192000, 0x5219ae81
-0,        134,        134,        1,   192000, 0x3badcc40
-0,        135,        135,        1,   192000, 0x1387ea5d
-0,        136,        136,        1,   192000, 0xe0c606f0
-0,        137,        137,        1,   192000, 0x106f2197
-0,        138,        138,        1,   192000, 0xfe2139cf
-0,        139,        139,        1,   192000, 0x907d4f0a
-0,        140,        140,        1,   192000, 0x04415dad
-0,        141,        141,        1,   192000, 0xe0b864b6
-0,        142,        142,        1,   192000, 0xcb2a64b8
-0,        143,        143,        1,   192000, 0xcb2a64b8
-0,        144,        144,        1,   192000, 0xcb2a64b8
-0,        145,        145,        1,   192000, 0xcb2a64b8
-0,        146,        146,        1,   192000, 0xcb2a64b8
-0,        147,        147,        1,   192000, 0xcb2a64b8
-0,        148,        148,        1,   192000, 0xcb2a64b8
-0,        149,        149,        1,   192000, 0xcb2a64b8
-0,        150,        150,        1,   192000, 0xcb2a64b8
-0,        151,        151,        1,   192000, 0xcb2a64b8
-0,        152,        152,        1,   192000, 0xcb2a64b8
-0,        153,        153,        1,   192000, 0xcb2a64b8
-0,        154,        154,        1,   192000, 0xcb2a64b8
-0,        155,        155,        1,   192000, 0xcb2a64b8
-0,        156,        156,        1,   192000, 0xcb2a64b8
-0,        157,        157,        1,   192000, 0xcb2a64b8
-0,        158,        158,        1,   192000, 0xcb2a64b8
+0,        124,        124,        1,   192000, 0xc3b2026a
+0,        125,        125,        1,   192000, 0x58370842
+0,        126,        126,        1,   192000, 0x516e1393
+0,        127,        127,        1,   192000, 0xa7e0209f
+0,        128,        128,        1,   192000, 0x210432cb
+0,        129,        129,        1,   192000, 0xd17446ef
+0,        130,        130,        1,   192000, 0xf1945d0e
+0,        131,        131,        1,   192000, 0x80517774
+0,        132,        132,        1,   192000, 0xa0c39306
+0,        133,        133,        1,   192000, 0xa43aae81
+0,        134,        134,        1,   192000, 0x702ccc40
+0,        135,        135,        1,   192000, 0x2adeea5d
+0,        136,        136,        1,   192000, 0xdb7f06f0
+0,        137,        137,        1,   192000, 0xf0bb2197
+0,        138,        138,        1,   192000, 0xc63c39cf
+0,        139,        139,        1,   192000, 0x434e4f0a
+0,        140,        140,        1,   192000, 0xa8135dad
+0,        141,        141,        1,   192000, 0x7d9164b6
+0,        142,        142,        1,   192000, 0x680164b8
+0,        143,        143,        1,   192000, 0x680164b8
+0,        144,        144,        1,   192000, 0x680164b8
+0,        145,        145,        1,   192000, 0x680164b8
+0,        146,        146,        1,   192000, 0x680164b8
+0,        147,        147,        1,   192000, 0x680164b8
+0,        148,        148,        1,   192000, 0x680164b8
+0,        149,        149,        1,   192000, 0x680164b8
+0,        150,        150,        1,   192000, 0x680164b8
+0,        151,        151,        1,   192000, 0x680164b8
+0,        152,        152,        1,   192000, 0x680164b8
+0,        153,        153,        1,   192000, 0x680164b8
+0,        154,        154,        1,   192000, 0x680164b8
+0,        155,        155,        1,   192000, 0x680164b8
+0,        156,        156,        1,   192000, 0x680164b8
+0,        157,        157,        1,   192000, 0x680164b8
+0,        158,        158,        1,   192000, 0x680164b8
-- 
1.7.11.4



More information about the ffmpeg-devel mailing list