From 344e803e6651acd349bb31d325e4668017309956 Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Tue, 24 Jun 2025 17:45:59 +0200 Subject: [PATCH] h264: ignore some bits in the avcC box Apparently some encoders do not bother about setting them to all ones. --- nihav-itu/src/codecs/h264/decoder_mt.rs | 4 ++-- nihav-itu/src/codecs/h264/decoder_st.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/nihav-itu/src/codecs/h264/decoder_mt.rs b/nihav-itu/src/codecs/h264/decoder_mt.rs index b110207..118ba85 100644 --- a/nihav-itu/src/codecs/h264/decoder_mt.rs +++ b/nihav-itu/src/codecs/h264/decoder_mt.rs @@ -739,10 +739,10 @@ impl NADecoderMT for H264MTDecoder { let _compatibility = br.read_byte()?; let _level = br.read_byte()?; let b = br.read_byte()?; - validate!((b & 0xFC) == 0xFC); + //validate!((b & 0xFC) == 0xFC); self.nal_len = (b & 3) + 1; let b = br.read_byte()?; - validate!((b & 0xE0) == 0xE0); + //validate!((b & 0xE0) == 0xE0); let num_sps = (b & 0x1F) as usize; for _ in 0..num_sps { let len = br.read_u16be()? as usize; diff --git a/nihav-itu/src/codecs/h264/decoder_st.rs b/nihav-itu/src/codecs/h264/decoder_st.rs index e9983ec..c82d62e 100644 --- a/nihav-itu/src/codecs/h264/decoder_st.rs +++ b/nihav-itu/src/codecs/h264/decoder_st.rs @@ -737,10 +737,10 @@ impl NADecoder for H264Decoder { let _compatibility = br.read_byte()?; let _level = br.read_byte()?; let b = br.read_byte()?; - validate!((b & 0xFC) == 0xFC); + //validate!((b & 0xFC) == 0xFC); self.nal_len = (b & 3) + 1; let b = br.read_byte()?; - validate!((b & 0xE0) == 0xE0); + //validate!((b & 0xE0) == 0xE0); let num_sps = (b & 0x1F) as usize; for _ in 0..num_sps { let len = br.read_u16be()? as usize; -- 2.39.5