summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-04-29 11:56:05 +0200
committerMax Kellermann <max@duempel.org>2014-04-29 11:56:05 +0200
commit70bd35abe2ab774b70e37822f0200fcd4ebcd6c6 (patch)
treef0ee4de258840e0b2bc3c7c9d96d5b971dd09e6d
parent0efb67b51e0d9d34c65bbdbd9df567a8a991cc4c (diff)
decoder/OggUtil: allow skipping up to 32 kB after seek
Fixes missing song length on high-latency Opus files. According to tests with 320 kbit/s opus files with 60ms packets, we need to skip up to 29 kB.
-rw-r--r--NEWS2
-rw-r--r--src/decoder/OggUtil.cxx2
2 files changed, 3 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index ff0d0f141..753ab2748 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
ver 0.18.11 (not yet released)
+* decoder
+ - opus: fix missing song length on high-latency files
* fix race condition when using GLib event loop (non-Linux)
ver 0.18.10 (2014/04/10)
diff --git a/src/decoder/OggUtil.cxx b/src/decoder/OggUtil.cxx
index fd137f110..8f181ce57 100644
--- a/src/decoder/OggUtil.cxx
+++ b/src/decoder/OggUtil.cxx
@@ -81,7 +81,7 @@ bool
OggExpectPageSeek(ogg_sync_state &oy, ogg_page &page,
Decoder *decoder, InputStream &input_stream)
{
- size_t remaining_skipped = 16384;
+ size_t remaining_skipped = 32768;
while (true) {
int r = ogg_sync_pageseek(&oy, &page);