summaryrefslogtreecommitdiff
path: root/libavcodec/alac.c
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2011-10-05 19:43:49 -0400
committerJustin Ruggles <justin.ruggles@gmail.com>2011-10-26 11:50:16 -0400
commit0f26f3d5c45fa13cd5b2a8bd40d781decdec0272 (patch)
treefb19bc9ced3ff30af8f0f645ce77520b9f5c7a5d /libavcodec/alac.c
parentaec8383348de1b7d38fc2b0c7a31a9da5c79ce0d (diff)
alacdec: set sample_fmt in alac_decode_init()
Diffstat (limited to 'libavcodec/alac.c')
-rw-r--r--libavcodec/alac.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/libavcodec/alac.c b/libavcodec/alac.c
index cb90f128ea..8930abd57e 100644
--- a/libavcodec/alac.c
+++ b/libavcodec/alac.c
@@ -491,15 +491,6 @@ static int alac_decode_frame(AVCodecContext *avctx,
} else
outputsamples = alac->setinfo_max_samples_per_frame;
- switch (alac->setinfo_sample_size) {
- case 16: avctx->sample_fmt = AV_SAMPLE_FMT_S16;
- break;
- case 24: avctx->sample_fmt = AV_SAMPLE_FMT_S32;
- break;
- default: av_log(avctx, AV_LOG_ERROR, "Sample depth %d is not supported.\n",
- alac->setinfo_sample_size);
- return -1;
- }
alac->bytespersample = channels * av_get_bytes_per_sample(avctx->sample_fmt);
if(outputsamples > *outputsize / alac->bytespersample){
@@ -660,6 +651,16 @@ static av_cold int alac_decode_init(AVCodecContext * avctx)
return -1;
}
+ switch (alac->setinfo_sample_size) {
+ case 16: avctx->sample_fmt = AV_SAMPLE_FMT_S16;
+ break;
+ case 24: avctx->sample_fmt = AV_SAMPLE_FMT_S32;
+ break;
+ default: av_log(avctx, AV_LOG_ERROR, "Sample depth %d is not supported.\n",
+ alac->setinfo_sample_size);
+ return -1;
+ }
+
return 0;
}