# HG changeset patch # User lgb # Date 987867481 0 # Node ID 28ae990365744da73e13515c0a7e25c8cbc86000 # Parent 6fbd39309b87f99ea25c5438e52a682a74537580 Separated dvdsub code to be able to work with it easier diff -r 6fbd39309b87 -r 28ae99036574 Makefile --- a/Makefile Sat Apr 21 15:28:19 2001 +0000 +++ b/Makefile Sat Apr 21 15:38:01 2001 +0000 @@ -20,8 +20,8 @@ prefix = /usr/local BINDIR = ${prefix}/bin # BINDIR = /usr/local/bin -SRCS = codec-cfg.c subreader.c linux/getch2.c linux/timer-lx.c linux/shmem.c xa/xa_gsm.c lirc_mp.c cfgparser.c mixer.c dvdauth.c -OBJS = codec-cfg.o subreader.o linux/getch2.o linux/timer-lx.o linux/shmem.o xa/xa_gsm.o lirc_mp.o cfgparser.o mixer.o dvdauth.o +SRCS = codec-cfg.c subreader.c linux/getch2.c linux/timer-lx.c linux/shmem.c xa/xa_gsm.c lirc_mp.c cfgparser.c mixer.c dvdauth.c spudec.c +OBJS = codec-cfg.o subreader.o linux/getch2.o linux/timer-lx.o linux/shmem.o xa/xa_gsm.o lirc_mp.o cfgparser.o mixer.o dvdauth.o spudec.o CFLAGS = $(OPTFLAGS) $(CSS_INC) -Iloader -Ilibvo # -Wall A_LIBS = -Lmp3lib -lMP3 -Llibac3 -lac3 VO_LIBS = -Llibvo -lvo $(X_LIBS) diff -r 6fbd39309b87 -r 28ae99036574 mplayer.c --- a/mplayer.c Sat Apr 21 15:28:19 2001 +0000 +++ b/mplayer.c Sat Apr 21 15:38:01 2001 +0000 @@ -51,6 +51,7 @@ #include "codec-cfg.h" #include "dvdauth.h" +#include "spudec.h" #ifdef USE_DIRECTSHOW #include "DirectShow/DS_VideoDec.h" @@ -185,85 +186,6 @@ } - - - -void spudec_process_control(unsigned char *control, int size, int* d1, int* d2) -{ - int off = 2; - int a,b; /* Temporary vars */ - - do { - int type = control[off]; - off++; - printf("cmd=%d ",type); - - switch(type) { - case 0x00: - /* Menu ID, 1 byte */ - printf("Menu ID\n"); - break; - case 0x01: - /* Start display */ - printf("Start display!\n"); -// gSpudec.geom.bIsVisible = 1; - break; - case 0x03: - /* Palette */ - printf("Palette\n"); -// palette[3] = &(gSpudec.clut[(control[off] >> 4)]); -// palette[2] = &(gSpudec.clut[control[off] & 0xf]); -// palette[1] = &(gSpudec.clut[(control[off+1] >> 4)]); -// palette[0] = &(gSpudec.clut[control[off+1] & 0xf]); - off+=2; - break; - case 0x04: - /* Alpha */ - printf("Alpha\n"); -// alpha[3] = control[off] & 0xf0; -// alpha[2] = (control[off] & 0xf) << 4; -// alpha[1] = control[off+1] & 0xf0; -// alpha[0] = (control[off+1] & 0xf) << 4; - off+=2; - break; - case 0x05: - /* Co-ords */ - a = (control[off] << 16) + (control[off+1] << 8) + control[off+2]; - b = (control[off+3] << 16) + (control[off+4] << 8) + control[off+5]; - - printf("Coords col: %d - %d row: %d - %d\n",a >> 12,a & 0xfff,b >> 12,b & 0xfff); - -// gSpudec.geom.start_col = a >> 12; -// gSpudec.geom.end_col = a & 0xfff; -// gSpudec.geom.start_row = b >> 12; -// gSpudec.geom.end_row = b & 0xfff; - - off+=6; - break; - case 0x06: - /* Graphic lines */ - *(d1) = (control[off] << 8) + control[off+1]; - *(d2) = (control[off+2] << 8) + control[off+3]; - printf("Graphic pos color: %d b/w: %d\n",*d1,*d2); - off+=4; - break; - case 0xff: - /* All done, bye-bye */ - printf("Done!\n"); - return; - break; - default: - printf("spudec: Error determining control type 0x%02x.\n",type); - return; - break; - } - - /* printf("spudec: Processsed control type 0x%02x.\n",type); */ - } while(off < size); -} - - - //**************************************************************************// // Config file //**************************************************************************// diff -r 6fbd39309b87 -r 28ae99036574 spudec.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spudec.c Sat Apr 21 15:38:01 2001 +0000 @@ -0,0 +1,88 @@ +/* SPUdec.c + Skeleton of function spudec_process_controll() was written by Apri. + Further works: + LGB,... (yeah, try to improve it and insert your name here! ;-) */ + + +#include +#include "spudec.h" + + + + +void spudec_process_control(unsigned char *control, int size, int* d1, int* d2) +{ + int off = 2; + int a,b; /* Temporary vars */ + + do { + int type = control[off]; + off++; + printf("cmd=%d ",type); + + switch(type) { + case 0x00: + /* Menu ID, 1 byte */ + printf("Menu ID\n"); + break; + case 0x01: + /* Start display */ + printf("Start display!\n"); +// gSpudec.geom.bIsVisible = 1; + break; + case 0x03: + /* Palette */ + printf("Palette\n"); +// palette[3] = &(gSpudec.clut[(control[off] >> 4)]); +// palette[2] = &(gSpudec.clut[control[off] & 0xf]); +// palette[1] = &(gSpudec.clut[(control[off+1] >> 4)]); +// palette[0] = &(gSpudec.clut[control[off+1] & 0xf]); + off+=2; + break; + case 0x04: + /* Alpha */ + printf("Alpha\n"); +// alpha[3] = control[off] & 0xf0; +// alpha[2] = (control[off] & 0xf) << 4; +// alpha[1] = control[off+1] & 0xf0; +// alpha[0] = (control[off+1] & 0xf) << 4; + off+=2; + break; + case 0x05: + /* Co-ords */ + a = (control[off] << 16) + (control[off+1] << 8) + control[off+2]; + b = (control[off+3] << 16) + (control[off+4] << 8) + control[off+5]; + + printf("Coords col: %d - %d row: %d - %d\n",a >> 12,a & 0xfff,b >> 12,b & 0xfff); + +// gSpudec.geom.start_col = a >> 12; +// gSpudec.geom.end_col = a & 0xfff; +// gSpudec.geom.start_row = b >> 12; +// gSpudec.geom.end_row = b & 0xfff; + + off+=6; + break; + case 0x06: + /* Graphic lines */ + *(d1) = (control[off] << 8) + control[off+1]; + *(d2) = (control[off+2] << 8) + control[off+3]; + printf("Graphic pos color: %d b/w: %d\n",*d1,*d2); + off+=4; + break; + case 0xff: + /* All done, bye-bye */ + printf("Done!\n"); + return; + break; + default: + printf("spudec: Error determining control type 0x%02x.\n",type); + return; + break; + } + + /* printf("spudec: Processsed control type 0x%02x.\n",type); */ + } while(off < size); +} + + + diff -r 6fbd39309b87 -r 28ae99036574 spudec.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/spudec.h Sat Apr 21 15:38:01 2001 +0000 @@ -0,0 +1,6 @@ +#ifndef _MPLAYER_SPUDEC_H +#define _MPLAYER_SPUDEC_H + +void spudec_process_control(unsigned char *, int, int*, int*); + +#endif