Start MP4 Box container implementation
This commit is contained in:
		
							parent
							
								
									eaa1c7c26f
								
							
						
					
					
						commit
						8093e14ce7
					
				
					 2 changed files with 62 additions and 0 deletions
				
			
		
							
								
								
									
										58
									
								
								MP4/box.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								MP4/box.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,58 @@ | |||
| #include "boxheader.h" | ||||
| 
 | ||||
| class Box { | ||||
|   public: | ||||
|     Box(); | ||||
|     Box(uint32_t BoxType); | ||||
|     ~Box(); | ||||
| 
 | ||||
|     void SetBoxType(uint32_t BoxType); | ||||
|     uint32_t GetBoxType(); | ||||
| 
 | ||||
|     void SetPayload(uint32_t PayloadSize, uint8_t * Data); | ||||
|     uint8_t * GetPayload(); | ||||
|     uint8_t * GetPayload(uint32_t Index, uint32_t Size); | ||||
|   private: | ||||
|     BoxHeader header; | ||||
|     uint8_t * Payload; | ||||
| };//Box Class
 | ||||
| 
 | ||||
| Box::Box() { | ||||
|   Payload = NULL; | ||||
| } | ||||
| 
 | ||||
| Box::Box(uint32_t BoxType) { | ||||
|   header.BoxType = BoxType; | ||||
|   Payload = NULL; | ||||
| } | ||||
| 
 | ||||
| Box::~Box() { | ||||
| } | ||||
| 
 | ||||
| void Box::SetBoxType(uint32_t BoxType) { | ||||
|   header.BoxType = BoxType; | ||||
| } | ||||
| 
 | ||||
| uint32_t Box::GetBoxType() { | ||||
|   return header.BoxType; | ||||
| } | ||||
| 
 | ||||
| void Box::SetPayload(uint32_t PayloadSize, uint8_t * Data ) { | ||||
|   if ( Payload != NULL ) { delete Payload; } | ||||
|   Payload = new uint8_t[PayloadSize]; | ||||
|   memcpy( Payload, Data, PayloadSize ); | ||||
|   header.TotalSize = PayloadSize + 8; | ||||
| } | ||||
| 
 | ||||
| uint8_t * Box::GetPayload() { | ||||
|   uint8_t * temp = new uint8_t[header.TotalSize - 8]; | ||||
|   memcpy( temp, Payload, header.TotalSize - 8 ); | ||||
|   return temp; | ||||
| } | ||||
| 
 | ||||
| uint8_t * Box::GetPayload(uint32_t Index, uint32_t Size) { | ||||
|   if( | ||||
|   uint8_t * temp = new uint8_t[header.TotalSize - 8]; | ||||
|   memcpy( temp, Payload, header.TotalSize - 8 ); | ||||
|   return temp; | ||||
| } | ||||
							
								
								
									
										4
									
								
								MP4/boxheader.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								MP4/boxheader.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| struct BoxHeader { | ||||
|   uint32_t TotalSize; | ||||
|   uint32_t BoxType; | ||||
| };//BoxHeader struct
 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Erik Zandvliet
						Erik Zandvliet