aboutsummaryrefslogtreecommitdiffstats
path: root/mediaplugin/src/media/UAudioPlayback_SoftMixer.pas
diff options
context:
space:
mode:
authortobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2010-11-01 20:13:59 +0000
committertobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2010-11-01 20:13:59 +0000
commit0b833c98bc6e9f79320b45dfc331cd5121078150 (patch)
tree2bb362f67ab82c8be0a5503b55c33fbab077b4fd /mediaplugin/src/media/UAudioPlayback_SoftMixer.pas
parent4063388c8b0df5be7b1877d32e89723aae612618 (diff)
downloadusdx-0b833c98bc6e9f79320b45dfc331cd5121078150.tar.gz
usdx-0b833c98bc6e9f79320b45dfc331cd5121078150.tar.xz
usdx-0b833c98bc6e9f79320b45dfc331cd5121078150.zip
- audio converter managed by media interface handler
- added (yet unused) interface priorities git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/branches/experimental@2700 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to 'mediaplugin/src/media/UAudioPlayback_SoftMixer.pas')
-rw-r--r--mediaplugin/src/media/UAudioPlayback_SoftMixer.pas29
1 files changed, 4 insertions, 25 deletions
diff --git a/mediaplugin/src/media/UAudioPlayback_SoftMixer.pas b/mediaplugin/src/media/UAudioPlayback_SoftMixer.pas
index b8148b4a..39f71147 100644
--- a/mediaplugin/src/media/UAudioPlayback_SoftMixer.pas
+++ b/mediaplugin/src/media/UAudioPlayback_SoftMixer.pas
@@ -59,7 +59,7 @@ type
SourceBufferSize: integer;
SourceBufferCount: integer; // number of available bytes in SourceBuffer
- Converter: TAudioConverter;
+ Converter: TAudioConvertStream;
Status: TStreamStatus;
InternalLock: PSDL_Mutex;
SoundEffects: TList;
@@ -73,7 +73,6 @@ type
procedure Reset();
procedure ApplySoundEffects(Buffer: PByteArray; BufferSize: integer);
- function InitFormatConversion(): boolean;
procedure FlushBuffers();
procedure LockSampleBuffer(); {$IFDEF HasInline}inline;{$ENDIF}
@@ -387,7 +386,9 @@ begin
Exit;
Self.SourceStream := SourceStream;
- if not InitFormatConversion() then
+ Converter := AudioConverter.Open(SourceStream.GetAudioFormatInfo(),
+ GetAudioFormatInfo());
+ if (Converter = nil) then
begin
// reset decode-stream so it will not be freed on destruction
Self.SourceStream := nil;
@@ -422,28 +423,6 @@ begin
SDL_mutexV(InternalLock);
end;
-function TGenericPlaybackStream.InitFormatConversion(): boolean;
-var
- SrcFormatInfo: TAudioFormatInfo;
- DstFormatInfo: TAudioFormatInfo;
-begin
- Result := false;
-
- SrcFormatInfo := SourceStream.GetAudioFormatInfo();
- DstFormatInfo := GetAudioFormatInfo();
-
- // TODO: selection should not be done here, use a factory (TAudioConverterFactory) instead
- {$IF Defined(UseFFmpegResample)}
- Converter := TAudioConverterPlugin.Create();
- {$ELSEIF Defined(UseSRCResample)}
- Converter := TAudioConverter_SRC.Create();
- {$ELSE}
- Converter := TAudioConverter_SDL.Create();
- {$IFEND}
-
- Result := Converter.Init(SrcFormatInfo, DstFormatInfo);
-end;
-
procedure TGenericPlaybackStream.Play();
var
Mixer: TAudioMixerStream;