X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-itu%2Fsrc%2Fcodecs%2Fh264%2Fsets.rs;h=2d879bdd7b87bc1a682e294a168939a6a3dbdae7;hb=93839abd64a4c725e0194a790ffd743dd8c19916;hp=b02faf121df592c21f90bccfb1cb8da0fa56384b;hpb=b7c882c1ce6f86c07c2340751200e3a060942826;p=nihav.git diff --git a/nihav-itu/src/codecs/h264/sets.rs b/nihav-itu/src/codecs/h264/sets.rs index b02faf1..2d879bd 100644 --- a/nihav-itu/src/codecs/h264/sets.rs +++ b/nihav-itu/src/codecs/h264/sets.rs @@ -1,3 +1,5 @@ +use std::sync::Arc; + use nihav_core::codecs::{DecoderResult, DecoderError}; use nihav_core::io::bitreader::*; @@ -44,10 +46,7 @@ pub struct SeqParameterSet { } pub fn is_high_profile(profile: u8) -> bool { - match profile { - 100 | 110 | 122 | 244 | 44 | 83 | 86 | 118 | 128 | 138 | 139 | 134 | 125 => true, - _ => false, - } + matches!(profile, 100 | 110 | 122 | 244 | 44 | 83 | 86 | 118 | 128 | 138 | 139 | 134 | 125) } #[allow(clippy::cognitive_complexity)] @@ -306,7 +305,7 @@ pub struct PicParameterSet { pub second_chroma_qp_index_offset: i8, } -pub fn parse_pps(src: &[u8], sps_arr: &[SeqParameterSet], full_size: usize) -> DecoderResult { +pub fn parse_pps(src: &[u8], sps_arr: &[Arc], full_size: usize) -> DecoderResult> { let mut br = BitReader::new(src, BitReaderMode::BE); let mut pps: PicParameterSet = unsafe { std::mem::zeroed() }; @@ -420,5 +419,5 @@ println!("slice mode!"); pps.second_chroma_qp_index_offset = pps.chroma_qp_index_offset; } - Ok(pps) + Ok(Arc::new(pps)) }