Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix "mdat size too large" #80

Merged
merged 3 commits into from
Jan 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/mp4box/avc1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
pub struct Avc1Box {
pub data_reference_index: u16,
pub width: u16,
Expand Down Expand Up @@ -153,7 +153,7 @@ impl<W: Write> WriteBox<&mut W> for Avc1Box {
}
}

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct AvcCBox {
pub configuration_version: u8,
pub avc_profile_indication: u8,
Expand Down Expand Up @@ -262,7 +262,7 @@ impl<W: Write> WriteBox<&mut W> for AvcCBox {
}
}

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct NalUnit {
pub bytes: Vec<u8>,
}
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/co64.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct Co64Box {
pub version: u8,
pub flags: u32,
Expand Down
4 changes: 2 additions & 2 deletions src/mp4box/ctts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct CttsBox {
pub version: u8,
pub flags: u32,
Expand All @@ -23,7 +23,7 @@ impl CttsBox {
}
}

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct CttsEntry {
pub sample_count: u32,
pub sample_offset: i32,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/data.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use serde::Serialize;

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct DataBox {
pub data: Vec<u8>,
pub data_type: DataType,
Expand Down
6 changes: 3 additions & 3 deletions src/mp4box/dinf.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct DinfBox {
dref: DrefBox,
}
Expand Down Expand Up @@ -84,7 +84,7 @@ impl<W: Write> WriteBox<&mut W> for DinfBox {
}
}

#[derive(Debug, Clone, PartialEq, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
pub struct DrefBox {
pub version: u8,
pub flags: u32,
Expand Down Expand Up @@ -196,7 +196,7 @@ impl<W: Write> WriteBox<&mut W> for DrefBox {
}
}

#[derive(Debug, Clone, PartialEq, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
pub struct UrlBox {
pub version: u8,
pub flags: u32,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/edts.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};
use crate::mp4box::elst::ElstBox;
use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct EdtsBox {
pub elst: Option<ElstBox>,
}
Expand Down
4 changes: 2 additions & 2 deletions src/mp4box/elst.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct ElstBox {
pub version: u8,
pub flags: u32,
Expand All @@ -13,7 +13,7 @@ pub struct ElstBox {
pub entries: Vec<ElstEntry>,
}

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct ElstEntry {
pub segment_duration: u64,
pub media_time: u64,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/emsg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use serde::Serialize;

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct EmsgBox {
pub version: u8,
pub flags: u32,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/ftyp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct FtypBox {
pub major_brand: FourCC,
pub minor_version: u32,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/hdlr.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct HdlrBox {
pub version: u8,
pub flags: u32,
Expand Down
4 changes: 2 additions & 2 deletions src/mp4box/hev1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
pub struct Hev1Box {
pub data_reference_index: u16,
pub width: u16,
Expand Down Expand Up @@ -153,7 +153,7 @@ impl<W: Write> WriteBox<&mut W> for Hev1Box {
}
}

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct HvcCBox {
pub configuration_version: u8,
}
Expand Down
4 changes: 2 additions & 2 deletions src/mp4box/ilst.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use serde::Serialize;
use crate::mp4box::data::DataBox;
use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct IlstBox {
pub items: HashMap<MetadataKey, IlstItemBox>,
}
Expand Down Expand Up @@ -54,7 +54,7 @@ impl<R: Read + Seek> ReadBox<&mut R> for IlstBox {
}
}

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct IlstItemBox {
pub data: DataBox,
}
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/mdhd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
pub struct MdhdBox {
pub version: u8,
pub flags: u32,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/mdia.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, SeekFrom, Write};
use crate::mp4box::*;
use crate::mp4box::{hdlr::HdlrBox, mdhd::MdhdBox, minf::MinfBox};

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct MdiaBox {
pub mdhd: MdhdBox,
pub hdlr: HdlrBox,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/mehd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Default)]
pub struct MehdBox {
pub version: u8,
pub flags: u32,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/meta.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use serde::Serialize;
use crate::mp4box::ilst::IlstBox;
use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct MetaBox {
#[serde(skip_serializing_if = "Option::is_none")]
pub ilst: Option<IlstBox>,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/mfhd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
pub struct MfhdBox {
pub version: u8,
pub flags: u32,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/minf.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, SeekFrom, Write};
use crate::mp4box::*;
use crate::mp4box::{dinf::DinfBox, smhd::SmhdBox, stbl::StblBox, vmhd::VmhdBox};

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct MinfBox {
#[serde(skip_serializing_if = "Option::is_none")]
pub vmhd: Option<VmhdBox>,
Expand Down
5 changes: 3 additions & 2 deletions src/mp4box/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ pub const HEADER_EXT_SIZE: u64 = 4;

macro_rules! boxtype {
($( $name:ident => $value:expr ),*) => {
#[derive(Clone, Copy, PartialEq)]
#[derive(Clone, Copy, PartialEq, Eq)]
pub enum BoxType {
$( $name, )*
UnknownBox(u32),
Expand Down Expand Up @@ -194,7 +194,8 @@ boxtype! {
NameBox => 0xa96e616d,
DayBox => 0xa9646179,
CovrBox => 0x636f7672,
DescBox => 0x64657363
DescBox => 0x64657363,
WideBox => 0x77696465
}

pub trait Mp4Box: Sized {
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/moof.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, SeekFrom, Write};
use crate::mp4box::*;
use crate::mp4box::{mfhd::MfhdBox, traf::TrafBox};

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct MoofBox {
pub mfhd: MfhdBox,

Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/moov.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, SeekFrom, Write};
use crate::mp4box::*;
use crate::mp4box::{mvex::MvexBox, mvhd::MvhdBox, trak::TrakBox, udta::UdtaBox};

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct MoovBox {
pub mvhd: MvhdBox,

Expand Down
12 changes: 6 additions & 6 deletions src/mp4box/mp4a.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
pub struct Mp4aBox {
pub data_reference_index: u16,
pub channelcount: u16,
Expand Down Expand Up @@ -134,7 +134,7 @@ impl<W: Write> WriteBox<&mut W> for Mp4aBox {
}
}

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct EsdsBox {
pub version: u8,
pub flags: u32,
Expand Down Expand Up @@ -278,7 +278,7 @@ fn write_desc<W: Write>(writer: &mut W, tag: u8, size: u32) -> Result<u64> {
Ok(1 + nbytes as u64)
}

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct ESDescriptor {
pub es_id: u16,

Expand Down Expand Up @@ -362,7 +362,7 @@ impl<W: Write> WriteDesc<&mut W> for ESDescriptor {
}
}

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct DecoderConfigDescriptor {
pub object_type_indication: u8,
pub stream_type: u8,
Expand Down Expand Up @@ -458,7 +458,7 @@ impl<W: Write> WriteDesc<&mut W> for DecoderConfigDescriptor {
}
}

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct DecoderSpecificDescriptor {
pub profile: u8,
pub freq_index: u8,
Expand Down Expand Up @@ -550,7 +550,7 @@ impl<W: Write> WriteDesc<&mut W> for DecoderSpecificDescriptor {
}
}

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct SLConfigDescriptor {}

impl SLConfigDescriptor {
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/mvex.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, SeekFrom, Write};
use crate::mp4box::*;
use crate::mp4box::{mehd::MehdBox, trex::TrexBox};

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct MvexBox {
pub mehd: Option<MehdBox>,
pub trex: TrexBox,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/mvhd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
pub struct MvhdBox {
pub version: u8,
pub flags: u32,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/smhd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
pub struct SmhdBox {
pub version: u8,
pub flags: u32,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/stbl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use crate::mp4box::{
stsz::StszBox, stts::SttsBox,
};

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct StblBox {
pub stsd: StsdBox,
pub stts: SttsBox,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/stco.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct StcoBox {
pub version: u8,
pub flags: u32,
Expand Down
4 changes: 2 additions & 2 deletions src/mp4box/stsc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::io::{Read, Seek, Write};

use crate::mp4box::*;

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct StscBox {
pub version: u8,
pub flags: u32,
Expand All @@ -23,7 +23,7 @@ impl StscBox {
}
}

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct StscEntry {
pub first_chunk: u32,
pub samples_per_chunk: u32,
Expand Down
2 changes: 1 addition & 1 deletion src/mp4box/stsd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ use crate::mp4box::vp09::Vp09Box;
use crate::mp4box::*;
use crate::mp4box::{avc1::Avc1Box, hev1::Hev1Box, mp4a::Mp4aBox, tx3g::Tx3gBox};

#[derive(Debug, Clone, PartialEq, Default, Serialize)]
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize)]
pub struct StsdBox {
pub version: u8,
pub flags: u32,
Expand Down
Loading