summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorJustin Ruggles <justin.ruggles@gmail.com>2010-12-14 14:52:18 +0000
committerJustin Ruggles <justin.ruggles@gmail.com>2010-12-14 14:52:18 +0000
commit8f60f70d44c14cead6033456c9e58ae7aa9e83cc (patch)
treeb7bebe91c30b686adf1b2681b18ae259f8d42bf1 /libavcodec
parent427e2293d331ec1b5c5e4fe8e57c8ffec1713d42 (diff)
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.c34
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;