[Compiles faultless] Laatste commit in trein, STTS functionality werkt, kan zometeen hopelijk thuis nog meer doen
This commit is contained in:
parent
bfa110452c
commit
700c0ea209
3 changed files with 29 additions and 6 deletions
|
@ -58,7 +58,8 @@ void Box_avcC::SetReserved( ) {
|
|||
}
|
||||
|
||||
void Box_avcC::SetDefaults( ) {
|
||||
SetDimensions( );
|
||||
SetWidth( );
|
||||
SetHeight( );
|
||||
SetDepth ( );
|
||||
SetFrameCount ( );
|
||||
SetResolution ( );
|
||||
|
|
|
@ -136,10 +136,15 @@ uint8_t * Interface::GetContents( ) {
|
|||
}
|
||||
|
||||
void Interface::UpdateContents( ) {
|
||||
if( !Width ) { std::cerr << "WARNING: Width not set!\n"; }
|
||||
if( !Height ) { std::cerr << "WARNING: Height not set!\n"; }
|
||||
if( !Duration ) { std::cerr << "WARNING: Duration not set!\n"; }
|
||||
if( !UnitsPerSecond ) { std::cerr << "WARNING: Timescale not set!\n"; }
|
||||
if( !Width ) { fprintf(stderr,"WARNING: Width not set!\n"); }
|
||||
if( !Height ) { fprintf(stderr,"WARNING: Height not set!\n"); }
|
||||
if( !Duration ) { fprintf(stderr,"WARNING: Duration not set!\n"); }
|
||||
if( !UnitsPerSecond ) { fprintf(stderr,"WARNING: Timescale not set!\n"); }
|
||||
if( stts.size() == 0 ) {
|
||||
fprintf(stderr,"WARNING: No stts available!\n");
|
||||
} else {
|
||||
WriteSTTS();
|
||||
}
|
||||
stsd_vide->WriteContent( );
|
||||
stco_vide->WriteContent( );
|
||||
stsc_vide->WriteContent( );
|
||||
|
@ -218,5 +223,19 @@ void Interface::SetStaticDefaults() {
|
|||
}
|
||||
|
||||
void Interface::AddSTTSEntry( uint32_t SampleCount, uint32_t SampleDelta ) {
|
||||
|
||||
stts_record temp;
|
||||
temp.SampleCount = SampleCount;
|
||||
temp.SampleDelta = SampleDelta;
|
||||
stts.push_back(temp);
|
||||
}
|
||||
|
||||
void Interface::EmptySTTS() {
|
||||
stts.clear();
|
||||
}
|
||||
|
||||
void Interface::WriteSTTS( ) {
|
||||
for( int i = stts.size() -1; i > 0; i -- ) {
|
||||
stts_vide->AddEntry(stts[i].SampleCount,stts[i].SampleDelta,i);
|
||||
stts_soun->AddEntry(stts[i].SampleCount,stts[i].SampleDelta,i);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,14 +13,17 @@ class Interface {
|
|||
void SetDurationTime( uint32_t NewDuration );
|
||||
void SetTimeScale( uint32_t NewUnitsPerSecond );
|
||||
void AddSTTSEntry( uint32_t SampleCount, uint32_t SampleDelta );
|
||||
void EmptySTTS( );
|
||||
private:
|
||||
void SetStaticDefaults();
|
||||
void UpdateContents();
|
||||
void WriteSTTS( );
|
||||
bool AllBoxesExist();
|
||||
uint16_t Width;
|
||||
uint16_t Height;
|
||||
uint32_t Duration;
|
||||
uint32_t UnitsPerSecond;
|
||||
std::vector<stts_record> stts;
|
||||
Box_ftyp * ftyp;
|
||||
Box_moov * moov;
|
||||
Box_mvhd * mvhd;
|
||||
|
|
Loading…
Add table
Reference in a new issue