mirror of https://github.com/mpv-player/mpv
.raw width>=65536 support by Georgi Georgiev <chutz@chubaka.homeip.net>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5929 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
2b96b208bf
commit
1ca2d5b055
|
@ -111,7 +111,15 @@ void write_header(FILE *f) {
|
|||
static unsigned char header[800] = "mhwanh";
|
||||
int i;
|
||||
header[7] = 4;
|
||||
if (width < 0x10000) { // are two bytes enough for the width?
|
||||
header[8] = width>>8; header[9] = (unsigned char)width;
|
||||
} else { // store width using 4 bytes at the end of the header
|
||||
header[8] = header[9] = 0;
|
||||
header[28] = (width >> 030) & 0xFF;
|
||||
header[29] = (width >> 020) & 0xFF;
|
||||
header[30] = (width >> 010) & 0xFF;
|
||||
header[31] = (width ) & 0xFF;
|
||||
}
|
||||
header[10] = height>>8; header[11] = (unsigned char)height;
|
||||
header[12] = colors>>8; header[13] = (unsigned char)colors;
|
||||
for (i = 32; i<800; ++i) header[i] = (i-32)/3;
|
||||
|
|
|
@ -22,6 +22,8 @@ raw_file* load_raw(char *name,int verbose){
|
|||
raw->w=head[8]*256+head[9];
|
||||
raw->h=head[10]*256+head[11];
|
||||
raw->c=head[12]*256+head[13];
|
||||
if(raw->w == 0) // 2 bytes were not enough for the width... read 4 bytes from the end of the header
|
||||
raw->w = ((head[28]*0x100 + head[29])*0x100 + head[30])*0x100 + head[31];
|
||||
if(raw->c>256) return NULL; // too many colors!?
|
||||
if(verbose) printf("RAW: %s %d x %d, %d colors\n",name,raw->w,raw->h,raw->c);
|
||||
if(raw->c){
|
||||
|
|
|
@ -16,7 +16,7 @@ typedef struct {
|
|||
raw_file* pic_a[16];
|
||||
raw_file* pic_b[16];
|
||||
short font[65536];
|
||||
short start[65536];
|
||||
int start[65536]; // short is not enough for unicode fonts
|
||||
short width[65536];
|
||||
} font_desc_t;
|
||||
|
||||
|
|
Loading…
Reference in New Issue