[FFmpeg-cvslog] Make Interplay palette opaque and increase its dynamics.

Carl Eugen Hoyos git at videolan.org
Tue Dec 27 18:32:46 CET 2011


ffmpeg | branch: master | Carl Eugen Hoyos <cehoyos at ag.or.at> | Tue Dec 27 18:26:31 2011 +0100| [ec0dc7e2e029a53023e8ed9eb79c870131773c7b] | committer: Carl Eugen Hoyos

Make Interplay palette opaque and increase its dynamics.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ec0dc7e2e029a53023e8ed9eb79c870131773c7b
---

 libavformat/ipmovie.c             |    8 +-
 tests/ref/fate/interplay-mve-8bit |  220 ++++++++++++++++++------------------
 2 files changed, 116 insertions(+), 112 deletions(-)

diff --git a/libavformat/ipmovie.c b/libavformat/ipmovie.c
index 24dc24b..bb42a12 100644
--- a/libavformat/ipmovie.c
+++ b/libavformat/ipmovie.c
@@ -456,7 +456,8 @@ static int process_ipmovie_chunk(IPMVEContext *s, AVIOContext *pb,
                 r = scratch[j++] * 4;
                 g = scratch[j++] * 4;
                 b = scratch[j++] * 4;
-                s->palette[i] = (r << 16) | (g << 8) | (b);
+                s->palette[i] = (0xFFU << 24) | (r << 16) | (g << 8) | (b);
+                s->palette[i] |= s->palette[i] >> 6 & 0x30303;
             }
             s->has_palette = 1;
             break;
