From 70bd35abe2ab774b70e37822f0200fcd4ebcd6c6 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Tue, 29 Apr 2014 11:56:05 +0200
Subject: [PATCH] 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.
---
 NEWS                    | 2 ++
 src/decoder/OggUtil.cxx | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

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);