Mercurial > mplayer.hg
changeset 4332:ae889abf93cd
QT demuxer now supports the default QT palettes
author | melanson |
---|---|
date | Thu, 24 Jan 2002 05:20:19 +0000 |
parents | ce1e3668fa2b |
children | c67d50d4a889 |
files | libmpdemux/demux_mov.c libmpdemux/qtpalette.h |
diffstat | 2 files changed, 321 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpdemux/demux_mov.c Thu Jan 24 00:53:22 2002 +0000 +++ b/libmpdemux/demux_mov.c Thu Jan 24 05:20:19 2002 +0000 @@ -18,6 +18,8 @@ #include "bswap.h" +#include "qtpalette.h" + #ifdef HAVE_ZLIB #include <zlib.h> #endif @@ -600,18 +602,33 @@ end = BE_16(&trak->stdata[hdr_ptr]); hdr_ptr += 2; palette_map = (unsigned char *)sh->bih + 40; - for (i = start; i <= end; i++) + + // load default palette + if (flag & 0x08) + { + if (palette_count == 4) + memcpy(palette_map, qt_default_palette_4, 4 * 4); + else if (palette_count == 16) + memcpy(palette_map, qt_default_palette_16, 16 * 4); + if (palette_count == 256) + memcpy(palette_map, qt_default_palette_256, 256 * 4); + } + // load palette from file + else { - entry = BE_16(&trak->stdata[hdr_ptr]); - hdr_ptr += 2; - // apparently, if count_flag is set, entry is same as i - if (count_flag & 0x8000) - entry = i; - // only care about top 8 bits of 16-bit R, G, or B value - palette_map[entry * 4 + 0] = trak->stdata[hdr_ptr + 0]; - palette_map[entry * 4 + 1] = trak->stdata[hdr_ptr + 2]; - palette_map[entry * 4 + 2] = trak->stdata[hdr_ptr + 4]; - hdr_ptr += 6; + for (i = start; i <= end; i++) + { + entry = BE_16(&trak->stdata[hdr_ptr]); + hdr_ptr += 2; + // apparently, if count_flag is set, entry is same as i + if (count_flag & 0x8000) + entry = i; + // only care about top 8 bits of 16-bit R, G, or B value + palette_map[entry * 4 + 0] = trak->stdata[hdr_ptr + 0]; + palette_map[entry * 4 + 1] = trak->stdata[hdr_ptr + 2]; + palette_map[entry * 4 + 2] = trak->stdata[hdr_ptr + 4]; + hdr_ptr += 6; + } } } else
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libmpdemux/qtpalette.h Thu Jan 24 05:20:19 2002 +0000 @@ -0,0 +1,293 @@ +// Default Palettes for Quicktime Files +// Automatically generated from a utility derived from XAnim: +// http://xanim.va.pubnix.com/home.html + +#ifndef QTPALETTE_H +#define QTPALETTE_H + +unsigned char qt_default_palette_4[4 * 4] = { + 0x93, 0x65, 0x5E, 0x00, + 0xFF, 0xFF, 0xFF, 0x00, + 0xDF, 0xD0, 0xAB, 0x00, + 0x00, 0x00, 0x00, 0x00 +}; + +unsigned char qt_default_palette_16[16 * 4] = { + 0xFF, 0xFB, 0xFF, 0x00, + 0xEF, 0xD9, 0xBB, 0x00, + 0xE8, 0xC9, 0xB1, 0x00, + 0x93, 0x65, 0x5E, 0x00, + 0xFC, 0xDE, 0xE8, 0x00, + 0x9D, 0x88, 0x91, 0x00, + 0xFF, 0xFF, 0xFF, 0x00, + 0xFF, 0xFF, 0xFF, 0x00, + 0xFF, 0xFF, 0xFF, 0x00, + 0x47, 0x48, 0x37, 0x00, + 0x7A, 0x5E, 0x55, 0x00, + 0xDF, 0xD0, 0xAB, 0x00, + 0xFF, 0xFB, 0xF9, 0x00, + 0xE8, 0xCA, 0xC5, 0x00, + 0x8A, 0x7C, 0x77, 0x00, + 0x00, 0x00, 0x00, 0x00 +}; + +unsigned char qt_default_palette_256[256 * 4] = { + /* #0 */ 0xFF, 0xFF, 0xFF, 0x00, + /* #1 */ 0xFF, 0xFF, 0xCC, 0x00, + /* #2 */ 0xFF, 0xFF, 0x99, 0x00, + /* #3 */ 0xFF, 0xFF, 0x66, 0x00, + /* #4 */ 0xFF, 0xFF, 0x33, 0x00, + /* #5 */ 0xFF, 0xFF, 0x00, 0x00, + /* #6 */ 0xFF, 0xCC, 0xFF, 0x00, + /* #7 */ 0xFF, 0xCC, 0xCC, 0x00, + /* #8 */ 0xFF, 0xCC, 0x99, 0x00, + /* #9 */ 0xFF, 0xCC, 0x66, 0x00, + /* #10 */ 0xFF, 0xCC, 0x33, 0x00, + /* #11 */ 0xFF, 0xCC, 0x00, 0x00, + /* #12 */ 0xFF, 0x99, 0xFF, 0x00, + /* #13 */ 0xFF, 0x99, 0xCC, 0x00, + /* #14 */ 0xFF, 0x99, 0x99, 0x00, + /* #15 */ 0xFF, 0x99, 0x66, 0x00, + /* #16 */ 0xFF, 0x99, 0x33, 0x00, + /* #17 */ 0xFF, 0x99, 0x00, 0x00, + /* #18 */ 0xFF, 0x66, 0xFF, 0x00, + /* #19 */ 0xFF, 0x66, 0xCC, 0x00, + /* #20 */ 0xFF, 0x66, 0x99, 0x00, + /* #21 */ 0xFF, 0x66, 0x66, 0x00, + /* #22 */ 0xFF, 0x66, 0x33, 0x00, + /* #23 */ 0xFF, 0x66, 0x00, 0x00, + /* #24 */ 0xFF, 0x33, 0xFF, 0x00, + /* #25 */ 0xFF, 0x33, 0xCC, 0x00, + /* #26 */ 0xFF, 0x33, 0x99, 0x00, + /* #27 */ 0xFF, 0x33, 0x66, 0x00, + /* #28 */ 0xFF, 0x33, 0x33, 0x00, + /* #29 */ 0xFF, 0x33, 0x00, 0x00, + /* #30 */ 0xFF, 0x00, 0xFF, 0x00, + /* #31 */ 0xFF, 0x00, 0xCC, 0x00, + /* #32 */ 0xFF, 0x00, 0x99, 0x00, + /* #33 */ 0xFF, 0x00, 0x66, 0x00, + /* #34 */ 0xFF, 0x00, 0x33, 0x00, + /* #35 */ 0xFF, 0x00, 0x00, 0x00, + /* #36 */ 0xCC, 0xFF, 0xFF, 0x00, + /* #37 */ 0xCC, 0xFF, 0xCC, 0x00, + /* #38 */ 0xCC, 0xFF, 0x99, 0x00, + /* #39 */ 0xCC, 0xFF, 0x66, 0x00, + /* #40 */ 0xCC, 0xFF, 0x33, 0x00, + /* #41 */ 0xCC, 0xFF, 0x00, 0x00, + /* #42 */ 0xCC, 0xCC, 0xFF, 0x00, + /* #43 */ 0xCC, 0xCC, 0xCC, 0x00, + /* #44 */ 0xCC, 0xCC, 0x99, 0x00, + /* #45 */ 0xCC, 0xCC, 0x66, 0x00, + /* #46 */ 0xCC, 0xCC, 0x33, 0x00, + /* #47 */ 0xCC, 0xCC, 0x00, 0x00, + /* #48 */ 0xCC, 0x99, 0xFF, 0x00, + /* #49 */ 0xCC, 0x99, 0xCC, 0x00, + /* #50 */ 0xCC, 0x99, 0x99, 0x00, + /* #51 */ 0xCC, 0x99, 0x66, 0x00, + /* #52 */ 0xCC, 0x99, 0x33, 0x00, + /* #53 */ 0xCC, 0x99, 0x00, 0x00, + /* #54 */ 0xCC, 0x66, 0xFF, 0x00, + /* #55 */ 0xCC, 0x66, 0xCC, 0x00, + /* #56 */ 0xCC, 0x66, 0x99, 0x00, + /* #57 */ 0xCC, 0x66, 0x66, 0x00, + /* #58 */ 0xCC, 0x66, 0x33, 0x00, + /* #59 */ 0xCC, 0x66, 0x00, 0x00, + /* #60 */ 0xCC, 0x33, 0xFF, 0x00, + /* #61 */ 0xCC, 0x33, 0xCC, 0x00, + /* #62 */ 0xCC, 0x33, 0x99, 0x00, + /* #63 */ 0xCC, 0x33, 0x66, 0x00, + /* #64 */ 0xCC, 0x33, 0x33, 0x00, + /* #65 */ 0xCC, 0x33, 0x00, 0x00, + /* #66 */ 0xCC, 0x00, 0xFF, 0x00, + /* #67 */ 0xCC, 0x00, 0xCC, 0x00, + /* #68 */ 0xCC, 0x00, 0x99, 0x00, + /* #69 */ 0xCC, 0x00, 0x66, 0x00, + /* #70 */ 0xCC, 0x00, 0x33, 0x00, + /* #71 */ 0xCC, 0x00, 0x00, 0x00, + /* #72 */ 0x99, 0xFF, 0xFF, 0x00, + /* #73 */ 0x99, 0xFF, 0xCC, 0x00, + /* #74 */ 0x99, 0xFF, 0x99, 0x00, + /* #75 */ 0x99, 0xFF, 0x66, 0x00, + /* #76 */ 0x99, 0xFF, 0x33, 0x00, + /* #77 */ 0x99, 0xFF, 0x00, 0x00, + /* #78 */ 0x99, 0xCC, 0xFF, 0x00, + /* #79 */ 0x99, 0xCC, 0xCC, 0x00, + /* #80 */ 0x99, 0xCC, 0x99, 0x00, + /* #81 */ 0x99, 0xCC, 0x66, 0x00, + /* #82 */ 0x99, 0xCC, 0x33, 0x00, + /* #83 */ 0x99, 0xCC, 0x00, 0x00, + /* #84 */ 0x99, 0x99, 0xFF, 0x00, + /* #85 */ 0x99, 0x99, 0xCC, 0x00, + /* #86 */ 0x99, 0x99, 0x99, 0x00, + /* #87 */ 0x99, 0x99, 0x66, 0x00, + /* #88 */ 0x99, 0x99, 0x33, 0x00, + /* #89 */ 0x99, 0x99, 0x00, 0x00, + /* #90 */ 0x99, 0x66, 0xFF, 0x00, + /* #91 */ 0x99, 0x66, 0xCC, 0x00, + /* #92 */ 0x99, 0x66, 0x99, 0x00, + /* #93 */ 0x99, 0x66, 0x66, 0x00, + /* #94 */ 0x99, 0x66, 0x33, 0x00, + /* #95 */ 0x99, 0x66, 0x00, 0x00, + /* #96 */ 0x99, 0x33, 0xFF, 0x00, + /* #97 */ 0x99, 0x33, 0xCC, 0x00, + /* #98 */ 0x99, 0x33, 0x99, 0x00, + /* #99 */ 0x99, 0x33, 0x66, 0x00, + /* #100 */ 0x99, 0x33, 0x33, 0x00, + /* #101 */ 0x99, 0x33, 0x00, 0x00, + /* #102 */ 0x99, 0x00, 0xFF, 0x00, + /* #103 */ 0x99, 0x00, 0xCC, 0x00, + /* #104 */ 0x99, 0x00, 0x99, 0x00, + /* #105 */ 0x99, 0x00, 0x66, 0x00, + /* #106 */ 0x99, 0x00, 0x33, 0x00, + /* #107 */ 0x99, 0x00, 0x00, 0x00, + /* #108 */ 0x66, 0xFF, 0xFF, 0x00, + /* #109 */ 0x66, 0xFF, 0xCC, 0x00, + /* #110 */ 0x66, 0xFF, 0x99, 0x00, + /* #111 */ 0x66, 0xFF, 0x66, 0x00, + /* #112 */ 0x66, 0xFF, 0x33, 0x00, + /* #113 */ 0x66, 0xFF, 0x00, 0x00, + /* #114 */ 0x66, 0xCC, 0xFF, 0x00, + /* #115 */ 0x66, 0xCC, 0xCC, 0x00, + /* #116 */ 0x66, 0xCC, 0x99, 0x00, + /* #117 */ 0x66, 0xCC, 0x66, 0x00, + /* #118 */ 0x66, 0xCC, 0x33, 0x00, + /* #119 */ 0x66, 0xCC, 0x00, 0x00, + /* #120 */ 0x66, 0x99, 0xFF, 0x00, + /* #121 */ 0x66, 0x99, 0xCC, 0x00, + /* #122 */ 0x66, 0x99, 0x99, 0x00, + /* #123 */ 0x66, 0x99, 0x66, 0x00, + /* #124 */ 0x66, 0x99, 0x33, 0x00, + /* #125 */ 0x66, 0x99, 0x00, 0x00, + /* #126 */ 0x66, 0x66, 0xFF, 0x00, + /* #127 */ 0x66, 0x66, 0xCC, 0x00, + /* #128 */ 0x66, 0x66, 0x99, 0x00, + /* #129 */ 0x66, 0x66, 0x66, 0x00, + /* #130 */ 0x66, 0x66, 0x33, 0x00, + /* #131 */ 0x66, 0x66, 0x00, 0x00, + /* #132 */ 0x66, 0x33, 0xFF, 0x00, + /* #133 */ 0x66, 0x33, 0xCC, 0x00, + /* #134 */ 0x66, 0x33, 0x99, 0x00, + /* #135 */ 0x66, 0x33, 0x66, 0x00, + /* #136 */ 0x66, 0x33, 0x33, 0x00, + /* #137 */ 0x66, 0x33, 0x00, 0x00, + /* #138 */ 0x66, 0x00, 0xFF, 0x00, + /* #139 */ 0x66, 0x00, 0xCC, 0x00, + /* #140 */ 0x66, 0x00, 0x99, 0x00, + /* #141 */ 0x66, 0x00, 0x66, 0x00, + /* #142 */ 0x66, 0x00, 0x33, 0x00, + /* #143 */ 0x66, 0x00, 0x00, 0x00, + /* #144 */ 0x33, 0xFF, 0xFF, 0x00, + /* #145 */ 0x33, 0xFF, 0xCC, 0x00, + /* #146 */ 0x33, 0xFF, 0x99, 0x00, + /* #147 */ 0x33, 0xFF, 0x66, 0x00, + /* #148 */ 0x33, 0xFF, 0x33, 0x00, + /* #149 */ 0x33, 0xFF, 0x00, 0x00, + /* #150 */ 0x33, 0xCC, 0xFF, 0x00, + /* #151 */ 0x33, 0xCC, 0xCC, 0x00, + /* #152 */ 0x33, 0xCC, 0x99, 0x00, + /* #153 */ 0x33, 0xCC, 0x66, 0x00, + /* #154 */ 0x33, 0xCC, 0x33, 0x00, + /* #155 */ 0x33, 0xCC, 0x00, 0x00, + /* #156 */ 0x33, 0x99, 0xFF, 0x00, + /* #157 */ 0x33, 0x99, 0xCC, 0x00, + /* #158 */ 0x33, 0x99, 0x99, 0x00, + /* #159 */ 0x33, 0x99, 0x66, 0x00, + /* #160 */ 0x33, 0x99, 0x33, 0x00, + /* #161 */ 0x33, 0x99, 0x00, 0x00, + /* #162 */ 0x33, 0x66, 0xFF, 0x00, + /* #163 */ 0x33, 0x66, 0xCC, 0x00, + /* #164 */ 0x33, 0x66, 0x99, 0x00, + /* #165 */ 0x33, 0x66, 0x66, 0x00, + /* #166 */ 0x33, 0x66, 0x33, 0x00, + /* #167 */ 0x33, 0x66, 0x00, 0x00, + /* #168 */ 0x33, 0x33, 0xFF, 0x00, + /* #169 */ 0x33, 0x33, 0xCC, 0x00, + /* #170 */ 0x33, 0x33, 0x99, 0x00, + /* #171 */ 0x33, 0x33, 0x66, 0x00, + /* #172 */ 0x33, 0x33, 0x33, 0x00, + /* #173 */ 0x33, 0x33, 0x00, 0x00, + /* #174 */ 0x33, 0x00, 0xFF, 0x00, + /* #175 */ 0x33, 0x00, 0xCC, 0x00, + /* #176 */ 0x33, 0x00, 0x99, 0x00, + /* #177 */ 0x33, 0x00, 0x66, 0x00, + /* #178 */ 0x33, 0x00, 0x33, 0x00, + /* #179 */ 0x33, 0x00, 0x00, 0x00, + /* #180 */ 0x00, 0xFF, 0xFF, 0x00, + /* #181 */ 0x00, 0xFF, 0xCC, 0x00, + /* #182 */ 0x00, 0xFF, 0x99, 0x00, + /* #183 */ 0x00, 0xFF, 0x66, 0x00, + /* #184 */ 0x00, 0xFF, 0x33, 0x00, + /* #185 */ 0x00, 0xFF, 0x00, 0x00, + /* #186 */ 0x00, 0xCC, 0xFF, 0x00, + /* #187 */ 0x00, 0xCC, 0xCC, 0x00, + /* #188 */ 0x00, 0xCC, 0x99, 0x00, + /* #189 */ 0x00, 0xCC, 0x66, 0x00, + /* #190 */ 0x00, 0xCC, 0x33, 0x00, + /* #191 */ 0x00, 0xCC, 0x00, 0x00, + /* #192 */ 0x00, 0x99, 0xFF, 0x00, + /* #193 */ 0x00, 0x99, 0xCC, 0x00, + /* #194 */ 0x00, 0x99, 0x99, 0x00, + /* #195 */ 0x00, 0x99, 0x66, 0x00, + /* #196 */ 0x00, 0x99, 0x33, 0x00, + /* #197 */ 0x00, 0x99, 0x00, 0x00, + /* #198 */ 0x00, 0x66, 0xFF, 0x00, + /* #199 */ 0x00, 0x66, 0xCC, 0x00, + /* #200 */ 0x00, 0x66, 0x99, 0x00, + /* #201 */ 0x00, 0x66, 0x66, 0x00, + /* #202 */ 0x00, 0x66, 0x33, 0x00, + /* #203 */ 0x00, 0x66, 0x00, 0x00, + /* #204 */ 0x00, 0x33, 0xFF, 0x00, + /* #205 */ 0x00, 0x33, 0xCC, 0x00, + /* #206 */ 0x00, 0x33, 0x99, 0x00, + /* #207 */ 0x00, 0x33, 0x66, 0x00, + /* #208 */ 0x00, 0x33, 0x33, 0x00, + /* #209 */ 0x00, 0x33, 0x00, 0x00, + /* #210 */ 0x00, 0x00, 0xFF, 0x00, + /* #211 */ 0x00, 0x00, 0xCC, 0x00, + /* #212 */ 0x00, 0x00, 0x99, 0x00, + /* #213 */ 0x00, 0x00, 0x66, 0x00, + /* #214 */ 0x00, 0x00, 0x33, 0x00, + /* #215 */ 0xEE, 0x00, 0x00, 0x00, + /* #216 */ 0xDD, 0x00, 0x00, 0x00, + /* #217 */ 0xBB, 0x00, 0x00, 0x00, + /* #218 */ 0xAA, 0x00, 0x00, 0x00, + /* #219 */ 0x88, 0x00, 0x00, 0x00, + /* #220 */ 0x77, 0x00, 0x00, 0x00, + /* #221 */ 0x55, 0x00, 0x00, 0x00, + /* #222 */ 0x44, 0x00, 0x00, 0x00, + /* #223 */ 0x22, 0x00, 0x00, 0x00, + /* #224 */ 0x11, 0x00, 0x00, 0x00, + /* #225 */ 0x00, 0xEE, 0x00, 0x00, + /* #226 */ 0x00, 0xDD, 0x00, 0x00, + /* #227 */ 0x00, 0xBB, 0x00, 0x00, + /* #228 */ 0x00, 0xAA, 0x00, 0x00, + /* #229 */ 0x00, 0x88, 0x00, 0x00, + /* #230 */ 0x00, 0x77, 0x00, 0x00, + /* #231 */ 0x00, 0x55, 0x00, 0x00, + /* #232 */ 0x00, 0x44, 0x00, 0x00, + /* #233 */ 0x00, 0x22, 0x00, 0x00, + /* #234 */ 0x00, 0x11, 0x00, 0x00, + /* #235 */ 0x00, 0x00, 0xEE, 0x00, + /* #236 */ 0x00, 0x00, 0xDD, 0x00, + /* #237 */ 0x00, 0x00, 0xBB, 0x00, + /* #238 */ 0x00, 0x00, 0xAA, 0x00, + /* #239 */ 0x00, 0x00, 0x88, 0x00, + /* #240 */ 0x00, 0x00, 0x77, 0x00, + /* #241 */ 0x00, 0x00, 0x55, 0x00, + /* #242 */ 0x00, 0x00, 0x44, 0x00, + /* #243 */ 0x00, 0x00, 0x22, 0x00, + /* #244 */ 0x00, 0x00, 0x11, 0x00, + /* #245 */ 0xEE, 0xEE, 0xEE, 0x00, + /* #246 */ 0xDD, 0xDD, 0xDD, 0x00, + /* #247 */ 0xBB, 0xBB, 0xBB, 0x00, + /* #248 */ 0xAA, 0xAA, 0xAA, 0x00, + /* #249 */ 0x88, 0x88, 0x88, 0x00, + /* #250 */ 0x77, 0x77, 0x77, 0x00, + /* #251 */ 0x55, 0x55, 0x55, 0x00, + /* #252 */ 0x44, 0x44, 0x44, 0x00, + /* #253 */ 0x22, 0x22, 0x22, 0x00, + /* #254 */ 0x11, 0x11, 0x11, 0x00, + /* #255 */ 0x00, 0x00, 0x00, 0x00 +}; + +#endif