diff options
author | Max Kellermann <max@duempel.org> | 2011-12-13 20:08:31 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2011-12-13 20:08:31 +0100 |
commit | 533e4fcdadf70cc2899f8e93a1aadfb219693a9c (patch) | |
tree | 1f7bd29fdf16ab9ed9b3dee01501ad7df845e5c8 /src/decoder/mp4ff_decoder_plugin.c | |
parent | f5d3859238538dba15d8a972594ad0a5a5f7edda (diff) | |
download | mpd-533e4fcdadf70cc2899f8e93a1aadfb219693a9c.tar.gz mpd-533e4fcdadf70cc2899f8e93a1aadfb219693a9c.tar.xz mpd-533e4fcdadf70cc2899f8e93a1aadfb219693a9c.zip |
decoder/mp4ff: work around assertion failure in read() callback
This workaround leads to an infinite loop instead of an assertion
failure, but hey, now it's libmp4ff's fault.
Diffstat (limited to 'src/decoder/mp4ff_decoder_plugin.c')
-rw-r--r-- | src/decoder/mp4ff_decoder_plugin.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/decoder/mp4ff_decoder_plugin.c b/src/decoder/mp4ff_decoder_plugin.c index 861b08194..cd85778f8 100644 --- a/src/decoder/mp4ff_decoder_plugin.c +++ b/src/decoder/mp4ff_decoder_plugin.c @@ -94,6 +94,12 @@ mp4_read(void *user_data, void *buffer, uint32_t length) { struct mp4ff_input_stream *mis = user_data; + if (length == 0) + /* libmp4ff is known to attempt to read 0 bytes - make + this a special case, because the input_stream API + would not allow this */ + return 0; + return decoder_read(mis->decoder, mis->input_stream, buffer, length); } |