mirror of
https://github.com/alfg/mp4-rust.git
synced 2024-05-20 09:18:16 +00:00
Compare commits
3 commits
17598ce990
...
c896f64a68
Author | SHA1 | Date | |
---|---|---|---|
c896f64a68 | |||
af3b69e6a4 | |||
1a90e8d6fb |
|
@ -145,6 +145,7 @@ impl<R: Read + Seek> Mp4Reader<R> {
|
||||||
|
|
||||||
let mut moofs = Vec::new();
|
let mut moofs = Vec::new();
|
||||||
let mut moof_offsets = Vec::new();
|
let mut moof_offsets = Vec::new();
|
||||||
|
let mut uuids = Vec::new();
|
||||||
|
|
||||||
let mut current = start;
|
let mut current = start;
|
||||||
while current < size {
|
while current < size {
|
||||||
|
@ -173,6 +174,10 @@ impl<R: Read + Seek> Mp4Reader<R> {
|
||||||
moofs.push(moof);
|
moofs.push(moof);
|
||||||
moof_offsets.push(moof_offset);
|
moof_offsets.push(moof_offset);
|
||||||
}
|
}
|
||||||
|
BoxType::UuidBox => {
|
||||||
|
let uuid = UuidBox::read_box(&mut reader, s)?;
|
||||||
|
uuids.push(uuid);
|
||||||
|
}
|
||||||
_ => {
|
_ => {
|
||||||
// XXX warn!()
|
// XXX warn!()
|
||||||
skip_box(&mut reader, s)?;
|
skip_box(&mut reader, s)?;
|
||||||
|
@ -216,8 +221,8 @@ impl<R: Read + Seek> Mp4Reader<R> {
|
||||||
ftyp: self.ftyp.clone(),
|
ftyp: self.ftyp.clone(),
|
||||||
moov: self.moov.clone(),
|
moov: self.moov.clone(),
|
||||||
moofs,
|
moofs,
|
||||||
emsgs: self.emsgs.clone(),
|
emsgs: Vec::new(),
|
||||||
uuids: self.uuids.clone(),
|
uuids,
|
||||||
tracks,
|
tracks,
|
||||||
size,
|
size,
|
||||||
})
|
})
|
||||||
|
|
|
@ -261,7 +261,7 @@ impl Mp4Track {
|
||||||
|
|
||||||
pub fn sequence_parameter_set(&self) -> Result<&[u8]> {
|
pub fn sequence_parameter_set(&self) -> Result<&[u8]> {
|
||||||
if let Some(ref avc1) = self.trak.mdia.minf.stbl.stsd.avc1 {
|
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()),
|
Some(nal) => Ok(nal.bytes.as_ref()),
|
||||||
None => Err(Error::EntryInStblNotFound(
|
None => Err(Error::EntryInStblNotFound(
|
||||||
self.track_id(),
|
self.track_id(),
|
||||||
|
@ -276,7 +276,7 @@ impl Mp4Track {
|
||||||
|
|
||||||
pub fn picture_parameter_set(&self) -> Result<&[u8]> {
|
pub fn picture_parameter_set(&self) -> Result<&[u8]> {
|
||||||
if let Some(ref avc1) = self.trak.mdia.minf.stbl.stsd.avc1 {
|
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()),
|
Some(nal) => Ok(nal.bytes.as_ref()),
|
||||||
None => Err(Error::EntryInStblNotFound(
|
None => Err(Error::EntryInStblNotFound(
|
||||||
self.track_id(),
|
self.track_id(),
|
||||||
|
|
Loading…
Reference in a new issue