projects
/
nihav.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
h264: make some structures shareable
[nihav.git]
/
nihav-itu
/
src
/
codecs
/
h264
/
sets.rs
diff --git
a/nihav-itu/src/codecs/h264/sets.rs
b/nihav-itu/src/codecs/h264/sets.rs
index 61cf0a8994a84f147dc0be06d8aa0498444cae54..2d879bdd7b87bc1a682e294a168939a6a3dbdae7 100644
(file)
--- 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::*;
use nihav_core::codecs::{DecoderResult, DecoderError};
use nihav_core::io::bitreader::*;
@@
-303,7
+305,7
@@
pub struct PicParameterSet {
pub second_chroma_qp_index_offset: i8,
}
pub second_chroma_qp_index_offset: i8,
}
-pub fn parse_pps(src: &[u8], sps_arr: &[
SeqParameterSet], full_size: usize) -> DecoderResult<PicParameterSet
> {
+pub fn parse_pps(src: &[u8], sps_arr: &[
Arc<SeqParameterSet>], full_size: usize) -> DecoderResult<Arc<PicParameterSet>
> {
let mut br = BitReader::new(src, BitReaderMode::BE);
let mut pps: PicParameterSet = unsafe { std::mem::zeroed() };
let mut br = BitReader::new(src, BitReaderMode::BE);
let mut pps: PicParameterSet = unsafe { std::mem::zeroed() };
@@
-417,5
+419,5
@@
println!("slice mode!");
pps.second_chroma_qp_index_offset = pps.chroma_qp_index_offset;
}
pps.second_chroma_qp_index_offset = pps.chroma_qp_index_offset;
}
- Ok(
pps
)
+ Ok(
Arc::new(pps)
)
}
}