X-Git-Url: https://git.nihav.org/?p=nihav.git;a=blobdiff_plain;f=nihav-mpeg%2Fsrc%2Fcodecs%2Faac%2Fmod.rs;h=655b45ba5d9823597362d84a304742cbc85fd9a5;hp=ea262b9dfe330ab5e2190831421fb609fcda4018;hb=HEAD;hpb=4f84ed36c77b376a82abf05b77c1433b4bf30ea4 diff --git a/nihav-mpeg/src/codecs/aac/mod.rs b/nihav-mpeg/src/codecs/aac/mod.rs index ea262b9..e37e812 100644 --- a/nihav-mpeg/src/codecs/aac/mod.rs +++ b/nihav-mpeg/src/codecs/aac/mod.rs @@ -330,12 +330,14 @@ impl ChannelPair { self.ms_used[g][sfb] = br.read_bool()?; } } + } else { + self.ms_used = [[false; MAX_SFBS]; MAX_WINDOWS]; } self.ics[1].info = self.ics[0].info; } self.ics[0].decode_ics(br, codebooks, m4atype, common_window, true)?; self.ics[1].decode_ics(br, codebooks, m4atype, common_window, true)?; - if common_window && self.ms_mask_present != 0 { + if common_window { let mut g = 0; for w in 0..self.ics[0].info.num_windows { if w > 0 && !self.ics[0].info.scale_factor_grouping[w - 1] { @@ -628,8 +630,8 @@ impl AACDecoder { 4 => { // ID_DSE let _id = br.read(4)?; let align = br.read_bool()?; - let mut count = br.read(8)? as u32; - if count == 255 { count += br.read(8)? as u32; } + let mut count = br.read(8)?; + if count == 255 { count += br.read(8)?; } if align { br.align(); } br.skip(count * 8)?; // no SBR payload or such },