aboutsummaryrefslogtreecommitdiffstats
path: root/src/media/UAudioConverter.pas
diff options
context:
space:
mode:
Diffstat (limited to 'src/media/UAudioConverter.pas')
-rw-r--r--src/media/UAudioConverter.pas12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/media/UAudioConverter.pas b/src/media/UAudioConverter.pas
index 657b80dd..696a01f6 100644
--- a/src/media/UAudioConverter.pas
+++ b/src/media/UAudioConverter.pas
@@ -42,6 +42,7 @@ uses
{$ENDIF}
{$IFDEF UseFFmpegResample}
avcodec,
+ avutil,
{$ENDIF}
UMediaCore_SDL,
sdl,
@@ -124,6 +125,9 @@ type
implementation
+uses
+ UConfig;
+
function TAudioConverter_SDL.Init(srcFormatInfo: TAudioFormatInfo; dstFormatInfo: TAudioFormatInfo): boolean;
var
srcFormat: UInt16;
@@ -219,9 +223,17 @@ begin
Exit;
end;
+ {$IF LIBAVCODEC_VERSION < 52122000} // 52.122.0
ResampleContext := audio_resample_init(
dstFormatInfo.Channels, srcFormatInfo.Channels,
Round(dstFormatInfo.SampleRate), Round(srcFormatInfo.SampleRate));
+ {$ELSE}
+ ResampleContext := av_audio_resample_init(
+ dstFormatInfo.Channels, srcFormatInfo.Channels,
+ Round(dstFormatInfo.SampleRate), Round(srcFormatInfo.SampleRate),
+ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16,
+ 16, 10, 0, 0.8);
+ {$IFEND}
if (ResampleContext = nil) then
begin
Log.LogError('audio_resample_init() failed', 'TAudioConverter_FFmpeg.Init');