From: Urban Wallasch Date: Tue, 19 Nov 2019 15:31:56 +0000 (+0100) Subject: * Fixed handling of chunk padding. X-Git-Url: https://git.packet-gain.de/?a=commitdiff_plain;h=bc2d0c2e4915ed55a49b2046f7d0ac2c7b9a7729;p=riffx.git * Fixed handling of chunk padding. --- diff --git a/unriffle.c b/unriffle.c index e7dd72d..97dda8b 100644 --- a/unriffle.c +++ b/unriffle.c @@ -64,6 +64,10 @@ static inline uint16_t get_ui16(const void *p) { return b[1] | b[0] << 8; } +static inline uint8_t get_ui8(const void *p) { + return *(const uint8_t *)p; +} + /* * dump helper: */ @@ -123,6 +127,11 @@ static inline void dump4ccEnd(const void *p, fcc_t fcc, const void *basep) { DMP(" ['%4.4s' end]\n", f); } +static inline void dumpU8(const char *s, const void *u, const void *basep) { + DMPO(u, basep); + DMP("%14s: %"PRIu8"\n", s, get_ui8(u)); +} + static inline void dumpU16(const char *s, const void *u, const void *basep) { DMPO(u, basep); DMP("%14s: %"PRIu16"\n", s, get_ui16(u)); @@ -171,8 +180,6 @@ static int rdump(void *p, size_t fsize, const void *basep) { dumpU32("Cue Point ID", r->data, basep); dumpStr("Label Text", r->data + 4, basep); fsize -= 8; - if (sz % 2) /* Take care of padding. */ - ++sz; } else if (FOURCC_IS(&r->fcc, "cue ")) { uint32_t cn = get_ui32(r->data); @@ -204,6 +211,11 @@ static int rdump(void *p, size_t fsize, const void *basep) { xdump(r->data, sz, basep); } dump4ccEnd(r->data + sz, r->fcc, basep); + /* Take care of chunk padding: */ + if (sz % 2) { + dumpU8("Padding Byte", r->data + sz, basep); + ++sz; + } return rdump(r->data + sz, fsize - sz, basep); }