Browse Source

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().
tags/n3.1
Anton Khirnov 10 years ago
parent
commit
dc6527ed90
1 changed files with 9 additions and 2 deletions
  1. +9
    -2
      libavformat/nutenc.c

+ 9
- 2
libavformat/nutenc.c View File

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


Loading…
Cancel
Save