Module: libav
Branch: master
Commit: dc6527ed908e4d330738f139074455ffbe56a2de

Author:    Anton Khirnov <an...@khirnov.net>
Committer: Anton Khirnov <an...@khirnov.net>
Date:      Sun Feb 21 10:55:18 2016 +0100

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().

---

 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];

_______________________________________________
libav-commits mailing list
libav-commits@libav.org
https://lists.libav.org/mailman/listinfo/libav-commits

Reply via email to