@@ -524,7 +525,7 @@ static int ipmovie_read_header(AVFormatContext *s,
     AVPacket pkt;
     AVStream *st;
     unsigned char chunk_preamble[CHUNK_PREAMBLE_SIZE];
-    int chunk_type;
+    int chunk_type, i;
     uint8_t signature_buffer[sizeof(signature)];
 
     avio_read(pb, signature_buffer, sizeof(signature_buffer));
@@ -542,6 +543,9 @@ static int ipmovie_read_header(AVFormatContext *s,
     /* on the first read, this will position the stream at the first chunk */
     ipmovie->next_chunk_offset = avio_tell(pb) + 4;
 
+    for (i = 0; i < 256; i++)
+        ipmovie->palette[i] = 0xFFU << 24;
+
     /* process the first chunk which should be CHUNK_INIT_VIDEO */
     if (process_ipmovie_chunk(ipmovie, pb, &pkt) != CHUNK_INIT_VIDEO)
         return AVERROR_INVALIDDATA;
diff --git a/tests/ref/fate/interplay-mve-8bit b/tests/ref/fate/interplay-mve-8bit
index 13959c3..03a52c0 100644
--- a/tests/ref/fate/interplay-mve-8bit
+++ b/tests/ref/fate/interplay-mve-8bit
@@ -1,223 +1,223 @@
-0, 0, 414720, 0xa5cd50ca
+0, 0, 414720, 0x2580d574
 1, 0, 5848, 0xea04292b
 1, 5967, 5888, 0x0e59e942
-0, 6006, 414720, 0x3facd321
+0, 6006, 414720, 0x97f55cd3
 1, 11976, 5888, 0x56d480f6
-0, 12011, 414720, 0x849e6d4b
+0, 12011, 414720, 0x9408fb63
 1, 17984, 5888, 0xcb560b22
-0, 18017, 414720, 0xe649363f
+0, 18017, 414720, 0x7e53c155
 1, 23992, 5888, 0xca26865b
-0, 24022, 414720, 0x5bbd7b14
+0, 24022, 414720, 0xd8570262
 1, 30000, 5888, 0xa434392f
-0, 30028, 414720, 0xe246ab51
+0, 30028, 414720, 0x9dc72ed5
 1, 36008, 5888, 0xa0615fe4
-0, 36033, 414720, 0x5721b22e
+0, 36033, 414720, 0xf7d33211
 1, 42016, 5888, 0x85b241cd
-0, 42039, 414720, 0xe391e107
+0, 42039, 414720, 0x95935e3b
 1, 48024, 5888, 0x2c417a43
-0, 48044, 414720, 0x04d851ff
+0, 48044, 414720, 0x62b1cdc5
 1, 54033, 5888, 0x2d5ed665
-0, 54050, 414720, 0x8d80d580
+0, 54050, 414720, 0x971f500a
 1, 60041, 5888, 0x37267a2d
-0, 60055, 414720, 0x5a24b0bc
+0, 60055, 414720, 0x05f82b6c
 1, 66049, 5888, 0x1f803c67
-0, 66061, 414720, 0x06cd6960
+0, 66061, 414720, 0x7713e3cb
 1, 72057, 5888, 0xfb7940ef
-0, 72066, 414720, 0xf5ca48b4
+0, 72066, 414720, 0x3170c2f0
 1, 78065, 5888, 0x1a5371e8
-0, 78072, 414720, 0x24700f94
+0, 78072, 414720, 0x8d818956
 1, 84073, 5888, 0x37e29b21
-0, 84077, 414720, 0xb0bfe451
+0, 84077, 414720, 0x16775d71
 1, 90082, 5848, 0x70065769
-0, 90083, 414720, 0x00e9f3d1
+0, 90083, 414720, 0x63016ce1
 1, 96049, 5888, 0xaf624f3d
-0, 96088, 414720, 0x0efbffd1
+0, 96088, 414720, 0x2f94792c
 1, 102057, 5888, 0x8f5e5b57
-0, 102094, 414720, 0x2ecdfc8d
+0, 102094, 414720, 0x37f67725
 1, 108065, 5888, 0x93545968
-0, 108099, 414720, 0x94b531fc
+0, 108099, 414720, 0xeb95adb1
 1, 114073, 5888, 0x915f268f
-0, 114105, 414720, 0x2c2579f8
+0, 114105, 414720, 0xbf32f6df
 1, 120082, 5888, 0x9cd48ac4
-0, 120110, 414720, 0x6c7ecfb8
+0, 120110, 414720, 0x242f4d09
 1, 126090, 5888, 0x812c8e13
-0, 126116, 414720, 0x08982527
+0, 126116, 414720, 0x28a2a3b9
 1, 132098, 5888, 0xe794a2a7
-0, 132121, 414720, 0x5c0161b3
+0, 132121, 414720, 0x895de0a6
 1, 138106, 5888, 0x4a056e4b
-0, 138127, 414720, 0x453ce413
+0, 138127, 414720, 0xd3b46447
 1, 144114, 5888, 0xa3589992
-0, 144132, 414720, 0x634e36b2
+0, 144132, 414720, 0x3bbfb7d1
 1, 150122, 5888, 0x19ea7ec5
-0, 150138, 414720, 0x401a683a
+0, 150138, 414720, 0x0a5ee9ad
 1, 156131, 5888, 0x422d5097
-0, 156144, 414720, 0x3c5f442e
+0, 156144, 414720, 0xaabac502
 1, 162139, 5888, 0xc9fd963f
-0, 162149, 414720, 0x075ef787
+0, 162149, 414720, 0x0951779d
 1, 168147, 5888, 0xc556a5ea
-0, 168155, 414720, 0x8501a04f
+0, 168155, 414720, 0x150e2073
 1, 174155, 5888, 0x51557e0f
-0, 174160, 414720, 0x3620093b
+0, 174160, 414720, 0xb86d87ae
 1, 180163, 5848, 0x4903ad21
-0, 180166, 414720, 0xa42d9480
+0, 180166, 414720, 0x135411da
 1, 186131, 5888, 0xb1c85e85
-0, 186171, 414720, 0x09b150b4
+0, 186171, 414720, 0x9c8fcda5
 1, 192139, 5888, 0x68963d65
-0, 192177, 414720, 0xcad407f0
+0, 192177, 414720, 0xb7ba838e
 1, 198147, 5888, 0x62a3124e
-0, 198182, 414720, 0x69e5eecd
+0, 198182, 414720, 0x7ef869e1
 1, 204155, 5888, 0x4ff1878f
-0, 204188, 414720, 0xb92ad2d9
+0, 204188, 414720, 0xf9764d47
 1, 210163, 5888, 0x8b09ac18
-0, 210193, 414720, 0xc78eaf29
+0, 210193, 414720, 0xe6c72872
 1, 216171, 5888, 0x67d85338
-0, 216199, 414720, 0x47c3fa91
+0, 216199, 414720, 0xb95b73b8
 1, 222180, 5888, 0x82eca0a6
-0, 222204, 414720, 0x8847b7b8
+0, 222204, 414720, 0xa19e3221
 1, 228188, 5888, 0x81a17eb8
-0, 228210, 414720, 0x864cab2f
+0, 228210, 414720, 0xc0be27cd
 1, 234196, 5888, 0x7108478c
-0, 234215, 414720, 0x78d653e2
+0, 234215, 414720, 0xe97cd1a9
 1, 240204, 5888, 0xbfc18b09
-0, 240221, 414720, 0xda15cbd2
+0, 240221, 414720, 0xb6524a34
 1, 246212, 5888, 0xad93711f
-0, 246226, 414720, 0xdf9ce28a
+0, 246226, 414720, 0x61a1607b
 1, 252220, 5888, 0xf8d25e39
-0, 252232, 414720, 0xe88c49ca
+0, 252232, 414720, 0x1dd9c606
 1, 258229, 5888, 0x41edd04e
-0, 258237, 414720, 0xd6bcbc07
+0, 258237, 414720, 0xe2e736fa
 1, 264237, 5888, 0xa6557ee2
-0, 264243, 414720, 0xf0b4a7bf
+0, 264243, 414720, 0x25b922d9
 1, 270245, 5848, 0xc14d5456
-0, 270248, 414720, 0x74f9bfbf
+0, 270248, 414720, 0xbc023b36
 1, 276212, 5888, 0x20a7821f
-0, 276254, 414720, 0x904ce103
+0, 276254, 414720, 0x39bb5cdf
 1, 282220, 5888, 0x9f1a8f9d
-0, 282259, 414720, 0xca877e4a
+0, 282259, 414720, 0xf83bfc4f
 1, 288229, 5888, 0x2f3c6cc8
-0, 288265, 414720, 0x588effd6
+0, 288265, 414720, 0x3eae7f36
 1, 294237, 5888, 0x757c894a
-0, 294270, 414720, 0x6dff8b71
+0, 294270, 414720, 0x8cf80c32
 1, 300245, 5888, 0x483e98bb
-0, 300276, 414720, 0xbeaae788
+0, 300276, 414720, 0xbc576c03
 1, 306253, 5888, 0x84289c75
-0, 306282, 414720, 0x1a4d1242
+0, 306282, 414720, 0x28b79ab1
 1, 312261, 5888, 0xf79d5a91
-0, 312287, 414720, 0x4ae98ea0
+0, 312287, 414720, 0x15da1138
 1, 318269, 5888, 0x395b5228
-0, 318293, 414720, 0x41ed6d22
+0, 318293, 414720, 0x345ff676
 1, 324278, 5888, 0x9c937a14
-0, 324298, 414720, 0x486e70aa
+0, 324298, 414720, 0x0108f909
 1, 330286, 5888, 0x40c169cf
-0, 330304, 414720, 0xfddc103e
+0, 330304, 414720, 0x57459616
 1, 336294, 5888, 0x3e7f99b0
-0, 336309, 414720, 0x8620f03e
+0, 336309, 414720, 0x2f497782
 1, 342302, 5888, 0xd4de993e
-0, 342315, 414720, 0x0e4ec273
+0, 342315, 414720, 0xb72b4f79
 1, 348310, 5888, 0xae856b09
-0, 348320, 414720, 0xb2298b3e
+0, 348320, 414720, 0x2bfd1967
 1, 354318, 5888, 0xa2369c95
-0, 354326, 414720, 0xb4f50176
+0, 354326, 414720, 0x974a99cd
 1, 360327, 5848, 0x992d516b
-0, 360331, 414720, 0xb9c7a495
+0, 360331, 414720, 0x5f5f4129
 1, 366294, 5888, 0xcd785ba9
-0, 366337, 414720, 0xed270702
+0, 366337, 414720, 0x51ad9df4
 1, 372302, 5888, 0x55ea3bce
-0, 372342, 414720, 0x98b72586
+0, 372342, 414720, 0xd6e5c16c
 1, 378310, 5888, 0xf06d4bbf
-0, 378348, 414720, 0xd8977cb1
+0, 378348, 414720, 0xd8751bda
 1, 384318, 5888, 0x2a9d4c1a
-0, 384353, 414720, 0xff3d3851
+0, 384353, 414720, 0x216ed6f3
 1, 390327, 5888, 0xd5e348a3
-0, 390359, 414720, 0x7e4f0424
+0, 390359, 414720, 0x63a0a67d
 1, 396335, 5888, 0x6431a24c
-0, 396364, 414720, 0xa9e75006
+0, 396364, 414720, 0xe4f4eb0f
 1, 402343, 5888, 0x41f9908c
-0, 402370, 414720, 0x8f98cba9
+0, 402370, 414720, 0xa1665ef8
 1, 408351, 5888, 0x0ed99656
-0, 408375, 414720, 0x25ecd620
+0, 408375, 414720, 0xc3116dfd
 1, 414359, 5888, 0x635a6392
-0, 414381, 414720, 0x78cf5c58
+0, 414381, 414720, 0x3213fd70
 1, 420367, 5888, 0x690c750c
-0, 420386, 414720, 0x3fb4b81a
+0, 420386, 414720, 0x2af76048
 1, 426376, 5888, 0xf9d97b23
-0, 426392, 414720, 0xd7b655fa
+0, 426392, 414720, 0x3570085d
 1, 432384, 5888, 0x75e1606b
-0, 432397, 414720, 0xd9158db3
+0, 432397, 414720, 0x2a7c3c39
 1, 438392, 5888, 0x1bcb43b0
-0, 438403, 414720, 0x2e651852
+0, 438403, 414720, 0xd8a6ba7e
 1, 444400, 5888, 0x48c295cb
-0, 444408, 414720, 0x9f9adb64
+0, 444408, 414720, 0x48107b4d
 1, 450408, 5848, 0xe47f7b5d
-0, 450414, 414720, 0xe9d16e81
+0, 450414, 414720, 0x653a0936
 1, 456376, 5888, 0x20be7f3e
-0, 456420, 414720, 0xbe73daf5
+0, 456420, 414720, 0xf68c77ab
 1, 462384, 5888, 0x8c2428c4
-0, 462425, 414720, 0x3d164329
+0, 462425, 414720, 0xa5ecde84
 1, 468392, 5888, 0x851379af
-0, 468431, 414720, 0x1d5a9bc8
+0, 468431, 414720, 0xaec33ca1
 1, 474400, 5888, 0x5916647d
-0, 474436, 414720, 0x8e8debbe
+0, 474436, 414720, 0x26e68740
 1, 480408, 5888, 0xef9c6281
-0, 480442, 414720, 0x4e7a2bf0
+0, 480442, 414720, 0xac09bfa5
 1, 486416, 5888, 0x49660d32
-0, 486447, 414720, 0x4a13804d
+0, 486447, 414720, 0xed5111b2
 1, 492424, 5888, 0x62cf36a1
-0, 492453, 414720, 0x5dd188d8
+0, 492453, 414720, 0x38041c98
 1, 498433, 5888, 0x56dff39c
-0, 498458, 414720, 0xbe7f4963
+0, 498458, 414720, 0x76fbde1d
 1, 504441, 5888, 0x4e6b5b02
-0, 504464, 414720, 0xcff3b767
+0, 504464, 414720, 0x3ae64b7d
 1, 510449, 5888, 0xb8697067
-0, 510469, 414720, 0xbbd3afa0
+0, 510469, 414720, 0xb05f4da2
 1, 516457, 5888, 0xcb4e2706
-0, 516475, 414720, 0xaf9dec62
+0, 516475, 414720, 0x65769088
 1, 522465, 5888, 0x6eaa9669
-0, 522480, 414720, 0xc74816a1
+0, 522480, 414720, 0xbc45ba59
 1, 528473, 5888, 0xfd9d7dba
-0, 528486, 414720, 0x51488bfc
+0, 528486, 414720, 0x8c893436
 1, 534482, 5888, 0xfe137923
-0, 534491, 414720, 0x68c10a2c
+0, 534491, 414720, 0x1d5ebe7f
 1, 540490, 5848, 0x1931296f
-0, 540497, 414720, 0x10179c4e
+0, 540497, 414720, 0xa9cd5a53
 1, 546457, 5888, 0xa09a7c03
-0, 546502, 414720, 0x18d559b7
+0, 546502, 414720, 0xc69e1fb0
 1, 552465, 5888, 0xded9802d
-0, 552508, 414720, 0x8257aa55
+0, 552508, 414720, 0xb28a77ec
 1, 558473, 5888, 0x9f6723b7
-0, 558513, 414720, 0x9ea24501
+0, 558513, 414720, 0x834f1219
 1, 564482, 5888, 0x3ad02476
-0, 564519, 414720, 0x238605cc
+0, 564519, 414720, 0xba34c848
 1, 570490, 5888, 0xa1647e32
-0, 570524, 414720, 0xb552deaa
+0, 570524, 414720, 0x80e590c1
 1, 576498, 5888, 0x728672da
-0, 576530, 414720, 0x07c3348d
+0, 576530, 414720, 0x7146dc31
 1, 582506, 5888, 0x9c098090
-0, 582535, 414720, 0x82f4f9b0
+0, 582535, 414720, 0x05929a5f
 1, 588514, 5888, 0x32a65ea3
-0, 588541, 414720, 0xf5d76bc5
+0, 588541, 414720, 0x721708c5
 1, 594522, 5888, 0xdde141d5
-0, 594546, 414720, 0x34b3a1e6
+0, 594546, 414720, 0x4aa83cbe
 1, 600531, 5888, 0x816c5fb4
-0, 600552, 414720, 0xda25e11b
+0, 600552, 414720, 0x221d799f
 1, 606539, 5888, 0x75e17581
-0, 606558, 414720, 0x2b19936b
+0, 606558, 414720, 0xe9e72bec
 1, 612547, 5888, 0x59035469
-0, 612563, 414720, 0xe91f9f73
+0, 612563, 414720, 0xb6a3385d
 1, 618555, 5888, 0x20d340cd
-0, 618569, 414720, 0x48d09aab
+0, 618569, 414720, 0x795a3362
 1, 624563, 5888, 0xa89a8790
-0, 624574, 414720, 0xac42bf83
+0, 624574, 414720, 0x770b58d9
 1, 630571, 5848, 0x12b74c34
-0, 630580, 414720, 0x2d8ca14e
+0, 630580, 414720, 0xb5563ce4
 1, 636539, 5888, 0xcd3b3bef
-0, 636585, 414720, 0xe65462fd
+0, 636585, 414720, 0x0c1a00cc
 1, 642547, 5888, 0xe5c44bf3
-0, 642591, 414720, 0xe5bfc929
+0, 642591, 414720, 0xcbd467fd
 1, 648555, 5888, 0xb82c4fa4
-0, 648596, 414720, 0x66784c58
+0, 648596, 414720, 0x3bccec29
 1, 654563, 5888, 0x05b2443a
-0, 654602, 414720, 0x70dbeca8
+0, 654602, 414720, 0x92d78db7
 1, 660571, 5888, 0x78028172
 1, 666580, 5888, 0xdfcac19a
 1, 672588, 5888, 0x0761a0b9



More information about the ffmpeg-cvslog mailing list