diff options
author | Max Kellermann <max@duempel.org> | 2008-11-12 07:46:01 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-11-12 07:46:01 +0100 |
commit | 9806355d4cf55eeecfd1d3123530ad8603902c5a (patch) | |
tree | 2572f8796de69a257e59ed89a503735e8a713be5 /src/decoder/aac_plugin.c | |
parent | f6765c4d8bcf6e34831e714fd70a3de1791c073f (diff) | |
download | mpd-9806355d4cf55eeecfd1d3123530ad8603902c5a.tar.gz mpd-9806355d4cf55eeecfd1d3123530ad8603902c5a.tar.xz mpd-9806355d4cf55eeecfd1d3123530ad8603902c5a.zip |
aac: check if the stream is seekable before length check
If the stream is not seekable, don't try to decode all frames to find
out the total song time.
Diffstat (limited to 'src/decoder/aac_plugin.c')
-rw-r--r-- | src/decoder/aac_plugin.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/decoder/aac_plugin.c b/src/decoder/aac_plugin.c index d7e6fe7f6..4e2208e6d 100644 --- a/src/decoder/aac_plugin.c +++ b/src/decoder/aac_plugin.c @@ -205,7 +205,8 @@ static void aac_parse_header(AacBuffer * b, float *length) if (length == NULL) return; - if (b->bytesIntoBuffer >= 2 && + if (b->inStream->seekable && + b->bytesIntoBuffer >= 2 && (b->buffer[0] == 0xFF) && ((b->buffer[1] & 0xF6) == 0xF0)) { adtsParse(b, length); input_stream_seek(b->inStream, tagsize, SEEK_SET); |