aboutsummaryrefslogtreecommitdiffstats
path: root/src/DecoderAPI.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-12-14 12:21:23 +0100
committerMax Kellermann <max@duempel.org>2013-12-14 12:40:43 +0100
commitcb336ff666a8fb2958cfb35c36ffcf613b02cd70 (patch)
tree41b2468979a5b5ed163832a88754e9f5bb85ffba /src/DecoderAPI.cxx
parente2e5433beb02eec1ddafbcdd33ce82ceeee83e0a (diff)
downloadmpd-cb336ff666a8fb2958cfb35c36ffcf613b02cd70.tar.gz
mpd-cb336ff666a8fb2958cfb35c36ffcf613b02cd70.tar.xz
mpd-cb336ff666a8fb2958cfb35c36ffcf613b02cd70.zip
DecoderAPI: add function decoder_skip()
Move code from the "mad" plugin.
Diffstat (limited to 'src/DecoderAPI.cxx')
-rw-r--r--src/DecoderAPI.cxx16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/DecoderAPI.cxx b/src/DecoderAPI.cxx
index 4c6a6f918..b31066e17 100644
--- a/src/DecoderAPI.cxx
+++ b/src/DecoderAPI.cxx
@@ -306,6 +306,22 @@ decoder_read(Decoder *decoder,
return nbytes;
}
+bool
+decoder_skip(Decoder *decoder, InputStream &is, size_t size)
+{
+ while (size > 0) {
+ char buffer[1024];
+ size_t nbytes = decoder_read(decoder, is, buffer,
+ std::min(sizeof(buffer), size));
+ if (nbytes == 0)
+ return false;
+
+ size -= nbytes;
+ }
+
+ return true;
+}
+
void
decoder_timestamp(Decoder &decoder, double t)
{