mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
wmaenc: limit block_align to MAX_CODED_SUPERFRAME_SIZE
This is near the theoretical limit for wma frame size and is the most that our decoder can handle. Allowing higher bit rates will just end up padding each frame with empty bytes. Fixes invalid writes for avconv when using very high bit rates. CC:libav-stable@libav.org
This commit is contained in:
parent
b7beabab4b
commit
c2b8dea182
@ -71,8 +71,12 @@ static int encode_init(AVCodecContext * avctx){
|
||||
for(i = 0; i < s->nb_block_sizes; i++)
|
||||
ff_mdct_init(&s->mdct_ctx[i], s->frame_len_bits - i + 1, 0, 1.0);
|
||||
|
||||
avctx->block_align=
|
||||
s->block_align= avctx->bit_rate*(int64_t)s->frame_len / (avctx->sample_rate*8);
|
||||
s->block_align = avctx->bit_rate * (int64_t)s->frame_len /
|
||||
(avctx->sample_rate * 8);
|
||||
s->block_align = FFMIN(s->block_align, MAX_CODED_SUPERFRAME_SIZE);
|
||||
avctx->block_align = s->block_align;
|
||||
avctx->bit_rate = avctx->block_align * 8LL * avctx->sample_rate /
|
||||
s->frame_len;
|
||||
//av_log(NULL, AV_LOG_ERROR, "%d %d %d %d\n", s->block_align, avctx->bit_rate, s->frame_len, avctx->sample_rate);
|
||||
avctx->frame_size= s->frame_len;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user