…lines 1–30 unchanged (30 lines)
31 pub avg_pq: u16,
32}
33
34impl ExtMetadataBlockLevel1 {
35 pub(crate) fn parse(reader: &mut BsIoSliceReader) -> Result<ExtMetadataBlock> {
36 Ok(ExtMetadataBlock::Level1(Self {
37 min_pq: reader.read::<12, u16>()?,
38 max_pq: reader.read::<12, u16>()?,
39 avg_pq: reader.read::<12, u16>()?,
40 }))
41 }
42
43 pub fn write(&self, writer: &mut BitstreamIoWriter) -> Result<()> {
44 self.validate()?;
45
46 writer.write::<12, u16>(self.min_pq)?;
47 writer.write::<12, u16>(self.max_pq)?;
48 writer.write::<12, u16>(self.avg_pq)?;
49
50 Ok(())
51 }
52
53 pub fn validate(&self) -> Result<()> {
54 ensure!(self.min_pq <= L1_MAX_PQ_MAX_VALUE);
…lines 55–111 unchanged (57 lines)