MVHD Box start
This commit is contained in:
		
							parent
							
								
									06ff88ef3a
								
							
						
					
					
						commit
						c5a4d8c725
					
				
					 2 changed files with 99 additions and 0 deletions
				
			
		
							
								
								
									
										75
									
								
								MP4/box_mvhd.cpp
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								MP4/box_mvhd.cpp
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,75 @@ | |||
| #include "box_mvhd.h" | ||||
| 
 | ||||
| Box_mvhd::Box_mvhd( ) { | ||||
|   Container = new Box( 0x6D766864 ); | ||||
| } | ||||
| 
 | ||||
| Box_mvhd::~Box_mvhd() { | ||||
|   delete Container; | ||||
| } | ||||
| 
 | ||||
| Box * Box_mvhd::GetBox() { | ||||
|   return Container; | ||||
| } | ||||
| 
 | ||||
| void Box_mvhd::SetCreationTime( uint32_t TimeStamp ) { | ||||
|   uint32_t CreationTime; | ||||
|   if(!TimeStamp) { | ||||
|     CreationTime = time(NULL) + SECONDS_DIFFERENCE; | ||||
|   } else { | ||||
|     CreationTime = TimeStamp; | ||||
|   } | ||||
|   Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(CreationTime),4); | ||||
| } | ||||
| 
 | ||||
| void Box_mvhd::SetModificationTime( uint32_t TimeStamp ) { | ||||
|   uint32_t ModificationTime; | ||||
|   if(!TimeStamp) { | ||||
|     ModificationTime = time(NULL) + SECONDS_DIFFERENCE; | ||||
|   } else { | ||||
|     ModificationTime = TimeStamp; | ||||
|   } | ||||
|   Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(ModificationTime),8); | ||||
| } | ||||
| 
 | ||||
| void Box_mvhd::SetTimeScale( uint32_t TimeUnits = 1 ); | ||||
| 
 | ||||
| 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::SetNextTrackID( uint32_t TrackID ) { | ||||
|   Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(TrackID),12); | ||||
| } | ||||
| 
 | ||||
| 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),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); | ||||
| } | ||||
| 
 | ||||
| void Box_mvhd::SetDefaults() { | ||||
|   SetHeight(); | ||||
|   SetWidth(); | ||||
|   SetCreationTime(); | ||||
|   SetModificationTime(); | ||||
|   SetDurationTime(); | ||||
|   SetFlags(); | ||||
|   SetVersion(); | ||||
|   SetTrackID(); | ||||
| } | ||||
| 
 | ||||
							
								
								
									
										24
									
								
								MP4/box_mvhd.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								MP4/box_mvhd.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| #include "box.h" | ||||
| #include <ctime> | ||||
| 
 | ||||
| #define SECONDS_DIFFERENCE 2082844800 | ||||
| 
 | ||||
| class Box_mvhd { | ||||
|   public: | ||||
|     Box_mvhd( ); | ||||
|     ~Box_mvhd(); | ||||
|     Box * GetBox(); | ||||
|     void SetCreationTime( uint32_t TimeStamp = 0 ); | ||||
|     void SetModificationTime( uint32_t TimeStamp = 0 ); | ||||
|     void SetTimeScale( uint32_t TimeUnits = 1 ); | ||||
|     void SetDurationTime( uint32_t TimeUnits = 0 ); | ||||
|     void SetRate( uint32_t Rate = 0x00010000 ); | ||||
|     void SetVolume( uint16_t Volume = 0x0100 ); | ||||
|     void SetNextTrackID( uint32_t TrackID = 0 ); | ||||
|   private: | ||||
|     void SetReserved(); | ||||
|     void SetDefaults(); | ||||
|     Box * Container; | ||||
| 
 | ||||
| };//Box_ftyp Class
 | ||||
| 
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Erik Zandvliet
						Erik Zandvliet