30 #define WIN32_LEAN_AND_MEAN
34 #define Sleep(x) usleep((x)*1000)
77 fprintf(stderr,
"Could not open audio in %s\n", filename);
85 fprintf(stderr,
"Error getting audio info for %s\n", filename);
93 fprintf(stderr,
"Unsupported format (%s, %s) for %s\n",
103 fprintf(stderr,
"Failed to read audio from %s\n", filename);
113 channels, type, data);
121 fprintf(stderr,
"OpenAL Error: %s\n",
alGetString(err));
131 int main(
int argc,
char **argv)
140 fprintf(stderr,
"Usage: %s <filename>\n", argv[0]);
150 fprintf(stderr,
"Error: AL_SOFT_source_latency not supported\n");
156 #define LOAD_PROC(x) ((x) = alGetProcAddress(#x))
201 printf(
"\rOffset: %f - Latency:%3u ms ", offsets[0], (
ALuint)(offsets[1]*1000));
AL_API void AL_APIENTRY alSourcePlay(ALuint source)
LPALBUFFERSAMPLESSOFT alBufferSamplesSOFT
GLint GLenum GLsizei GLsizei GLsizei GLint GLenum GLenum type
void(AL_APIENTRY * LPALSOURCEDSOFT)(ALuint, ALenum, ALdouble)
int main(int argc, char **argv)
FilePtr openAVFile(const char *fname)
void(AL_APIENTRY * LPALGETSOURCE3I64SOFT)(ALuint, ALenum, ALint64SOFT *, ALint64SOFT *, ALint64SOFT *)
void(AL_APIENTRY * LPALSOURCEI64SOFT)(ALuint, ALenum, ALint64SOFT)
void * decodeAVAudioStream(StreamPtr stream, size_t *length)
AL_API ALenum AL_APIENTRY alGetError(void)
GLuint GLsizei const GLuint const GLintptr * offsets
AL_API void AL_APIENTRY alGetSourcei(ALuint source, ALenum param, ALint *value)
LPALGETSOURCEI64SOFT alGetSourcei64SOFT
void(AL_APIENTRY * LPALGETSOURCEI64SOFT)(ALuint, ALenum, ALint64SOFT *)
void AL_APIENTRY wrap_BufferSamples(ALuint buffer, ALuint samplerate, ALenum internalformat, ALsizei samples, ALenum channels, ALenum type, const ALvoid *data)
LPALGETSOURCEDVSOFT alGetSourcedvSOFT
LPALGETSOURCE3DSOFT alGetSource3dSOFT
void(AL_APIENTRY * LPALGETSOURCE3DSOFT)(ALuint, ALenum, ALdouble *, ALdouble *, ALdouble *)
AL_API void AL_APIENTRY alGenSources(ALsizei n, ALuint *sources)
#define AL_SEC_OFFSET_LATENCY_SOFT
StreamPtr getAVAudioStream(FilePtr file, int streamnum)
LPALSOURCE3DSOFT alSource3dSOFT
ALboolean(AL_APIENTRY * LPALISBUFFERFORMATSUPPORTEDSOFT)(ALenum)
LPALGETSOURCEDSOFT alGetSourcedSOFT
EGLContext EGLenum EGLClientBuffer buffer
LPALSOURCE3I64SOFT alSource3i64SOFT
void(AL_APIENTRY * LPALSOURCE3DSOFT)(ALuint, ALenum, ALdouble, ALdouble, ALdouble)
void(AL_APIENTRY * LPALGETSOURCEDVSOFT)(ALuint, ALenum, ALdouble *)
const char * TypeName(ALenum type)
void(AL_APIENTRY * LPALBUFFERSAMPLESSOFT)(ALuint, ALuint, ALenum, ALsizei, ALenum, ALenum, const ALvoid *)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
LPALSOURCEDSOFT alSourcedSOFT
struct MyStream * StreamPtr
void(AL_APIENTRY * LPALGETSOURCEI64VSOFT)(ALuint, ALenum, ALint64SOFT *)
LPALSOURCEI64VSOFT alSourcei64vSOFT
GLint GLenum GLsizei GLsizei GLsizei GLint GLenum format
AL_API void AL_APIENTRY alGenBuffers(ALsizei n, ALuint *buffers)
LPALGETSOURCE3I64SOFT alGetSource3i64SOFT
ALsizei BytesToFrames(ALsizei size, ALenum channels, ALenum type)
LPALSOURCEI64SOFT alSourcei64SOFT
ALenum GetFormat(ALenum channels, ALenum type, LPALISBUFFERFORMATSUPPORTEDSOFT palIsBufferFormatSupportedSOFT)
static ALuint LoadSound(const char *filename)
const char * ChannelsName(ALenum chans)
AL_API ALboolean AL_APIENTRY alIsExtensionPresent(const ALchar *extname)
void(AL_APIENTRY * LPALGETSOURCEDSOFT)(ALuint, ALenum, ALdouble *)
LPALSOURCEDVSOFT alSourcedvSOFT
AL_API const ALchar *AL_APIENTRY alGetString(ALenum param)
void(AL_APIENTRY * LPALSOURCE3I64SOFT)(ALuint, ALenum, ALint64SOFT, ALint64SOFT, ALint64SOFT)
void(AL_APIENTRY * LPALSOURCEDVSOFT)(ALuint, ALenum, const ALdouble *)
LPALGETSOURCEI64VSOFT alGetSourcei64vSOFT
void(AL_APIENTRY * LPALSOURCEI64VSOFT)(ALuint, ALenum, const ALint64SOFT *)
AL_API void AL_APIENTRY alDeleteBuffers(ALsizei n, const ALuint *buffers)
void closeAVFile(FilePtr file)
AL_API void AL_APIENTRY alSourcei(ALuint source, ALenum param, ALint value)
int getAVAudioInfo(StreamPtr stream, ALuint *rate, ALenum *channels, ALenum *type)
GLsizei GLsizei GLchar * source
LPALISBUFFERFORMATSUPPORTEDSOFT alIsBufferFormatSupportedSOFT
AL_API ALboolean AL_APIENTRY alIsBuffer(ALuint buffer)
AL_API void AL_APIENTRY alDeleteSources(ALsizei n, const ALuint *sources)