X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=src%2Fcaf_reader.c;h=71d21c92ef71221d810c6378688d0d94eb723396;hb=a7e00a42195bd01fad75e5800fcbadeb1a5d3efd;hp=ede919a5fca17f386a60fd0bc49149f064b7e5dc;hpb=1af8624b009faf5bc6b9b8dfa76676483da5f6cf;p=fdkaac.git diff --git a/src/caf_reader.c b/src/caf_reader.c index ede919a..71d21c9 100644 --- a/src/caf_reader.c +++ b/src/caf_reader.c @@ -14,7 +14,7 @@ #include #include #include -#include "caf_reader.h" +#include "pcm_reader.h" #include "m4af.h" typedef struct caf_reader_t { @@ -193,12 +193,10 @@ int caf_parse(caf_reader_t *reader, int64_t *data_length) } else if (fcc == M4AF_FOURCC('d','a','t','a')) { TRY_IO(pcm_skip(&reader->io, 4)); /* mEditCount */ *data_length = (chunk_size == ~0ULL) ? chunk_size : chunk_size - 4; - reader->data_offset += 12; + reader->data_offset = pcm_tell(&reader->io); break; } else TRY_IO(pcm_skip(&reader->io, chunk_size)); - - reader->data_offset += (chunk_size + 8); } ENSURE(reader->sample_format.channels_per_frame); ENSURE(fcc == M4AF_FOURCC('d','a','t','a')); @@ -227,6 +225,7 @@ pcm_reader_t *caf_open(pcm_io_context_t *io, memcpy(&reader->io, io, sizeof(pcm_io_context_t)); reader->tag_callback = tag_callback; reader->tag_ctx = tag_ctx; + memcpy(reader->chanmap, "\000\001\002\003\004\005\006\007", 8); if (caf_parse(reader, &data_length) < 0) { free(reader);