From d37b788ea81e4b282e3f24aa5cad31d85229cc30 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 14 Dec 2013 12:43:06 +0100 Subject: DecoderAPI: add function decoder_read_full() Move code from the "mad" plugin. --- test/FakeDecoderAPI.cxx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'test/FakeDecoderAPI.cxx') diff --git a/test/FakeDecoderAPI.cxx b/test/FakeDecoderAPI.cxx index 469e37feb..ca09ca982 100644 --- a/test/FakeDecoderAPI.cxx +++ b/test/FakeDecoderAPI.cxx @@ -65,6 +65,24 @@ decoder_read(gcc_unused Decoder *decoder, return is.LockRead(buffer, length, IgnoreError()); } +bool +decoder_read_full(Decoder *decoder, InputStream &is, + void *_buffer, size_t size) +{ + uint8_t *buffer = (uint8_t *)_buffer; + + while (size > 0) { + size_t nbytes = decoder_read(decoder, is, buffer, size); + if (nbytes == 0) + return false; + + buffer += nbytes; + size -= nbytes; + } + + return true; +} + bool decoder_skip(Decoder *decoder, InputStream &is, size_t size) { -- cgit v1.2.3