diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2012-07-19 19:47:08 -0400 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2012-07-19 20:14:29 -0400 |
commit | 4cd22b77380e6e3411fdfa0cb6c8c2b5def973fc (patch) | |
tree | 548ad32bf24a04cdf50b9cff59da052411ac5c12 /libavcodec/alac.c | |
parent | eeb55f5f2f48dba3cb4530e9c65999471affe26e (diff) | |
download | ffmpeg-4cd22b77380e6e3411fdfa0cb6c8c2b5def973fc.tar.gz |
alac: fix channel pointer assignment for 24 and 32-bit
Needs to be done separately for each element.
Diffstat (limited to 'libavcodec/alac.c')
-rw-r--r-- | libavcodec/alac.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libavcodec/alac.c b/libavcodec/alac.c index 310a1f0d5b..aa2e6c8a3c 100644 --- a/libavcodec/alac.c +++ b/libavcodec/alac.c @@ -322,16 +322,16 @@ static int decode_element(AVCodecContext *avctx, void *data, int ch_index, av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n"); return ret; } - if (alac->sample_size > 16) { - for (ch = 0; ch < channels; ch++) - alac->output_samples_buffer[ch] = (int32_t *)alac->frame.extended_data[ch_index + ch]; - } } else if (output_samples != alac->nb_samples) { av_log(avctx, AV_LOG_ERROR, "sample count mismatch: %u != %d\n", output_samples, alac->nb_samples); return AVERROR_INVALIDDATA; } alac->nb_samples = output_samples; + if (alac->sample_size > 16) { + for (ch = 0; ch < channels; ch++) + alac->output_samples_buffer[ch] = (int32_t *)alac->frame.extended_data[ch_index + ch]; + } if (is_compressed) { int16_t lpc_coefs[2][32]; |