aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-10-24 20:40:23 +0200
committerMax Kellermann <max@duempel.org>2013-10-24 20:40:23 +0200
commitdc328e0c4ad0dc6b8c53f6da2e0e85bfcefd02c9 (patch)
treecaac6005330fb71551917889f6f9402a4c06de1f /src/decoder
parent92c85bd20dc4f55b53cc18887d4a6b9b165447ca (diff)
downloadmpd-dc328e0c4ad0dc6b8c53f6da2e0e85bfcefd02c9.tar.gz
mpd-dc328e0c4ad0dc6b8c53f6da2e0e85bfcefd02c9.tar.xz
mpd-dc328e0c4ad0dc6b8c53f6da2e0e85bfcefd02c9.zip
decoder/opus: move code to OggSeekPageAtOffset()
Diffstat (limited to 'src/decoder')
-rw-r--r--src/decoder/OggFind.cxx15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/decoder/OggFind.cxx b/src/decoder/OggFind.cxx
index 297d925e7..e737a3ffe 100644
--- a/src/decoder/OggFind.cxx
+++ b/src/decoder/OggFind.cxx
@@ -38,6 +38,16 @@ OggFindEOS(OggSyncState &oy, ogg_stream_state &os, ogg_packet &packet)
}
}
+static bool
+OggSeekPageAtOffset(OggSyncState &oy, ogg_stream_state &os, InputStream &is,
+ InputStream::offset_type offset, int whence)
+{
+ oy.Reset();
+
+ return is.LockSeek(offset, whence, IgnoreError()) &&
+ oy.ExpectPageSeekIn(os);
+}
+
bool
OggSeekFindEOS(OggSyncState &oy, ogg_stream_state &os, ogg_packet &packet,
InputStream &is)
@@ -48,9 +58,6 @@ OggSeekFindEOS(OggSyncState &oy, ogg_stream_state &os, ogg_packet &packet,
if (!is.CheapSeeking())
return false;
- oy.Reset();
-
- return is.LockSeek(-65536, SEEK_END, IgnoreError()) &&
- oy.ExpectPageSeekIn(os) &&
+ return OggSeekPageAtOffset(oy, os, is, -65536, SEEK_END) &&
OggFindEOS(oy, os, packet);
}