MDHD box finished
This commit is contained in:
		
							parent
							
								
									927996365e
								
							
						
					
					
						commit
						0bb33f109d
					
				
					 2 changed files with 51 additions and 4 deletions
				
			
		|  | @ -12,6 +12,34 @@ Box * Box_mdhd::GetBox() { | |||
|   return Container; | ||||
| } | ||||
| 
 | ||||
| void Box_mdhd::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_mdhd::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_mdhd::SetTimeScale( uint32_t TimeUnits ) { | ||||
|   Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(TimeUnits),12); | ||||
| } | ||||
| 
 | ||||
| void Box_mdhd::SetDurationTime( uint32_t TimeUnits ) { | ||||
|   Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(TimeUnits),16); | ||||
| } | ||||
| 
 | ||||
| void Box_mdhd::SetLanguage( uint8_t Firstchar, uint8_t Secondchar, uint8_t Thirdchar ) { | ||||
|   uint8_t FirstByte = 0; | ||||
|   uint8_t SecondByte = 0; | ||||
|  | @ -22,4 +50,20 @@ void Box_mdhd::SetLanguage( uint8_t Firstchar, uint8_t Secondchar, uint8_t Third | |||
|   FirstByte += (Secondchar >> 3); | ||||
|   SecondByte += (Secondchar << 5); | ||||
|   SecondByte += Thirdchar; | ||||
| 
 | ||||
|   Container->SetPayload((uint32_t)1,&SecondByte,21); | ||||
|   Container->SetPayload((uint32_t)1,&FirstByte,20); | ||||
| } | ||||
| 
 | ||||
| void Box_mdhd::SetReserved() { | ||||
|   Container->SetPayload((uint32_t)2,Box::uint16_to_uint8(0),22); | ||||
|   Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(0)); | ||||
| } | ||||
| 
 | ||||
| void Box_mdhd::SetDefaults() { | ||||
|   SetLanguage(); | ||||
|   SetDurationTime(); | ||||
|   SetTimeScale(); | ||||
|   SetModificationTime(); | ||||
|   SetCreationTime(); | ||||
| } | ||||
|  |  | |||
|  | @ -1,14 +1,17 @@ | |||
| #include "box.h" | ||||
| #include <ctime> | ||||
| 
 | ||||
| #define SECONDS_DIFFERENCE 2082844800 | ||||
| 
 | ||||
| class Box_mdhd { | ||||
|   public: | ||||
|     Box_mdhd( ); | ||||
|     ~Box_mdhd(); | ||||
|     Box * GetBox(); | ||||
| //    void SetCreationTime( uint32_t TimeStamp = 0 );
 | ||||
| //    void SetModificationTime( uint32_t TimeStamp = 0 );
 | ||||
| //    void SetTimeScale( uint32_t TimeUnits = 0 );
 | ||||
| //    void SetDurationTime( uint32_t TimeUnits = 0 );
 | ||||
|     void SetCreationTime( uint32_t TimeStamp = 0 ); | ||||
|     void SetModificationTime( uint32_t TimeStamp = 0 ); | ||||
|     void SetTimeScale( uint32_t TimeUnits = 0 ); | ||||
|     void SetDurationTime( uint32_t TimeUnits = 0 ); | ||||
|     void SetLanguage( uint8_t Firstchar = 'n', uint8_t Secondchar = 'l', uint8_t Thirdchar = 'd' ); | ||||
|   private: | ||||
|     void SetReserved(); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Erik Zandvliet
						Erik Zandvliet