]> git.nihav.org Git - nihav.git/commitdiff
mov: support unsigned PCM in version -1 files
authorKostya Shishkov <kostya.shishkov@gmail.com>
Wed, 13 May 2026 16:40:26 +0000 (18:40 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Wed, 13 May 2026 16:40:26 +0000 (18:40 +0200)
nihav-commonfmt/src/demuxers/mov/track.rs

index 4b967e5b5f49a4d618c5a8a84068155e058b9afe..15a4d1c8d17c4019917d4343215f0cd4e2069529 100644 (file)
@@ -416,9 +416,9 @@ fn read_stsd(track: &mut Track, br: &mut dyn ByteIO, size: u64) -> DemuxerResult
                 validate!(sample_size == 8 || sample_size == 16);
                                       br.read_u32be()?;
                 let sample_rate     = br.read_u32be()? >> 16;
-                let cname = if fcc == [0; 4] || &fcc == b"raw " { "pcm" } else { "unknown" };
+                let cname = if matches!(&fcc, &[0, 0, 0, 0] | b"raw " | b"twos") { "pcm" } else { "unknown" };
                 let mut soniton = NASoniton::new(sample_size as u8, SONITON_FLAG_SIGNED | SONITON_FLAG_BE);
-                if sample_size == 8 {
+                if sample_size == 8 && &fcc != b"twos" {
                     soniton.signed = false;
                 }
                 let ahdr = NAAudioInfo::new(sample_rate, nchannels as u8, soniton, 1);