Browse Source

vorbisdec: read the previous window flag for long windows

When reading sequentially, we are using the actual flag from the previous
frame, but when seeking we do not know what the previous window flag was, so
we need to read it from the bitstream.
tags/n0.11
Justin Ruggles 13 years ago
parent
commit
737ca4482b
1 changed files with 4 additions and 2 deletions
  1. +4
    -2
      libavcodec/vorbisdec.c

+ 4
- 2
libavcodec/vorbisdec.c View File

@@ -1510,8 +1510,10 @@ static int vorbis_parse_audio_packet(vorbis_context *vc)
blockflag = vc->modes[mode_number].blockflag;
blocksize = vc->blocksize[blockflag];
vlen = blocksize / 2;
if (blockflag)
skip_bits(gb, 2); // previous_window, next_window
if (blockflag) {
previous_window = get_bits(gb, 1);
skip_bits1(gb); // next_window
}

memset(ch_res_ptr, 0, sizeof(float) * vc->audio_channels * vlen); //FIXME can this be removed ?
memset(ch_floor_ptr, 0, sizeof(float) * vc->audio_channels * vlen); //FIXME can this be removed ?


Loading…
Cancel
Save