mirror of
https://github.com/love2d/love.git
synced 2026-08-16 16:20:42 +02:00
Pre-emptively work around an issue in libvorbis 1.3.4 and older when rewinding some Ogg Theora videos.
May (or may not) also fix crash issues when rewinding Ogg files on some systems...
This commit is contained in:
@@ -210,7 +210,14 @@ int VorbisDecoder::decode()
|
||||
|
||||
bool VorbisDecoder::seek(float s)
|
||||
{
|
||||
int result = ov_time_seek(&handle, s);
|
||||
int result = 0;
|
||||
|
||||
// Avoid ov_time_seek (which calls ov_pcm_seek) when seeking to 0, to avoid
|
||||
// a bug in libvorbis <= 1.3.4 when seeking to PCM 0 in multiplexed streams.
|
||||
if (s <= 0.000001)
|
||||
result = ov_raw_seek(&handle, 0);
|
||||
else
|
||||
result = ov_time_seek(&handle, s);
|
||||
|
||||
if (result == 0)
|
||||
{
|
||||
@@ -223,7 +230,9 @@ bool VorbisDecoder::seek(float s)
|
||||
|
||||
bool VorbisDecoder::rewind()
|
||||
{
|
||||
int result = ov_pcm_seek(&handle, 0);
|
||||
// Avoid ov_time_seek to avoid a bug in libvorbis <= 1.3.4 when seeking to
|
||||
// PCM 0 in multiplexed streams.
|
||||
int result = ov_raw_seek(&handle, 0);
|
||||
|
||||
if (result == 0)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user