From 2b9cf97f7a58816f347c269d0f04663151695bbe Mon Sep 17 00:00:00 2001 From: Jensenn Date: Tue, 26 Mar 2024 15:27:53 -0600 Subject: [PATCH] Add reading of emsg boxes when reading fragments --- src/reader.rs | 7 ++++++- src/track.rs | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/reader.rs b/src/reader.rs index e5ac296..aeff245 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -138,6 +138,7 @@ impl Mp4Reader { let mut moofs = Vec::new(); let mut moof_offsets = Vec::new(); + let mut emsgs = Vec::new(); let mut current = start; while current < size { @@ -166,6 +167,10 @@ impl Mp4Reader { moofs.push(moof); moof_offsets.push(moof_offset); } + BoxType::EmsgBox => { + let emsg = EmsgBox::read_box(&mut reader, s)?; + emsgs.push(emsg); + } _ => { // XXX warn!() skip_box(&mut reader, s)?; @@ -209,7 +214,7 @@ impl Mp4Reader { ftyp: self.ftyp.clone(), moov: self.moov.clone(), moofs, - emsgs: Vec::new(), + emsgs, tracks, size, }) diff --git a/src/track.rs b/src/track.rs index 7eada83..4f38588 100644 --- a/src/track.rs +++ b/src/track.rs @@ -261,7 +261,7 @@ impl Mp4Track { pub fn sequence_parameter_set(&self) -> Result<&[u8]> { if let Some(ref avc1) = self.trak.mdia.minf.stbl.stsd.avc1 { - match avc1.avcc.sequence_parameter_sets.get(0) { + match avc1.avcc.sequence_parameter_sets.first() { Some(nal) => Ok(nal.bytes.as_ref()), None => Err(Error::EntryInStblNotFound( self.track_id(), @@ -276,7 +276,7 @@ impl Mp4Track { pub fn picture_parameter_set(&self) -> Result<&[u8]> { if let Some(ref avc1) = self.trak.mdia.minf.stbl.stsd.avc1 { - match avc1.avcc.picture_parameter_sets.get(0) { + match avc1.avcc.picture_parameter_sets.first() { Some(nal) => Ok(nal.bytes.as_ref()), None => Err(Error::EntryInStblNotFound( self.track_id(),