diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2010-12-14 14:52:18 +0000 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2010-12-14 14:52:18 +0000 |
commit | 8f60f70d44c14cead6033456c9e58ae7aa9e83cc (patch) | |
tree | b7bebe91c30b686adf1b2681b18ae259f8d42bf1 /libavcodec | |
parent | 427e2293d331ec1b5c5e4fe8e57c8ffec1713d42 (diff) | |
download | ffmpeg-8f60f70d44c14cead6033456c9e58ae7aa9e83cc.tar.gz |
Split validation of initial user options into a separate function.
Originally committed as revision 25978 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/ac3enc.c | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index cb715388a3..301f8057fd 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -1250,20 +1250,11 @@ static av_cold int set_channel_info(AC3EncodeContext *s, int channels, } -/** - * Initialize the encoder. - */ -static av_cold int ac3_encode_init(AVCodecContext *avctx) +static av_cold int validate_options(AVCodecContext *avctx, AC3EncodeContext *s) { int freq = avctx->sample_rate; int bitrate = avctx->bit_rate; - AC3EncodeContext *s = avctx->priv_data; - int i, j, ch; - int bw_code; - - avctx->frame_size = AC3_FRAME_SIZE; - - ac3_common_init(); + int i, j; if (!avctx->channel_layout) { av_log(avctx, AV_LOG_WARNING, "No channel layout specified. The " @@ -1298,6 +1289,27 @@ static av_cold int ac3_encode_init(AVCodecContext *avctx) return -1; s->bit_rate = bitrate; s->frame_size_code = i << 1; + + return 0; +} + + +/** + * Initialize the encoder. + */ +static av_cold int ac3_encode_init(AVCodecContext *avctx) +{ + AC3EncodeContext *s = avctx->priv_data; + int ch, bw_code, ret; + + avctx->frame_size = AC3_FRAME_SIZE; + + ac3_common_init(); + + ret = validate_options(avctx, s); + if (ret) + return ret; + s->frame_size_min = 2 * ff_ac3_frame_size_tab[s->frame_size_code][s->bit_alloc.sr_code]; s->bits_written = 0; s->samples_written = 0; |