Nieuwe implementatie af, backwards compatibility ruined.
This commit is contained in:
		
							parent
							
								
									42ab565381
								
							
						
					
					
						commit
						70e2962d0b
					
				
					 2 changed files with 112 additions and 145 deletions
				
			
		
							
								
								
									
										47
									
								
								lib/mp4.h
									
										
									
									
									
								
							
							
						
						
									
										47
									
								
								lib/mp4.h
									
										
									
									
									
								
							|  | @ -76,12 +76,12 @@ namespace MP4{ | |||
|       std::deque<Box *> fragmentTables; | ||||
|   };//ABST Box
 | ||||
| 
 | ||||
|   struct afrt_fragmentrunentry { | ||||
|     uint32_t FirstFragment; | ||||
|     uint32_t FirstFragmentTimestamp; //write as uint64_t
 | ||||
|     uint32_t FragmentDuration; | ||||
|     uint8_t DiscontinuityIndicator;//if FragmentDuration == 0
 | ||||
|   };//afrt_fragmentrunentry
 | ||||
|   struct fragmentRun { | ||||
|     long firstFragment; | ||||
|     long long int firstTimestamp; | ||||
|     long duration; | ||||
|     char discontinuity; | ||||
|   };//fragmentRun
 | ||||
| 
 | ||||
| 
 | ||||
|   /// AFRT Box class
 | ||||
|  | @ -92,37 +92,32 @@ namespace MP4{ | |||
|       void setUpdate( long newUpdate ); | ||||
|       void setTimeScale( long newScale ); | ||||
|       void addQualityEntry( std::string newQuality ); | ||||
|        | ||||
|       void AddFragmentRunEntry( uint32_t FirstFragment = 0, uint32_t FirstFragmentTimestamp = 0, uint32_t FragmentsDuration = 1, uint8_t Discontinuity = 0, uint32_t Offset = 0 ); | ||||
|       void WriteContent( ); | ||||
|       void addFragmentRun( long firstFragment, long long int firstTimestamp, long duration, char discontinuity ); | ||||
|       void regenerate( ); | ||||
|       std::string toPrettyString(int indent = 0); | ||||
|     private: | ||||
|       std::deque<std::string> qualityModifiers; | ||||
|       std::deque<afrt_fragmentrunentry> FragmentRunEntryTable; | ||||
|       std::deque<fragmentRun> fragmentRunTable; | ||||
|   };//AFRT Box
 | ||||
| 
 | ||||
|   struct asrt_segmentrunentry { | ||||
|     uint32_t FirstSegment; | ||||
|     uint32_t FragmentsPerSegment; | ||||
|   };//abst_qualityentry
 | ||||
|   struct segmentRun { | ||||
|     uint32_t firstSegment; | ||||
|     uint32_t fragmentsPerSegment; | ||||
|   };//segmentRun
 | ||||
| 
 | ||||
|   /// ASRT Box class
 | ||||
|   class ASRT : public Box { | ||||
|     public: | ||||
|       ASRT() : Box(0x61737274){}; | ||||
|       void SetUpdate( bool Update = false ); | ||||
|       void AddQualityEntry( std::string Quality = "", uint32_t Offset = 0 ); | ||||
|       void AddSegmentRunEntry( uint32_t FirstSegment = 0, uint32_t FragmentsPerSegment = 100, uint32_t Offset = 0 ); | ||||
|       void WriteContent( ); | ||||
|       void SetVersion( bool NewVersion = 0 ); | ||||
|       ASRT(); | ||||
|       void setVersion( char newVersion ); | ||||
|       void setUpdate( long newUpdate ); | ||||
|       void addQualityEntry( std::string newQuality ); | ||||
|       void addSegmentRun( long firstSegment, long fragmentsPerSegment ); | ||||
|       void regenerate(); | ||||
|       std::string toPrettyString(int indent = 0); | ||||
|     private: | ||||
|       void SetDefaults( ); | ||||
|       bool isUpdate; | ||||
|       bool Version; | ||||
|       std::vector<std::string> QualitySegmentUrlModifiers; | ||||
|       std::vector<asrt_segmentrunentry> SegmentRunEntryTable; | ||||
|       Box * Container; | ||||
|       std::deque<std::string> qualityModifiers; | ||||
|       std::deque<segmentRun> segmentRunTable; | ||||
|   };//ASRT Box
 | ||||
| 
 | ||||
| }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Erik Zandvliet
						Erik Zandvliet