From faf4c13bf41a17ce920a2194fc396f8bf7b44331 Mon Sep 17 00:00:00 2001 From: tobigun Date: Wed, 2 Jul 2008 07:50:39 +0000 Subject: Audio/Video engine update: - lyrics<->audio synchronisation (TSyncSource) - better resampling (optional support for libsamplerate) - cleaner termination of audio/video streams/devices - improved decoders and decoder infrastructure - many other improvements/cleanups Currently just for testing (not enabled by default): - Background music - Voice-Passthrough (hear what you sing) - Video VSync git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1157 b956fd51-792f-4845-bead-9b4dfca2ff2c --- Game/Code/UltraStar.dpr | 76 +++++++++++++++++++++++++++++++------------------ 1 file changed, 48 insertions(+), 28 deletions(-) (limited to 'Game/Code/UltraStar.dpr') diff --git a/Game/Code/UltraStar.dpr b/Game/Code/UltraStar.dpr index 75e82207..edb8d7de 100644 --- a/Game/Code/UltraStar.dpr +++ b/Game/Code/UltraStar.dpr @@ -42,6 +42,7 @@ uses sdl_image in 'lib\JEDI-SDL\SDL_Image\Pas\sdl_image.pas', sdl_ttf in 'lib\JEDI-SDL\SDL_ttf\Pas\sdl_ttf.pas', sdlutils in 'lib\JEDI-SDL\SDL\Pas\sdlutils.pas', + UMediaCore_SDL in 'Classes\UMediaCore_SDL.pas', zlib in 'lib\zlib\zlib.pas', png in 'lib\libpng\png.pas', @@ -76,18 +77,23 @@ uses {$ENDIF} {$IFDEF UseFFMpeg} - avcodec in 'lib\ffmpeg\avcodec.pas', - avformat in 'lib\ffmpeg\avformat.pas', - avutil in 'lib\ffmpeg\avutil.pas', - rational in 'lib\ffmpeg\rational.pas', - opt in 'lib\ffmpeg\opt.pas', - avio in 'lib\ffmpeg\avio.pas', - mathematics in 'lib\ffmpeg\mathematics.pas', + avcodec in 'lib\ffmpeg\avcodec.pas', + avformat in 'lib\ffmpeg\avformat.pas', + avutil in 'lib\ffmpeg\avutil.pas', + rational in 'lib\ffmpeg\rational.pas', + opt in 'lib\ffmpeg\opt.pas', + avio in 'lib\ffmpeg\avio.pas', + mathematics in 'lib\ffmpeg\mathematics.pas', + UMediaCore_FFMpeg in 'Classes\UMediaCore_FFMpeg.pas', {$IFDEF UseSWScale} - swscale in 'lib\ffmpeg\swscale.pas', + swscale in 'lib\ffmpeg\swscale.pas', {$ENDIF} {$ENDIF} + {$IFDEF UseSRCResample} + samplerate in 'lib\samplerate\samplerate.pas', + {$ENDIF} + {$IFDEF UseProjectM} projectM in 'lib\projectM\projectM.pas', {$ENDIF} @@ -145,6 +151,7 @@ uses UDLLManager in 'Classes\UDLLManager.pas', UPlaylist in 'Classes\UPlaylist.pas', UCommandLine in 'Classes\UCommandLine.pas', + URingBuffer in 'Classes\URingBuffer.pas', UTextClasses in 'Classes\UTextClasses.pas', USingScores in 'Classes\USingScores.pas', USingNotes in 'Classes\USingNotes.pas', @@ -170,43 +177,56 @@ uses {$ENDIF} //------------------------------ - //Includes - Media support classes.... - // Make sure UMedia always first, then UMedia_dummy + //Includes - Media //------------------------------ - // TODO : these all need to be renamed like UMedia_******** for consistency UMusic in 'Classes\UMusic.pas', UAudioPlaybackBase in 'Classes\UAudioPlaybackBase.pas', - UMedia_dummy in 'Classes\UMedia_dummy.pas', // Must be first UMedia Unit, all others will override available interfaces -{$IFDEF UseProjectM} - UVisualizer in 'Classes\UVisualizer.pas', // MUST be before Video... so video can override... -{$ENDIF} +{$IF Defined(UsePortaudioPlayback) or Defined(UseSDLPlayback)} + UFFT in 'lib\fft\UFFT.pas', + UAudioPlayback_Softmixer in 'Classes\UAudioPlayback_SoftMixer.pas', +{$IFEND} + UAudioConverter in 'Classes\UAudioConverter.pas', + + //****************************** + //Pluggable media modules + // The modules are prioritized as in the include list below. + // This means the first entry has highest priority, the last lowest. + //****************************** + + // TODO : these all should be moved to a media folder + {$IFDEF UseFFMpegVideo} - UVideo in 'Classes\UVideo.pas', + UVideo in 'Classes\UVideo.pas', {$ENDIF} -{$IFDEF UseFFMpegDecoder} - UAudioDecoder_FFMpeg in 'Classes\UAudioDecoder_FFMpeg.pas', // MUST be before Playback-classes +{$IFDEF UseProjectM} + // must be after UVideo, so it will not be the default video module + UVisualizer in 'Classes\UVisualizer.pas', {$ENDIF} {$IFDEF UseBASSInput} - UAudioInput_Bass in 'Classes\UAudioInput_Bass.pas', + UAudioInput_Bass in 'Classes\UAudioInput_Bass.pas', +{$ENDIF} +{$IFDEF UseBASSDecoder} + // prefer Bass to FFMpeg if possible + UAudioDecoder_Bass in 'Classes\UAudioDecoder_Bass.pas', {$ENDIF} {$IFDEF UseBASSPlayback} - UAudioPlayback_Bass in 'Classes\UAudioPlayback_Bass.pas', + UAudioPlayback_Bass in 'Classes\UAudioPlayback_Bass.pas', +{$ENDIF} +{$IFDEF UseSDLPlayback} + UAudioPlayback_SDL in 'Classes\UAudioPlayback_SDL.pas', {$ENDIF} {$IFDEF UsePortaudioInput} - UAudioInput_Portaudio in 'Classes\UAudioInput_Portaudio.pas', + UAudioInput_Portaudio in 'Classes\UAudioInput_Portaudio.pas', {$ENDIF} -{$IF Defined(UsePortaudioPlayback) or Defined(UseSDLPlayback)} - UFFT in 'lib\fft\UFFT.pas', - //samplerate in 'lib\samplerate\samplerate.pas', - UAudioPlayback_Softmixer in 'Classes\UAudioPlayback_SoftMixer.pas', -{$IFEND} {$IFDEF UsePortaudioPlayback} UAudioPlayback_Portaudio in 'Classes\UAudioPlayback_Portaudio.pas', {$ENDIF} -{$IFDEF UseSDLPlayback} - UAudioPlayback_SDL in 'Classes\UAudioPlayback_SDL.pas', +{$IFDEF UseFFMpegDecoder} + UAudioDecoder_FFMpeg in 'Classes\UAudioDecoder_FFMpeg.pas', {$ENDIF} + // fallback dummy, must be last + UMedia_dummy in 'Classes\UMedia_dummy.pas', //------------------------------ -- cgit v1.2.3