diff options
Diffstat (limited to 'libaf')
-rw-r--r-- | libaf/af_lavcac3enc.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libaf/af_lavcac3enc.c b/libaf/af_lavcac3enc.c index 819f3f7382..1042f3691e 100644 --- a/libaf/af_lavcac3enc.c +++ b/libaf/af_lavcac3enc.c @@ -180,6 +180,7 @@ static af_data_t* play(struct af_instance_s* af, af_data_t* data) char *buf, *src, *dest; int max_output_len; int frame_num = (data->len + s->pending_len) / s->expect_len; + int samplesize = af_fmt2bits(s->in_sampleformat) / 8; if (s->add_iec61937_header) max_output_len = AC3_FRAME_SIZE * 2 * 2 * frame_num; @@ -230,7 +231,7 @@ static af_data_t* play(struct af_instance_s* af, af_data_t* data) AF_CHANNEL_LAYOUT_MPLAYER_DEFAULT, AF_CHANNEL_LAYOUT_LAVC_DEFAULT, c->nch, - s->expect_len / 2, 2); + s->expect_len / samplesize, samplesize); len = avcodec_encode_audio(s->lavc_actx, dest, destsize, (void *)s->pending_data); @@ -242,7 +243,7 @@ static af_data_t* play(struct af_instance_s* af, af_data_t* data) AF_CHANNEL_LAYOUT_MPLAYER_DEFAULT, AF_CHANNEL_LAYOUT_LAVC_DEFAULT, c->nch, - s->expect_len / 2, 2); + s->expect_len / samplesize, samplesize); len = avcodec_encode_audio(s->lavc_actx,dest,destsize,(void *)src); src += s->expect_len; left -= s->expect_len; |