codec/h265/parser: add reference from Sps to Vps
diff --git a/src/codec/h265/parser.rs b/src/codec/h265/parser.rs
index a6e66bf..0c4058c 100644
--- a/src/codec/h265/parser.rs
+++ b/src/codec/h265/parser.rs
@@ -839,6 +839,9 @@
pub max_tb_log2_size_y: u32,
/// Equivalent to PicSizeInSamplesY in the specification.
pub pic_size_in_samples_y: u32,
+
+ /// The VPS referenced by this SPS, if any.
+ pub vps: Option<Rc<Vps>>,
}
impl Sps {
@@ -2980,10 +2983,16 @@
// Skip the header
let mut r = NaluReader::new(&data[hdr_len..]);
+ let video_parameter_set_id = r.read_bits(4)?;
+
+ // A non-existing VPS means the SPS is not using any VPS.
+ let vps = self.get_vps(video_parameter_set_id).cloned();
+
let mut sps = Sps {
- video_parameter_set_id: r.read_bits(4)?,
+ video_parameter_set_id,
max_sub_layers_minus1: r.read_bits(3)?,
temporal_id_nesting_flag: r.read_bit()?,
+ vps,
..Default::default()
};