diff --git a/panda/src/movies/opusAudioCursor.cxx b/panda/src/movies/opusAudioCursor.cxx index 814dc8fe04..3aee7c5844 100644 --- a/panda/src/movies/opusAudioCursor.cxx +++ b/panda/src/movies/opusAudioCursor.cxx @@ -240,6 +240,9 @@ read_samples(int n, int16_t *data) { data += read_samples * _audio_channels; _samples_read += read_samples; } else { + if (read_samples == 0 && _length == 1.0E10) { + _length = op_pcm_tell(_op) / 48000.0; + } break; } diff --git a/panda/src/movies/vorbisAudioCursor.cxx b/panda/src/movies/vorbisAudioCursor.cxx index f049d925d0..09fbf5ad14 100644 --- a/panda/src/movies/vorbisAudioCursor.cxx +++ b/panda/src/movies/vorbisAudioCursor.cxx @@ -158,6 +158,9 @@ read_samples(int n, int16_t *data) { buffer += read_bytes; length -= read_bytes; } else { + if (read_bytes == 0 && _length == 1.0E10) { + _length = ov_time_tell(&_ov); + } break; }