diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2011-01-29 18:45:32 +0000 |
---|---|---|
committer | Mans Rullgard <mans@mansr.com> | 2011-01-29 18:58:27 +0000 |
commit | 243f8241dbf4a451e1197661ccd387c519ae3349 (patch) | |
tree | 6f0c8a5a4ab5ba27d59a83af8ae600423adfb451 /libavcodec/libfaac.c | |
parent | e0eb963aaa55ddcc54bf80f3261f6a436edca4a3 (diff) | |
download | ffmpeg-243f8241dbf4a451e1197661ccd387c519ae3349.tar.gz |
Flush final frames in libfaac encoder.
Gives decoded output identical in length to faac commandline encoder.
Fixes Issue 670.
Signed-off-by: Mans Rullgard <mans@mansr.com>
Diffstat (limited to 'libavcodec/libfaac.c')
-rw-r--r-- | libavcodec/libfaac.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libavcodec/libfaac.c b/libavcodec/libfaac.c index 79ab729c13..af85587272 100644 --- a/libavcodec/libfaac.c +++ b/libavcodec/libfaac.c @@ -124,10 +124,11 @@ static int Faac_encode_frame(AVCodecContext *avctx, { FaacAudioContext *s = avctx->priv_data; int bytes_written; + int num_samples = data ? avctx->frame_size : 0; bytes_written = faacEncEncode(s->faac_handle, data, - avctx->frame_size * avctx->channels, + num_samples * avctx->channels, frame, buf_size); @@ -161,6 +162,7 @@ AVCodec ff_libfaac_encoder = { Faac_encode_init, Faac_encode_frame, Faac_encode_close, + .capabilities = CODEC_CAP_SMALL_LAST_FRAME | CODEC_CAP_DELAY, .sample_fmts = (const enum AVSampleFormat[]){AV_SAMPLE_FMT_S16,AV_SAMPLE_FMT_NONE}, .long_name = NULL_IF_CONFIG_SMALL("libfaac AAC (Advanced Audio Codec)"), .profiles = NULL_IF_CONFIG_SMALL(profiles), |