diff options
| author | Timotej Lazar <timotej.lazar@araneo.si> | 2020-05-31 12:34:18 +0200 |
|---|---|---|
| committer | Timotej Lazar <timotej.lazar@araneo.si> | 2020-05-31 12:34:18 +0200 |
| commit | 2bc7bac0f34e78f1e7bd2fdfbb9caa2d90b57887 (patch) | |
| tree | ee1386aa05a02a35f2f28c32f4913852b4f0b69a /src/bink.c | |
| parent | ea39a84273cbb7a3d9bc07bf8e6588e1efe675e3 (diff) | |
Bink: move format-independent AL initialization to BinkStartMovie
Diffstat (limited to 'src/bink.c')
| -rw-r--r-- | src/bink.c | 39 |
1 files changed, 19 insertions, 20 deletions
@@ -148,26 +148,6 @@ static int DecodeAudioFrame(struct binkMovie* aMovie) return 0; if (!aMovie->alInited) { - alGenSources(1, &aMovie->alSource); - AL_CHECK(); - - alGenBuffers(FRAMEQUEUESIZE, aMovie->alBuffers); - AL_CHECK(); - - alSource3f(aMovie->alSource, AL_POSITION, 0.0, 0.0, 0.0); - alSource3f(aMovie->alSource, AL_VELOCITY, 0.0, 0.0, 0.0); - alSource3f(aMovie->alSource, AL_DIRECTION, 0.0, 0.0, 0.0); - alSourcef(aMovie->alSource, AL_ROLLOFF_FACTOR, 0.0); - alSourcei(aMovie->alSource, AL_SOURCE_RELATIVE, AL_TRUE); - alSourcef(aMovie->alSource, AL_PITCH, 1); - alSourcef(aMovie->alSource, AL_GAIN, 1.0); - - AL_CHECK(); - - aMovie->alNumFreeBuffers = FRAMEQUEUESIZE; - for (int i=0; i < aMovie->alNumFreeBuffers; i++) - aMovie->alFreeBuffers[i] = aMovie->alBuffers[i]; - switch (aMovie->audioFrame->channel_layout) { case AV_CH_LAYOUT_MONO: aMovie->alFormat = (aMovie->audioFrame->format == AV_SAMPLE_FMT_U8) ? @@ -373,6 +353,25 @@ static int BinkStartMovie(struct binkMovie* aMovie, const char* aFilename, aMovie->audioCodecContext = context; aMovie->audioStreamIndex = i; aMovie->audioFrame = av_frame_alloc(); + + alGenSources(1, &aMovie->alSource); + AL_CHECK(); + + alGenBuffers(FRAMEQUEUESIZE, aMovie->alBuffers); + AL_CHECK(); + + alSource3f(aMovie->alSource, AL_POSITION, 0.0, 0.0, 0.0); + alSource3f(aMovie->alSource, AL_VELOCITY, 0.0, 0.0, 0.0); + alSource3f(aMovie->alSource, AL_DIRECTION, 0.0, 0.0, 0.0); + alSourcef(aMovie->alSource, AL_ROLLOFF_FACTOR, 0.0); + alSourcei(aMovie->alSource, AL_SOURCE_RELATIVE, AL_TRUE); + alSourcef(aMovie->alSource, AL_PITCH, 1.0); + alSourcef(aMovie->alSource, AL_GAIN, 1.0); + + aMovie->alNumFreeBuffers = FRAMEQUEUESIZE; + for (int i = 0; i < aMovie->alNumFreeBuffers; i++) + aMovie->alFreeBuffers[i] = aMovie->alBuffers[i]; + numStreams++; } else { avcodec_free_context(&context); |
