stb_vorbis: fix theoretical seek performance problem
This commit is contained in:
parent
052dce117e
commit
6ca87a9e0e
18
stb_vorbis.c
18
stb_vorbis.c
@ -4707,14 +4707,16 @@ static int seek_to_sample_coarse(stb_vorbis *f, uint32 sample_number)
|
||||
}
|
||||
|
||||
// if we've just found the last page again then we're in a tricky file,
|
||||
// and we're close enough.
|
||||
if (mid.page_start == right.page_start)
|
||||
break;
|
||||
|
||||
if (sample_number < mid.last_decoded_sample)
|
||||
right = mid;
|
||||
else
|
||||
left = mid;
|
||||
// and we're close enough (if it wasn't an interpolation probe).
|
||||
if (mid.page_start == right.page_start) {
|
||||
if (probe >= 2)
|
||||
break;
|
||||
} else {
|
||||
if (last_sample_limit < mid.last_decoded_sample)
|
||||
right = mid;
|
||||
else
|
||||
left = mid;
|
||||
}
|
||||
|
||||
++probe;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user