- ret = read(fileno(infile), inbuf, AAC_INBUF_SIZE);
- if (ret <= 0)
- return -E_AAC_READ;
- inbuf_len = ret;
- PARA_INFO_LOG("next buffer: %d bytes\n", ret);
- }
- afi->chunks_total = ret;
- PARA_INFO_LOG("sz table has %lu entries\n", afi->chunks_total);
- afi->chunk_table = para_malloc((afi->chunks_total + 1) * sizeof(size_t));
- for (i = 1; i <= afi->chunks_total; i++) {
- if (skip + 4 > inbuf_len) {
- skip = inbuf_len - skip;
- memmove(inbuf, inbuf + inbuf_len - skip, skip);
- ret = read(fileno(infile), inbuf + skip,
- AAC_INBUF_SIZE - skip);
- if (ret <= 0)
- return -E_AAC_READ;
- inbuf_len = ret + skip;
- skip = 0;
- PARA_INFO_LOG("next buffer: %zu bytes\n", inbuf_len);
- }
- sum += aac_read_int32(inbuf + skip);
- afi->chunk_table[i] = sum;