Index: MPEG.cpp =================================================================== RCS file: /cvs/cvsroot/smpeg/MPEG.cpp,v retrieving revision 1.29 retrieving revision 1.31 diff -u -u -r1.29 -r1.31 --- MPEG.cpp 2001/06/18 20:59:57 1.29 +++ MPEG.cpp 2003/01/26 00:21:41 1.31 @@ -98,7 +98,8 @@ videoaction = NULL; audio = NULL; video = NULL; - audioaction_enabled = videoaction_enabled = false; + audioaction_enabled = SDLaudio; + videoaction_enabled = false; loop = false; pause = false; @@ -133,6 +134,7 @@ video = NULL; system = NULL; error = NULL; + source = NULL; audiostream = videostream = NULL; audioaction = NULL; Index: MPEGaudio.h =================================================================== RCS file: /cvs/cvsroot/smpeg/MPEGaudio.h,v retrieving revision 1.22 retrieving revision 1.23 diff -u -u -r1.22 -r1.23 --- MPEGaudio.h 2001/04/04 20:42:40 1.22 +++ MPEGaudio.h 2001/07/17 19:52:24 1.23 @@ -212,6 +212,7 @@ /* MPEG header variables */ /*************************/ private: + int last_speed; int layer,protection,bitrateindex,padding,extendedmode; enum _mpegversion {mpeg1,mpeg2} version; enum _mode {fullstereo,joint,dual,single} mode; Index: MPEGlist.cpp =================================================================== RCS file: /cvs/cvsroot/smpeg/MPEGlist.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -u -r1.5 -r1.6 --- MPEGlist.cpp 2000/06/06 01:51:43 1.5 +++ MPEGlist.cpp 2003/01/26 00:21:41 1.6 @@ -16,7 +16,7 @@ if(prev) prev->next = next; if(data) { - delete data; + delete[] data; data = 0; } } Index: MPEGsystem.cpp =================================================================== RCS file: /cvs/cvsroot/smpeg/MPEGsystem.cpp,v retrieving revision 1.37 retrieving revision 1.38 diff -u -u -r1.37 -r1.38 --- MPEGsystem.cpp 2001/04/27 23:12:17 1.37 +++ MPEGsystem.cpp 2003/01/26 00:21:41 1.38 @@ -1165,8 +1165,8 @@ time = -1; } - delete buffer; + delete[] buffer; /* Get back to saved position */ if((pos = SDL_RWseek(source, pos, SEEK_SET)) < 0) Index: glmovie.c =================================================================== RCS file: /cvs/cvsroot/smpeg/glmovie.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -u -r1.5 -r1.6 --- glmovie.c 2000/10/04 17:38:03 1.5 +++ glmovie.c 2002/07/10 02:38:48 1.6 @@ -8,8 +8,8 @@ #include #include #include -#include +/*#include */ #include "glmovie.h" static void glmpeg_update( SDL_Surface*, Sint32, Sint32, Uint32, Uint32 ); Index: audio/MPEGaudio.cpp =================================================================== RCS file: /cvs/cvsroot/smpeg/audio/MPEGaudio.cpp,v retrieving revision 1.28 retrieving revision 1.29 diff -u -u -r1.28 -r1.29 --- audio/MPEGaudio.cpp 2001/04/04 20:42:40 1.28 +++ audio/MPEGaudio.cpp 2002/06/08 09:53:51 1.29 @@ -200,9 +200,13 @@ MPEGaudio:: Stop(void) { if ( valid_stream ) { - SDL_LockAudio(); + if ( sdl_audio ) + SDL_LockAudio(); + playing = false; - SDL_UnlockAudio(); + + if ( sdl_audio ) + SDL_UnlockAudio(); } ResetPause(); } Index: audio/mpegtoraw.cpp =================================================================== RCS file: /cvs/cvsroot/smpeg/audio/mpegtoraw.cpp,v retrieving revision 1.33 retrieving revision 1.35 diff -u -u -r1.33 -r1.35 --- audio/mpegtoraw.cpp 2001/04/05 20:27:48 1.33 +++ audio/mpegtoraw.cpp 2003/02/15 02:01:15 1.35 @@ -84,6 +84,7 @@ register REAL *s1,*s2; REAL *s3,*s4; + last_speed = 0; stereo = true; forcetomonoflag = false; forcetostereoflag = false; @@ -271,6 +272,20 @@ getbyte(); // CRC, Not check!! getbyte(); } + + // Sam 7/17 - skip sequences of quickly varying frequencies + int speed = frequencies[version][frequency]; + if ( speed != last_speed ) { + last_speed = speed; + if ( rawdatawriteoffset ) { + ++decodedframe; +#ifndef THREADED_AUDIO + ++currentframe; +#endif + } + return loadheader(); + } + return true; } @@ -350,7 +365,6 @@ } audio->decoding = false; - audio->decode_thread = NULL; return(0); } #endif /* THREADED_AUDIO */