116 if (skip < 0 || !st->codec->extradata ||
123 #define ALAC_PREAMBLE 12
124 #define ALAC_HEADER 36
125 #define ALAC_NEW_KUKI 24
145 if (!memcmp(&preamble[4],
"frmaalac", 8)) {
184 int64_t pos = 0, ccount, num_packets;
190 if (num_packets < 0 || INT32_MAX /
sizeof(
AVIndexEntry) < num_packets)
198 for (i = 0; i < num_packets; i++) {
220 for (i = 0; i < nb_entries && !
avio_feof(pb); i++) {
273 caf->
data_size = size < 0 ? -1 : size - 4;
301 #define _(x) ((x) >= ' ' ? (x) : ' ')
303 "skipping CAF chunk: %08"PRIX32
" (%c%c%c%c), size %"PRId64
"\n",
304 tag,
_(tag>>24),
_((tag>>16)&0xFF),
_((tag>>8)&0xFF),
_(tag&0xFF), size);
313 if (pos > INT64_MAX - size)
330 "block size or frame size are variable.\n");
344 #define CAF_MAX_PKT_SIZE 4096
351 int res, pkt_size = 0, pkt_frames = 0;
369 if (pkt_size > 0 && pkt_frames == 1) {
371 pkt_size =
FFMIN(pkt_size, left);
385 if (pkt_size == 0 || pkt_frames == 0 || pkt_size > left)
403 int64_t timestamp,
int flags)
407 int64_t pos, packet_cnt, frame_cnt;
409 timestamp =
FFMAX(timestamp, 0);