diff options
-rw-r--r-- | src/decoder/DsdiffDecoderPlugin.cxx | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/src/decoder/DsdiffDecoderPlugin.cxx b/src/decoder/DsdiffDecoderPlugin.cxx index dba921de5..5d9a679da 100644 --- a/src/decoder/DsdiffDecoderPlugin.cxx +++ b/src/decoder/DsdiffDecoderPlugin.cxx @@ -260,8 +260,7 @@ dsdiff_read_metadata_extra(Decoder *decoder, InputStream &is, /* Now process all the remaining chunk headers in the stream and record their position and size */ - const auto size = is.GetSize(); - while (is.GetOffset() < size) { + do { uint64_t chunk_size = chunk_header->GetSize(); /* DIIN chunk, is directly followed by other chunks */ @@ -291,12 +290,8 @@ dsdiff_read_metadata_extra(Decoder *decoder, InputStream &is, if (!dsdlib_skip(decoder, is, chunk_size)) break; } + } while (dsdiff_read_chunk_header(decoder, is, chunk_header)); - if (is.GetOffset() < size) { - if (!dsdiff_read_chunk_header(decoder, is, chunk_header)) - break; - } - } /* done processing chunk headers, process tags if any */ #ifdef HAVE_ID3TAG |