From a274bbc1aa251b91c329fb4ea1eb5fc2b4ab39f6 Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Thu, 5 Apr 2007 16:39:49 +0000 Subject: [PATCH] detect PortAudio v19 and use accordingly Originally committed to SVN as r1011. --- aegisub/audio_player_portaudio.cpp | 13 ++++++++++++- aegisub/audio_player_portaudio.h | 11 +++++++++++ configure.ac | 1 + 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/aegisub/audio_player_portaudio.cpp b/aegisub/audio_player_portaudio.cpp index 867c7941f..5104f0aff 100644 --- a/aegisub/audio_player_portaudio.cpp +++ b/aegisub/audio_player_portaudio.cpp @@ -83,7 +83,13 @@ typedef unsigned __int64 uint64_t; ////////////////////// // PortAudio callback +#ifndef HAVE_PA_GETSTREAMTIME int PortAudioPlayer::paCallback(void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, PaTimestamp outTime, void *userData) { +#else +int PortAudioPlayer::paCallback(const void *inputBuffer, void *outputBuffer, + unsigned long framesPerBuffer, const PaStreamCallbackTimeInfo *timei, + PaStreamCallbackFlags flags, void *userData) { +#endif // Get provider PortAudioPlayer *player = (PortAudioPlayer *) userData; AudioProvider *provider = player->GetProvider(); @@ -178,7 +184,12 @@ void PortAudioPlayer::Stop(bool timerToo) { // Open stream void PortAudioPlayer::OpenStream() { // Open stream - PaError err = Pa_OpenDefaultStream(&stream,0,provider->GetChannels(),paInt16,provider->GetSampleRate(),256,16,paCallback,this); + PaError err = Pa_OpenDefaultStream(&stream,0,provider->GetChannels(),paInt16,provider->GetSampleRate(),256, +#ifndef HAVE_PA_GETSTREAMTIME + 16, /* Pa v19 doesn't have a numberOfBuffers parameter */ +#endif + paCallback,this); + if (err != paNoError) { throw wxString(_T("Failed initializing PortAudio stream with error: ") + wxString(Pa_GetErrorText(err),wxConvLocal)); } diff --git a/aegisub/audio_player_portaudio.h b/aegisub/audio_player_portaudio.h index f54a8aad8..0937fe55d 100644 --- a/aegisub/audio_player_portaudio.h +++ b/aegisub/audio_player_portaudio.h @@ -46,6 +46,10 @@ extern "C" { #include } +#ifdef HAVE_PA_GETSTREAMTIME +#define Pa_StreamTime Pa_GetStreamTime /* PortAudio v19 */ +#define PaTimestamp PaTime +#endif //////////////////// // Portaudio player @@ -65,7 +69,14 @@ private: PaTimestamp paStart; volatile __int64 realPlayPos; +#ifndef HAVE_PA_GETSTREAMTIME static int paCallback(void *inputBuffer, void *outputBuffer, unsigned long framesPerBuffer, PaTimestamp outTime, void *userData); +#else + static int paCallback(const void *inputBuffer, void *outputBuffer, + unsigned long framesPerBuffer, + const PaStreamCallbackTimeInfo *timei, + PaStreamCallbackFlags flags, void *userData); +#endif public: PortAudioPlayer(); diff --git a/configure.ac b/configure.ac index 4ba1636c0..77151a867 100644 --- a/configure.ac +++ b/configure.ac @@ -124,6 +124,7 @@ AC_CHECK_LIB([m], [main]) AC_CHECK_LIB([dl], [dlopen]) AC_CHECK_LIB([portaudio], [Pa_Initialize],, [AC_MSG_ERROR([portaudio not found.])]) +AC_CHECK_FUNCS([Pa_GetStreamTime]) AC_CHECK_LIB([avcodec], [avcodec_init]) AC_CHECK_LIB([avformat], [av_read_frame])