From: <bal...@us...> - 2004-02-24 22:27:54
|
Update of /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5899/plugins/MVEPlayer Modified Files: MVEPlayerDesc.h MVEPlayerDesc.cpp MVEPlayer.cpp MVEPlay.h MVEPlay.cpp mvelib.h mvelib.cpp mve_play.cpp mve_audio.h mve_audio.cpp libmve.h decoders.h decoder8.cpp decoder16.cpp Log Message: Reformatted the Whole code using a Code Styler Index: MVEPlayerDesc.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer/MVEPlayerDesc.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MVEPlayerDesc.h 25 Nov 2003 13:48:00 -0000 1.2 --- MVEPlayerDesc.h 24 Feb 2004 22:20:40 -0000 1.3 *************** *** 26,35 **** #include "../Core/ClassDesc.h" ! class MVEPlayerDesc : public ClassDesc ! { public: MVEPlayerDesc(void); ~MVEPlayerDesc(void); ! void * Create(void); const char* ClassName(void); SClass_ID SuperClassID(void); --- 26,34 ---- #include "../Core/ClassDesc.h" ! class MVEPlayerDesc : public ClassDesc { public: MVEPlayerDesc(void); ~MVEPlayerDesc(void); ! void* Create(void); const char* ClassName(void); SClass_ID SuperClassID(void); Index: MVEPlayerDesc.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer/MVEPlayerDesc.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MVEPlayerDesc.cpp 25 Nov 2003 13:48:00 -0000 1.2 --- MVEPlayerDesc.cpp 24 Feb 2004 22:20:40 -0000 1.3 *************** *** 31,35 **** } ! void * MVEPlayerDesc::Create(void) { return new MVEPlay(); --- 31,35 ---- } ! void* MVEPlayerDesc::Create(void) { return new MVEPlay(); *************** *** 49,53 **** Class_ID MVEPlayerDesc::ClassID(void) { ! return Class_ID(0x5a271846, 0x982648af); } --- 49,53 ---- Class_ID MVEPlayerDesc::ClassID(void) { ! return Class_ID( 0x5a271846, 0x982648af ); } Index: MVEPlayer.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer/MVEPlayer.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** MVEPlayer.cpp 25 Nov 2003 13:48:00 -0000 1.3 --- MVEPlayer.cpp 24 Feb 2004 22:20:40 -0000 1.4 *************** *** 36,66 **** #include <windows.h> ! BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { ! return TRUE; } #endif ! GEM_EXPORT_DLL int LibNumberClasses() ! { ! return 1; } ! GEM_EXPORT_DLL ClassDesc *LibClassDesc(int i) { ! switch(i) { ! case 0: return &MVEPlayCD; ! default: return 0; } } ! GEM_EXPORT_DLL const char *LibDescription() { return "MVE Video Player"; } ! GEM_EXPORT_DLL unsigned long LibVersion() ! { ! return VERSION_GEMRB; } --- 36,69 ---- #include <windows.h> ! BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, ! LPVOID lpReserved) { ! return TRUE; } #endif ! GEM_EXPORT_DLL int LibNumberClasses() ! { ! return 1; } ! GEM_EXPORT_DLL ClassDesc* LibClassDesc(int i) ! { ! switch (i) { ! case 0: return &MVEPlayCD; ! default: return 0; } } ! GEM_EXPORT_DLL const char* LibDescription() ! { return "MVE Video Player"; } ! GEM_EXPORT_DLL unsigned long LibVersion() ! { ! return VERSION_GEMRB; } Index: MVEPlay.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer/MVEPlay.h,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** MVEPlay.h 24 Feb 2004 15:24:02 -0000 1.19 --- MVEPlay.h 24 Feb 2004 22:20:40 -0000 1.20 *************** *** 31,52 **** #include <SDL_thread.h> ! class MVEPlay : public MoviePlayer ! { private: ! DataStream * str; bool autoFree; bool validVideo; ! static int doPlay(const DataStream *mve); ! static unsigned int fileRead(void *handle, void *buf, unsigned int count); ! static void showFrame(unsigned char *buf, unsigned int bufw, unsigned int bufh, ! unsigned int sx, unsigned int sy, ! unsigned int w, unsigned int h, ! unsigned int dstx, unsigned int dsty); ! static void setPalette(unsigned char *p, unsigned start, unsigned count); static int pollEvents(); public: MVEPlay(void); ~MVEPlay(void); ! bool Open(DataStream * stream, bool autoFree = true); int Play(); public: --- 31,50 ---- #include <SDL_thread.h> ! class MVEPlay : public MoviePlayer { private: ! DataStream* str; bool autoFree; bool validVideo; ! static int doPlay(const DataStream* mve); ! static unsigned int fileRead(void* handle, void* buf, unsigned int count); ! static void showFrame(unsigned char* buf, unsigned int bufw, ! unsigned int bufh, unsigned int sx, unsigned int sy, unsigned int w, ! unsigned int h, unsigned int dstx, unsigned int dsty); ! static void setPalette(unsigned char* p, unsigned start, unsigned count); static int pollEvents(); public: MVEPlay(void); ~MVEPlay(void); ! bool Open(DataStream* stream, bool autoFree = true); int Play(); public: Index: MVEPlay.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer/MVEPlay.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** MVEPlay.cpp 24 Feb 2004 15:24:03 -0000 1.9 --- MVEPlay.cpp 24 Feb 2004 22:20:40 -0000 1.10 *************** *** 25,33 **** #include "libmve.h" ! static const char MVESignature[] = "Interplay MVE File\x1A"; ! static const int MVE_SIGNATURE_LEN = 19; ! static SDL_Surface *g_screen; static unsigned char g_palette[768]; static int g_truecolor; --- 25,33 ---- #include "libmve.h" ! static const char MVESignature[] = "Interplay MVE File\x1A"; ! static const int MVE_SIGNATURE_LEN = 19; ! static SDL_Surface* g_screen; static unsigned char g_palette[768]; static int g_truecolor; *************** *** 41,68 **** MVEPlay::~MVEPlay(void) { ! if(str && autoFree) ! delete(str); } ! bool MVEPlay::Open(DataStream * stream, bool autoFree) { validVideo = false; ! if(stream == NULL) return false; ! if(str && this->autoFree) ! delete(str); str = stream; this->autoFree = autoFree; char Signature[MVE_SIGNATURE_LEN]; ! str->Read(Signature, MVE_SIGNATURE_LEN); ! if(memcmp(Signature, MVESignature, MVE_SIGNATURE_LEN) != 0) { ! if(memcmp(Signature, "BIK", 3) == 0) { ! printf("Warning!!! This is a Bink Video File...\nUnfortunately we cannot provide a Bink Video Player\nWe are sorry!\n"); return true; } return false; } ! ! str->Seek(0, GEM_STREAM_START); validVideo = true; return true; --- 41,71 ---- MVEPlay::~MVEPlay(void) { ! if (str && autoFree) { ! delete( str ); ! } } ! bool MVEPlay::Open(DataStream* stream, bool autoFree) { validVideo = false; ! if (stream == NULL) { return false; ! } ! if (str && this->autoFree) { ! delete( str ); ! } str = stream; this->autoFree = autoFree; char Signature[MVE_SIGNATURE_LEN]; ! str->Read( Signature, MVE_SIGNATURE_LEN ); ! if (memcmp( Signature, MVESignature, MVE_SIGNATURE_LEN ) != 0) { ! if (memcmp( Signature, "BIK", 3 ) == 0) { ! printf( "Warning!!! This is a Bink Video File...\nUnfortunately we cannot provide a Bink Video Player\nWe are sorry!\n" ); return true; } return false; } ! ! str->Seek( 0, GEM_STREAM_START ); validVideo = true; return true; *************** *** 71,82 **** int MVEPlay::Play() { ! if(!validVideo) return 0; //Start Movie Playback ! doPlay(str); ! return 0; } ! int MVEPlay::doPlay(const DataStream *mve) { int result; --- 74,86 ---- int MVEPlay::Play() { ! if (!validVideo) { return 0; + } //Start Movie Playback ! doPlay( str ); ! return 0; } ! int MVEPlay::doPlay(const DataStream* mve) { int result; *************** *** 85,117 **** MVE_videoSpec vSpec; ! if (SDL_Init(SDL_INIT_AUDIO) < 0) ! { ! fprintf(stderr, "Couldn't initialize SDL Audio: %s\n",SDL_GetError()); } ! memset(g_palette, 0, 768); ! MVE_sndInit(1); ! MVE_memCallbacks(malloc, free); ! MVE_ioCallbacks(fileRead); ! MVE_sfCallbacks(showFrame); ! MVE_palCallbacks(setPalette); ! MVE_rmPrepMovie((void*)mve, -1, -1, 1); ! MVE_getVideoSpec(&vSpec); ! bpp = vSpec.truecolor?16:8; ! g_screen = (SDL_Surface*)core->GetVideoDriver()->GetVideoSurface(); ! SDL_LockSurface(g_screen); ! memset(g_screen->pixels, 0, g_screen->w*g_screen->h*g_screen->format->BytesPerPixel); ! SDL_UnlockSurface(g_screen); ! SDL_Flip(g_screen); g_truecolor = vSpec.truecolor; ! while (!done && (result = MVE_rmStepMovie()) == 0) ! { done = pollEvents(); } --- 89,121 ---- MVE_videoSpec vSpec; ! if (SDL_Init( SDL_INIT_AUDIO ) < 0) { ! fprintf( stderr, "Couldn't initialize SDL Audio: %s\n", ! SDL_GetError() ); } ! memset( g_palette, 0, 768 ); ! MVE_sndInit( 1 ); ! MVE_memCallbacks( malloc, free ); ! MVE_ioCallbacks( fileRead ); ! MVE_sfCallbacks( showFrame ); ! MVE_palCallbacks( setPalette ); ! MVE_rmPrepMovie( ( void * ) mve, -1, -1, 1 ); ! MVE_getVideoSpec( &vSpec ); ! bpp = vSpec.truecolor ? 16 : 8; ! g_screen = ( SDL_Surface * ) core->GetVideoDriver()->GetVideoSurface(); ! SDL_LockSurface( g_screen ); ! memset( g_screen->pixels, 0, ! g_screen->w * g_screen->h * g_screen->format->BytesPerPixel ); ! SDL_UnlockSurface( g_screen ); ! SDL_Flip( g_screen ); g_truecolor = vSpec.truecolor; ! while (!done && ( result = MVE_rmStepMovie() ) == 0) { done = pollEvents(); } *************** *** 124,159 **** } ! unsigned int MVEPlay::fileRead(void *handle, void *buf, unsigned int count) { unsigned numread; ! numread = ((DataStream*)handle)->Read(buf, count);//fread(buf, 1, count, (FILE *)handle); ! return (numread == count); } ! void MVEPlay::showFrame(unsigned char *buf, unsigned int bufw, unsigned int bufh, ! unsigned int sx, unsigned int sy, ! unsigned int w, unsigned int h, ! unsigned int dstx, unsigned int dsty) { int i; ! unsigned char *pal; ! SDL_Surface *sprite; SDL_Rect srcRect, destRect; ! assert(bufw == w && bufh == h); ! if (g_truecolor) ! sprite = SDL_CreateRGBSurfaceFrom(buf, bufw, bufh, 16, 2 * bufw, 0x7C00, 0x03E0, 0x001F, 0); ! else ! { ! sprite = SDL_CreateRGBSurfaceFrom(buf, bufw, bufh, 8, bufw, 0x7C00, 0x03E0, 0x001F, 0); pal = g_palette; ! for(i = 0; i < 256; i++) ! { ! sprite->format->palette->colors[i].r = (*pal++) << 2; ! sprite->format->palette->colors[i].g = (*pal++) << 2; ! sprite->format->palette->colors[i].b = (*pal++) << 2; sprite->format->palette->colors[i].unused = 0; } --- 128,162 ---- } ! unsigned int MVEPlay::fileRead(void* handle, void* buf, unsigned int count) { unsigned numread; ! numread = ( ( DataStream * ) handle )->Read( buf, count );//fread(buf, 1, count, (FILE *)handle); ! return ( numread == count ); } ! void MVEPlay::showFrame(unsigned char* buf, unsigned int bufw, ! unsigned int bufh, unsigned int sx, unsigned int sy, unsigned int w, ! unsigned int h, unsigned int dstx, unsigned int dsty) { int i; ! unsigned char * pal; ! SDL_Surface* sprite; SDL_Rect srcRect, destRect; ! assert( bufw == w && bufh == h ); ! if (g_truecolor) { ! sprite = SDL_CreateRGBSurfaceFrom( buf, bufw, bufh, 16, 2 * bufw, ! 0x7C00, 0x03E0, 0x001F, 0 ); ! } else { ! sprite = SDL_CreateRGBSurfaceFrom( buf, bufw, bufh, 8, bufw, 0x7C00, ! 0x03E0, 0x001F, 0 ); pal = g_palette; ! for (i = 0; i < 256; i++) { ! sprite->format->palette->colors[i].r = ( *pal++ ) << 2; ! sprite->format->palette->colors[i].g = ( *pal++ ) << 2; ! sprite->format->palette->colors[i].b = ( *pal++ ) << 2; sprite->format->palette->colors[i].unused = 0; } *************** *** 169,181 **** destRect.h = h; ! SDL_BlitSurface(sprite, &srcRect, g_screen, &destRect); ! if ( (g_screen->flags & SDL_DOUBLEBUF) == SDL_DOUBLEBUF ) ! SDL_Flip(g_screen); ! else ! SDL_UpdateRects(g_screen, 1, &destRect); ! SDL_FreeSurface(sprite); } ! void MVEPlay::setPalette(unsigned char *p, unsigned start, unsigned count) { //Set color 0 to be black --- 172,185 ---- destRect.h = h; ! SDL_BlitSurface( sprite, &srcRect, g_screen, &destRect ); ! if (( g_screen->flags & SDL_DOUBLEBUF ) == SDL_DOUBLEBUF) { ! SDL_Flip( g_screen ); ! } else { ! SDL_UpdateRects( g_screen, 1, &destRect ); ! } ! SDL_FreeSurface( sprite ); } ! void MVEPlay::setPalette(unsigned char* p, unsigned start, unsigned count) { //Set color 0 to be black *************** *** 186,190 **** //movie libs palette into our array ! memcpy(g_palette + start*3, p+start*3, count*3); } --- 190,194 ---- //movie libs palette into our array ! memcpy( g_palette + start * 3, p + start * 3, count * 3 ); } *************** *** 193,219 **** SDL_Event event; ! while (SDL_PollEvent(&event)) ! { ! switch(event.type) ! { ! case SDL_QUIT: ! case SDL_MOUSEBUTTONDOWN: ! case SDL_MOUSEBUTTONUP: ! return 1; ! case SDL_KEYDOWN: ! switch (event.key.keysym.sym) ! { ! case SDLK_ESCAPE: ! case SDLK_q: return 1; ! case SDLK_f: ! SDL_WM_ToggleFullScreen(g_screen); break; default: break; - } - break; - default: - break; } } --- 197,220 ---- SDL_Event event; ! while (SDL_PollEvent( &event )) { ! switch (event.type) { ! case SDL_QUIT: ! case SDL_MOUSEBUTTONDOWN: ! case SDL_MOUSEBUTTONUP: return 1; ! case SDL_KEYDOWN: ! switch (event.key.keysym.sym) { ! case SDLK_ESCAPE: ! case SDLK_q: ! return 1; ! case SDLK_f: ! SDL_WM_ToggleFullScreen( g_screen ); ! break; ! default: ! break; ! } break; default: break; } } Index: mvelib.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer/mvelib.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** mvelib.h 24 Feb 2004 15:24:03 -0000 1.1 --- mvelib.h 24 Feb 2004 22:20:40 -0000 1.2 *************** *** 16,26 **** * structure for maintaining info on a MVEFILE stream */ ! typedef struct MVEFILE ! { ! void *stream; ! unsigned char *cur_chunk; ! int buf_size; ! int cur_fill; ! int next_segment; } MVEFILE; --- 16,25 ---- * structure for maintaining info on a MVEFILE stream */ ! typedef struct MVEFILE { ! void* stream; ! unsigned char* cur_chunk; ! int buf_size; ! int cur_fill; ! int next_segment; } MVEFILE; *************** *** 28,47 **** * open a .MVE file */ ! MVEFILE *mvefile_open(void *stream); /* * close a .MVE file */ ! void mvefile_close(MVEFILE *movie); /* * get size of next segment in chunk (-1 if no more segments in chunk) */ ! int mvefile_get_next_segment_size(MVEFILE *movie); /* * get type of next segment in chunk (0xff if no more segments in chunk) */ ! unsigned char mvefile_get_next_segment_major(MVEFILE *movie); /* --- 27,46 ---- * open a .MVE file */ ! MVEFILE* mvefile_open(void* stream); /* * close a .MVE file */ ! void mvefile_close(MVEFILE* movie); /* * get size of next segment in chunk (-1 if no more segments in chunk) */ ! int mvefile_get_next_segment_size(MVEFILE* movie); /* * get type of next segment in chunk (0xff if no more segments in chunk) */ ! unsigned char mvefile_get_next_segment_major(MVEFILE* movie); /* *************** *** 49,82 **** * chunk) */ ! unsigned char mvefile_get_next_segment_minor(MVEFILE *movie); /* * see next segment (return NULL if no next segment) */ ! unsigned char *mvefile_get_next_segment(MVEFILE *movie); /* * advance to next segment */ ! void mvefile_advance_segment(MVEFILE *movie); /* * fetch the next chunk (return 0 if at end of stream) */ ! int mvefile_fetch_next_chunk(MVEFILE *movie); /* * callback for segment type */ ! typedef int (*MVESEGMENTHANDLER)(unsigned char major, unsigned char minor, unsigned char *data, int len, void *context); /* * structure for maintaining an MVE stream */ ! typedef struct MVESTREAM ! { ! MVEFILE *movie; ! void *context; ! MVESEGMENTHANDLER handlers[32]; } MVESTREAM; --- 48,81 ---- * chunk) */ ! unsigned char mvefile_get_next_segment_minor(MVEFILE* movie); /* * see next segment (return NULL if no next segment) */ ! unsigned char* mvefile_get_next_segment(MVEFILE* movie); /* * advance to next segment */ ! void mvefile_advance_segment(MVEFILE* movie); /* * fetch the next chunk (return 0 if at end of stream) */ ! int mvefile_fetch_next_chunk(MVEFILE* movie); /* * callback for segment type */ ! typedef int (*MVESEGMENTHANDLER)(unsigned char major, unsigned char minor, ! unsigned char* data, int len, void* context); /* * structure for maintaining an MVE stream */ ! typedef struct MVESTREAM { ! MVEFILE* movie; ! void* context; ! MVESEGMENTHANDLER handlers[32]; } MVESTREAM; *************** *** 84,113 **** * open an MVE stream */ ! MVESTREAM *mve_open(void *stream); /* * close an MVE stream */ ! void mve_close(MVESTREAM *movie); /* * reset an MVE stream */ ! void mve_reset(MVESTREAM *movie); /* * set segment type handler */ ! void mve_set_handler(MVESTREAM *movie, unsigned char major, MVESEGMENTHANDLER handler); /* * set segment handler context */ ! void mve_set_handler_context(MVESTREAM *movie, void *context); /* * play next chunk */ ! int mve_play_next_chunk(MVESTREAM *movie); #endif /* INCLUDED_MVELIB_H */ --- 83,113 ---- * open an MVE stream */ ! MVESTREAM* mve_open(void* stream); /* * close an MVE stream */ ! void mve_close(MVESTREAM* movie); /* * reset an MVE stream */ ! void mve_reset(MVESTREAM* movie); /* * set segment type handler */ ! void mve_set_handler(MVESTREAM* movie, unsigned char major, ! MVESEGMENTHANDLER handler); /* * set segment handler context */ ! void mve_set_handler_context(MVESTREAM* movie, void* context); /* * play next chunk */ ! int mve_play_next_chunk(MVESTREAM* movie); #endif /* INCLUDED_MVELIB_H */ Index: mvelib.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer/mvelib.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** mvelib.cpp 24 Feb 2004 15:24:03 -0000 1.1 --- mvelib.cpp 24 Feb 2004 22:20:40 -0000 1.2 *************** *** 9,13 **** #include "mvelib.h" ! static const char MVE_HEADER[] = "Interplay MVE File\x1A"; static const short MVE_HDRCONST1 = 0x001A; static const short MVE_HDRCONST2 = 0x0100; --- 9,13 ---- #include "mvelib.h" ! static const char MVE_HEADER[] = "Interplay MVE File\x1A"; static const short MVE_HDRCONST1 = 0x001A; [...991 lines suppressed...] ! movie->movie = mvefile_open( stream ); ! return ( movie->movie == NULL ) ? 0 : 1; } *************** *** 511,516 **** * reset an MVESTREAM */ ! static void _mvestream_reset(MVESTREAM *movie) { ! mvefile_reset(movie->movie); } --- 532,537 ---- * reset an MVESTREAM */ ! static void _mvestream_reset(MVESTREAM* movie) { ! mvefile_reset( movie->movie ); } Index: mve_play.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer/mve_play.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** mve_play.cpp 24 Feb 2004 16:05:03 -0000 1.2 --- mve_play.cpp 24 Feb 2004 22:20:40 -0000 1.3 *************** *** 33,54 **** #include "libmve.h" ! #define MVE_OPCODE_ENDOFSTREAM 0x00 ! #define MVE_OPCODE_ENDOFCHUNK 0x01 ! #define MVE_OPCODE_CREATETIMER 0x02 ! #define MVE_OPCODE_INITAUDIOBUFFERS 0x03 ! #define MVE_OPCODE_STARTSTOPAUDIO 0x04 ! #define MVE_OPCODE_INITVIDEOBUFFERS 0x05 ! #define MVE_OPCODE_DISPLAYVIDEO 0x07 [...1281 lines suppressed...] *** 764,771 **** { #ifdef AUDIO ! if (x == -1) mve_audio_enabled = 0; ! else mve_audio_enabled = 1; #endif } --- 812,821 ---- { #ifdef AUDIO ! if (x == -1) { mve_audio_enabled = 0; ! } else { mve_audio_enabled = 1; + } #endif + } Index: mve_audio.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer/mve_audio.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** mve_audio.h 24 Feb 2004 15:24:03 -0000 1.3 --- mve_audio.h 24 Feb 2004 22:20:40 -0000 1.4 *************** *** 2,6 **** #define INCLUDED_MVE_AUDIO_H ! void mveaudio_uncompress(short *buffer, unsigned char *data, int length); #endif /* INCLUDED_MVE_AUDIO_H */ --- 2,6 ---- #define INCLUDED_MVE_AUDIO_H ! void mveaudio_uncompress(short* buffer, unsigned char* data, int length); #endif /* INCLUDED_MVE_AUDIO_H */ Index: mve_audio.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer/mve_audio.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** mve_audio.cpp 24 Feb 2004 15:24:03 -0000 1.3 --- mve_audio.cpp 24 Feb 2004 22:20:40 -0000 1.4 *************** *** 1,55 **** ! static int audio_exp_table[256] = ! { ! 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, ! 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, ! 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 47, 51, 56, 61, ! 66, 72, 79, 86, 94, 102, 112, 122, 133, 145, 158, 173, 189, 206, 225, 245, ! 267, 292, 318, 348, 379, 414, 452, 493, 538, 587, 640, 699, 763, 832, 908, 991, ! 1081, 1180, 1288, 1405, 1534, 1673, 1826, 1993, 2175, 2373, 2590, 2826, 3084, 3365, 3672, 4008, ! 4373, 4772, 5208, 5683, 6202, 6767, 7385, 8059, 8794, 9597, 10472, 11428, 12471, 13609, 14851, 16206, ! 17685, 19298, 21060, 22981, 25078, 27367, 29864, 32589, -29973, -26728, -23186, -19322, -15105, -10503, -5481, -1, ! 1, 1, 5481, 10503, 15105, 19322, 23186, 26728, 29973, -32589, -29864, -27367, -25078, -22981, -21060, -19298, ! -17685, -16206, -14851, -13609, -12471, -11428, -10472, -9597, -8794, -8059, -7385, -6767, -6202, -5683, -5208, -4772, ! -4373, -4008, -3672, -3365, -3084, -2826, -2590, -2373, -2175, -1993, -1826, -1673, -1534, -1405, -1288, -1180, ! -1081, -991, -908, -832, -763, -699, -640, -587, -538, -493, -452, -414, -379, -348, -318, -292, ! -267, -245, -225, -206, -189, -173, -158, -145, -133, -122, -112, -102, -94, -86, -79, -72, ! -66, -61, -56, -51, -47, -43, -42, -41, -40, -39, -38, -37, -36, -35, -34, -33, ! -32, -31, -30, -29, -28, -27, -26, -25, -24, -23, -22, -21, -20, -19, -18, -17, ! -16, -15, -14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1 }; ! static int getWord(unsigned char **fin) { ! int value = ((*fin)[1] << 8) | (*fin)[0]; ! *fin += 2; ! return value; } ! static void sendWord(short **fout, int nOffset) { ! *(*fout)++ = nOffset; } ! static void processSwath(short *fout, unsigned char *data, int swath, int *offsets) { ! int i; ! for (i=0; i<swath; i++) ! { ! offsets[i&1] += audio_exp_table[data[i]]; ! sendWord(&fout, offsets[i&1]); ! } } ! void mveaudio_uncompress(short *buffer, unsigned char *data, int length) { ! int nCurOffsets[2]; ! int swath; ! data += 4; ! swath = getWord(&data) / 2; ! nCurOffsets[0] = getWord(&data); ! nCurOffsets[1] = getWord(&data); ! sendWord(&buffer, nCurOffsets[0]); ! sendWord(&buffer, nCurOffsets[1]); ! processSwath(buffer, data, swath, nCurOffsets); } --- 1,58 ---- ! static int audio_exp_table[256] = { ! 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ! 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, ! 39, 40, 41, 42, 43, 47, 51, 56, 61, 66, 72, 79, 86, 94, 102, 112, 122, ! 133, 145, 158, 173, 189, 206, 225, 245, 267, 292, 318, 348, 379, 414, 452, ! 493, 538, 587, 640, 699, 763, 832, 908, 991, 1081, 1180, 1288, 1405, 1534, ! 1673, 1826, 1993, 2175, 2373, 2590, 2826, 3084, 3365, 3672, 4008, 4373, ! 4772, 5208, 5683, 6202, 6767, 7385, 8059, 8794, 9597, 10472, 11428, 12471, ! 13609, 14851, 16206, 17685, 19298, 21060, 22981, 25078, 27367, 29864, ! 32589, -29973, -26728, -23186, -19322, -15105, -10503, -5481, -1, 1, 1, ! 5481, 10503, 15105, 19322, 23186, 26728, 29973, -32589, -29864, -27367, ! -25078, -22981, -21060, -19298, -17685, -16206, -14851, -13609, -12471, ! -11428, -10472, -9597, -8794, -8059, -7385, -6767, -6202, -5683, -5208, ! -4772, -4373, -4008, -3672, -3365, -3084, -2826, -2590, -2373, -2175, ! -1993, -1826, -1673, -1534, -1405, -1288, -1180, -1081, -991, -908, -832, ! -763, -699, -640, -587, -538, -493, -452, -414, -379, -348, -318, -292, ! -267, -245, -225, -206, -189, -173, -158, -145, -133, -122, -112, -102, ! -94, -86, -79, -72, -66, -61, -56, -51, -47, -43, -42, -41, -40, -39, -38, ! -37, -36, -35, -34, -33, -32, -31, -30, -29, -28, -27, -26, -25, -24, -23, ! -22, -21, -20, -19, -18, -17, -16, -15, -14, -13, -12, -11, -10, -9, -8, ! -7, -6, -5, -4, -3, -2, -1 }; ! static int getWord(unsigned char** fin) { ! int value = ( ( *fin )[1] << 8 ) | ( *fin )[0]; ! *fin += 2; ! return value; } ! static void sendWord(short** fout, int nOffset) { ! *( *fout )++ = nOffset; } ! static void processSwath(short* fout, unsigned char* data, int swath, ! int* offsets) { ! int i; ! for (i = 0; i < swath; i++) { ! offsets[i & 1] += audio_exp_table[data[i]]; ! sendWord( &fout, offsets[i & 1] ); ! } } ! void mveaudio_uncompress(short* buffer, unsigned char* data, int length) { ! int nCurOffsets[2]; ! int swath; ! data += 4; ! swath = getWord( &data ) / 2; ! nCurOffsets[0] = getWord( &data ); ! nCurOffsets[1] = getWord( &data ); ! sendWord( &buffer, nCurOffsets[0] ); ! sendWord( &buffer, nCurOffsets[1] ); ! processSwath( buffer, data, swath, nCurOffsets ); } Index: libmve.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer/libmve.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** libmve.h 24 Feb 2004 15:24:03 -0000 1.1 --- libmve.h 24 Feb 2004 22:20:40 -0000 1.2 *************** *** 4,8 **** #define MVE_ERR_EOF 1 ! typedef struct{ int screenWidth; int screenHeight; --- 4,8 ---- #define MVE_ERR_EOF 1 ! typedef struct { int screenWidth; int screenHeight; *************** *** 12,39 **** } MVE_videoSpec; ! int MVE_rmPrepMovie(void *stream, int x, int y, int track); ! int MVE_rmStepMovie(); void MVE_rmHoldMovie(); void MVE_rmEndMovie(); ! void MVE_getVideoSpec(MVE_videoSpec *vSpec); void MVE_sndInit(int x); ! typedef unsigned int (*mve_cb_Read)(void *stream, ! void *buffer, ! unsigned int count); ! typedef void *(*mve_cb_Alloc)(unsigned int size); ! typedef void (*mve_cb_Free)(void *ptr); ! typedef void (*mve_cb_ShowFrame)(unsigned char *buffer, ! unsigned int bufw, unsigned int bufh, ! unsigned int sx, unsigned int sy, ! unsigned int w, unsigned int h, ! unsigned int dstx, unsigned int dsty); ! typedef void (*mve_cb_SetPalette)(unsigned char *p, ! unsigned int start, unsigned int count); void MVE_ioCallbacks(mve_cb_Read io_read); --- 12,36 ---- } MVE_videoSpec; ! int MVE_rmPrepMovie(void* stream, int x, int y, int track); ! int MVE_rmStepMovie(); void MVE_rmHoldMovie(); void MVE_rmEndMovie(); ! void MVE_getVideoSpec(MVE_videoSpec* vSpec); void MVE_sndInit(int x); ! typedef unsigned int (*mve_cb_Read)(void* stream, void* buffer, ! unsigned int count); ! typedef void*(*mve_cb_Alloc)(unsigned int size); ! typedef void (*mve_cb_Free)(void* ptr); ! typedef void (*mve_cb_ShowFrame)(unsigned char* buffer, unsigned int bufw, ! unsigned int bufh, unsigned int sx, unsigned int sy, unsigned int w, ! unsigned int h, unsigned int dstx, unsigned int dsty); ! typedef void (*mve_cb_SetPalette)(unsigned char* p, unsigned int start, ! unsigned int count); void MVE_ioCallbacks(mve_cb_Read io_read); Index: decoders.h =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer/decoders.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** decoders.h 24 Feb 2004 15:24:03 -0000 1.1 --- decoders.h 24 Feb 2004 22:20:40 -0000 1.2 *************** *** 9,16 **** extern int g_width, g_height; ! extern void *g_vBackBuf1, *g_vBackBuf2; ! extern void decodeFrame8(unsigned char *pFrame, unsigned char *pMap, int mapRemain, unsigned char *pData, int dataRemain); ! extern void decodeFrame16(unsigned char *pFrame, unsigned char *pMap, int mapRemain, unsigned char *pData, int dataRemain); #endif // _DECODERS_H --- 9,18 ---- extern int g_width, g_height; ! extern void* g_vBackBuf1, * g_vBackBuf2; ! extern void decodeFrame8(unsigned char* pFrame, unsigned char* pMap, ! int mapRemain, unsigned char* pData, int dataRemain); ! extern void decodeFrame16(unsigned char* pFrame, unsigned char* pMap, ! int mapRemain, unsigned char* pData, int dataRemain); #endif // _DECODERS_H Index: decoder8.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer/decoder8.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** decoder8.cpp 24 Feb 2004 15:24:03 -0000 1.1 --- decoder8.cpp 24 Feb 2004 22:20:40 -0000 1.2 *************** *** 6,12 **** #include "decoders.h" ! static void dispatchDecoder(unsigned char **pFrame, unsigned char codeType, unsigned char **pData, int *pDataRemain, int *curXb, int *curYb); ! void decodeFrame8(unsigned char *pFrame, unsigned char *pMap, int mapRemain, unsigned char *pData, int dataRemain) { int i, j; --- 6,14 ---- #include "decoders.h" [...1560 lines suppressed...] ! P1 P0 P1 P0 P1 P0 P1 P0 ! ... ! P0 P1 P0 P1 P0 P1 P0 P1 ! P1 P0 P1 P0 P1 P0 P1 P0 ! */ ! for (i = 0; i < 8; i++) { ! for (j = 0; j < 8; j++) { ! ( *pFrame )[j] = ( *pData )[( i + j ) & 1]; } + *pFrame += g_width; } *pData += 2; *pDataRemain -= 2; ! *pFrame -= ( 8 * g_width - 8 ); ! break; ! default: ! break; } } Index: decoder16.cpp =================================================================== RCS file: /cvsroot/gemrb/gemrb/gemrb/plugins/MVEPlayer/decoder16.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** decoder16.cpp 24 Feb 2004 15:24:03 -0000 1.1 --- decoder16.cpp 24 Feb 2004 22:20:40 -0000 1.2 *************** *** 7,26 **** #include "decoders.h" ! static unsigned short *backBuf1, *backBuf2; static int lookup_initialized; ! static void dispatchDecoder16(unsigned short **pFrame, unsigned char codeType, unsigned char **pData, unsigned char **pOffData, int *pDataRemain, int *curXb, int *curYb); static void genLoopkupTable(); ! void decodeFrame16(unsigned char *pFrame, unsigned char *pMap, int mapRemain, unsigned char *pData, int dataRemain) { [...1287 lines suppressed...] ! p[0] = GETPIXEL( pData, 0 ); ! p[1] = GETPIXEL( pData, 1 ); ! ! for (i = 0; i < 8; i++) { ! for (j = 0; j < 8; j++) { ! ( *pFrame )[j] = p[( i + j ) & 1]; ! } ! *pFrame += g_width; } ! *pData += 4; ! *pDataRemain -= 4; ! break; ! default: ! break; ! } ! *pFrame = pDstBak + 8; } |