[FFmpeg-cvslog] nutenc: do not use AVCodecContext.frame_size
Anton Khirnov
git at videolan.org
Mon Feb 29 16:30:52 CET 2016
ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sun Feb 21 10:55:18 2016 +0100| [dc6527ed908e4d330738f139074455ffbe56a2de] | committer: Anton Khirnov
nutenc: do not use AVCodecContext.frame_size
It will in general not be available. Use block_align if known or fall
back to av_get_audio_frame_duration().
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=dc6527ed908e4d330738f139074455ffbe56a2de
---
libavformat/nutenc.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c
index be6579d..7b69ff3 100644
--- a/libavformat/nutenc.c
+++ b/libavformat/nutenc.c
@@ -190,9 +190,16 @@ static void build_frame_code(AVFormatContext *s)
key_frame = intra_only;
if (is_audio) {
- int frame_bytes = codec->frame_size * (int64_t)codec->bit_rate /
- (8 * codec->sample_rate);
+ int frame_bytes;
int pts;
+
+ if (codec->block_align > 0) {
+ frame_bytes = codec->block_align;
+ } else {
+ int frame_size = av_get_audio_frame_duration(codec, 0);
+ frame_bytes = frame_size * (int64_t)codec->bit_rate / (8 * codec->sample_rate);
+ }
+
for (pts = 0; pts < 2; pts++)
for (pred = 0; pred < 2; pred++) {
FrameCode *ft = &nut->frame_code[start2];
More information about the ffmpeg-cvslog
mailing list