From: Kostya Shishkov Date: Thu, 26 Feb 2026 19:53:21 +0000 (+0100) Subject: mov: use sample-based CBR audio demuxing X-Git-Url: https://git.nihav.org/?a=commitdiff_plain;h=f4caef47370944aebe49392489d0c2643a75126a;p=nihav.git mov: use sample-based CBR audio demuxing --- diff --git a/nihav-commonfmt/src/demuxers/mov.rs b/nihav-commonfmt/src/demuxers/mov.rs index 6c9d040..44d58e9 100644 --- a/nihav-commonfmt/src/demuxers/mov.rs +++ b/nihav-commonfmt/src/demuxers/mov.rs @@ -1486,29 +1486,13 @@ impl Track { self.samples_left -= 1; } else { const BLOCK_SAMPLES: usize = 1024 * 6; // should be multiple of 64 and 6 to fit both IMA ADPCM and MACE 6:1 blocks - if size > self.calculate_chunk_size(1) { - let max_size = self.calculate_chunk_size(BLOCK_SAMPLES); - let cur_size = self.calculate_chunk_size(self.samples_left); - let add_off = (size - cur_size) as u64; - let dsize = cur_size.min(max_size); - if self.samples_left >= BLOCK_SAMPLES { - self.cur_sample += BLOCK_SAMPLES; - self.samples_left -= BLOCK_SAMPLES; - self.last_offset -= size as u64; - } else { - self.cur_sample += self.samples_left; - self.samples_left = 0; - } - return Some((ts, offset + add_off, dsize)); - } else { - self.last_offset -= size as u64; - let samples = self.samples_left.min(BLOCK_SAMPLES); - let cur_size = self.calculate_chunk_size(samples); - self.cur_sample += samples; - self.samples_left -= samples; - self.last_offset += cur_size as u64; - return Some((ts, offset, cur_size)); - } + self.last_offset -= size as u64; + let samples = self.samples_left.min(BLOCK_SAMPLES); + let cur_size = self.calculate_chunk_size(samples); + self.cur_sample += samples; + self.samples_left -= samples; + self.last_offset += cur_size as u64; + return Some((ts, offset, cur_size)); } self.cur_sample += 1; Some((ts, offset, size))