int channels;
unsigned int outputsamples;
int hassize;
- int readsamplesize;
+ unsigned int readsamplesize;
int wasted_bytes;
int isnotcompressed;
uint8_t interlacing_shift;
*outputsize = outputsamples * alac->bytespersample;
readsamplesize = alac->setinfo_sample_size - (wasted_bytes * 8) + channels - 1;
+ if (readsamplesize > MIN_CACHE_BITS) {
+ av_log(avctx, AV_LOG_ERROR, "readsamplesize too big (%d)\n", readsamplesize);
+ return -1;
+ }
if (!isnotcompressed) {
/* so it is compressed */
alac->context_initialized = 0;
alac->numchannels = alac->avctx->channels;
- alac->bytespersample = (avctx->bits_per_sample / 8) * alac->numchannels;
+ alac->bytespersample = 2 * alac->numchannels;
avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;