[Mplayer-cvslog] CVS: main/libmpdemux qtpalette.h,NONE,1.1 demux_mov.c,1.31,1.32
Mike Melanson
melanson at mplayer.dev.hu
Thu Jan 24 06:20:27 CET 2002
Update of /cvsroot/mplayer/main/libmpdemux
In directory mplayer:/var/tmp.root/cvs-serv9674/libmpdemux
Modified Files:
demux_mov.c
Added Files:
qtpalette.h
Log Message:
QT demuxer now supports the default QT palettes
--- NEW FILE ---
// 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
Index: demux_mov.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpdemux/demux_mov.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- demux_mov.c 13 Jan 2002 06:01:00 -0000 1.31
+++ demux_mov.c 24 Jan 2002 05:20:19 -0000 1.32
@@ -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
More information about the MPlayer-cvslog
mailing list