|
|
|
@ -55,6 +55,7 @@ |
|
|
|
|
|
|
|
|
|
#include "avcodec.h" |
|
|
|
|
#include "bitstream.h" |
|
|
|
|
#include "bytestream.h" |
|
|
|
|
|
|
|
|
|
#define ALAC_EXTRADATA_SIZE 36 |
|
|
|
|
#define MAX_CHANNELS 2 |
|
|
|
@ -116,22 +117,22 @@ static int alac_set_info(ALACContext *alac) |
|
|
|
|
av_log(alac->avctx, AV_LOG_ERROR, "setinfo_max_samples_per_frame too large\n"); |
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
alac->setinfo_max_samples_per_frame = AV_RB32(ptr); /* buffer size / 2 ? */ |
|
|
|
|
ptr += 4; |
|
|
|
|
|
|
|
|
|
/* buffer size / 2 ? */ |
|
|
|
|
alac->setinfo_max_samples_per_frame = bytestream_get_be32(&ptr); |
|
|
|
|
alac->setinfo_7a = *ptr++; |
|
|
|
|
alac->setinfo_sample_size = *ptr++; |
|
|
|
|
alac->setinfo_rice_historymult = *ptr++; |
|
|
|
|
alac->setinfo_rice_initialhistory = *ptr++; |
|
|
|
|
alac->setinfo_rice_kmodifier = *ptr++; |
|
|
|
|
alac->setinfo_7f = *ptr++; // channels?
|
|
|
|
|
alac->setinfo_80 = AV_RB16(ptr); |
|
|
|
|
ptr += 2; |
|
|
|
|
alac->setinfo_82 = AV_RB32(ptr); // max coded frame size
|
|
|
|
|
ptr += 4; |
|
|
|
|
alac->setinfo_86 = AV_RB32(ptr); // bitrate ?
|
|
|
|
|
ptr += 4; |
|
|
|
|
alac->setinfo_8a_rate = AV_RB32(ptr); // samplerate
|
|
|
|
|
ptr += 4; |
|
|
|
|
alac->setinfo_80 = bytestream_get_be16(&ptr); |
|
|
|
|
/* max coded frame size */ |
|
|
|
|
alac->setinfo_82 = bytestream_get_be32(&ptr); |
|
|
|
|
/* bitrate ? */ |
|
|
|
|
alac->setinfo_86 = bytestream_get_be32(&ptr); |
|
|
|
|
/* samplerate */ |
|
|
|
|
alac->setinfo_8a_rate = bytestream_get_be32(&ptr); |
|
|
|
|
|
|
|
|
|
allocate_buffers(alac); |
|
|
|
|
|
|
|
|
|