]> git.nihav.org Git - nihav.git/commitdiff
support raw YUV420 in MOV
authorKostya Shishkov <kostya.shishkov@gmail.com>
Wed, 21 Jan 2026 17:27:55 +0000 (18:27 +0100)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Thu, 22 Jan 2026 03:43:44 +0000 (04:43 +0100)
nihav-commonfmt/src/demuxers/mov.rs
nihav-registry/src/register.rs

index 3b339e41344804f071890a3c8ee7bb5707f0094b..bc3191f2c7d32dbc3588ec4a33cca962148779b1 100644 (file)
@@ -708,14 +708,19 @@ fn read_stsd(track: &mut Track, br: &mut dyn ByteIO, size: u64) -> DemuxerResult
                     "unknown"
                 };
             let format = if cname == "rawvideo" {
-                    match depth {
-                        1..=8 | 33..=40 => PAL8_FORMAT,
-                        15 | 16 => RGB555_FORMAT,
-                        24 => RGB24_FORMAT,
-                        32 => ARGB_FORMAT,
-                        _ => {
-                            println!("unknown depth {depth}");
-                            return Err(DemuxerError::NotImplemented);
+                    if &fcc == b"j420" {
+                        validate!(depth == 12);
+                        YUV420_FORMAT
+                    } else {
+                        match depth {
+                            1..=8 | 33..=40 => PAL8_FORMAT,
+                            15 | 16 => RGB555_FORMAT,
+                            24 => RGB24_FORMAT,
+                            32 => ARGB_FORMAT,
+                            _ => {
+                                println!("unknown depth {depth}");
+                                return Err(DemuxerError::NotImplemented);
+                            }
                         }
                     }
                 } else if depth > 8 && depth <= 32 {
index b8691089f6d81ce8e3b8ea6bb7f114070f267c69..1ed3dc78730888014ec0015a8005e156790ee76b 100644 (file)
@@ -459,6 +459,8 @@ static MOV_VIDEO_CODEC_REGISTER: &[(&[u8;4], &str)] = &[
 
     (b"mp4v", "mpeg4asp"),
     (b"avc1", "h264"),
+
+    (b"j420", "rawvideo"),
 ];
 
 static MOV_AUDIO_CODEC_REGISTER: &[(&[u8;4], &str)] = &[