diff --git a/MP4/box_mvhd.cpp b/MP4/box_mvhd.cpp index fbb6750f..0984190e 100644 --- a/MP4/box_mvhd.cpp +++ b/MP4/box_mvhd.cpp @@ -32,44 +32,58 @@ void Box_mvhd::SetModificationTime( uint32_t TimeStamp ) { Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(ModificationTime),8); } -void Box_mvhd::SetTimeScale( uint32_t TimeUnits = 1 ); +void Box_mvhd::SetTimeScale( uint32_t TimeUnits ) { + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(TimeUnits),12); +} void Box_mvhd::SetDurationTime( uint32_t TimeUnits ) { Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(TimeUnits),16); } -void Box_mvhd::SetRate( uint32_t Rate = 0x00010000 ); -void Box_mvhd::SetVolume( uint16_t Volume = 0x0100 ); +void Box_mvhd::SetRate( uint32_t Rate ) { + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(Rate),20); +} + +void Box_mvhd::SetVolume( uint16_t Volume ) { + Container->SetPayload((uint32_t)4,Box::uint16_to_uint8(Rate),24); +} void Box_mvhd::SetNextTrackID( uint32_t TrackID ) { - Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(TrackID),12); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(TrackID),92); } void Box_mvhd::SetReserved() { - Container->SetPayload((uint32_t)4,Box::uint16_to_uint8(0x40000000),68); - Container->SetPayload((uint32_t)4,Box::uint16_to_uint8(0),64); - Container->SetPayload((uint32_t)4,Box::uint16_to_uint8(0),60); - Container->SetPayload((uint32_t)4,Box::uint16_to_uint8(0),56); - Container->SetPayload((uint32_t)4,Box::uint16_to_uint8(0x10000),52); - Container->SetPayload((uint32_t)4,Box::uint16_to_uint8(0),48); - Container->SetPayload((uint32_t)4,Box::uint16_to_uint8(0),44); - Container->SetPayload((uint32_t)4,Box::uint16_to_uint8(0),40); - Container->SetPayload((uint32_t)4,Box::uint16_to_uint8(0x10000),36); - Container->SetPayload((uint32_t)4,Box::uint16_to_uint8(0),34); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),88); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),84); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),80); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),76); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),72); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),68); + + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0x40000000),64); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),60); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),56); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),52); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0x00010000),48); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),44); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),40); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),36); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0x00010000),32); + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),28); Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),24); - Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),20); - Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0),12); + Container->SetPayload((uint32_t)4,Box::uint16_to_uint8(0),22); + + Container->SetPayload((uint32_t)4,Box::uint16_to_uint8(0)); } void Box_mvhd::SetDefaults() { - SetHeight(); - SetWidth(); SetCreationTime(); SetModificationTime(); SetDurationTime(); - SetFlags(); - SetVersion(); - SetTrackID(); + SetNextTrackID(); + SetRate(); + SetVolume(); + SetTimeScale(); }