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()
         };