[STABLE] MP4 boxes finished, started on the interface, big part of the constructor and destructer are finished

This commit is contained in:
Erik Zandvliet 2011-01-22 21:47:50 +01:00
parent c633734d07
commit 86fd8c59e8
7 changed files with 153 additions and 18 deletions

View file

@ -1,4 +1,4 @@
SRC = box_avcC.cpp box.cpp box_dinf.cpp box_dref.cpp box_esds.cpp box_ftyp.cpp box_hdlr.cpp box_hmhd.cpp box_mdhd.cpp box_mdia.cpp box_minf.cpp box_moov.cpp box_mvhd.cpp box_nmhd.cpp box_smhd.cpp box_stbl.cpp box_stco.cpp box_stsc.cpp box_stsd.cpp box_stts.cpp box_tkhd.cpp box_trak.cpp box_url.cpp box_vmhd.cpp main.cpp SRC = box_avcC.cpp box.cpp box_dinf.cpp box_dref.cpp box_esds.cpp box_ftyp.cpp box_hdlr.cpp box_hmhd.cpp box_mdhd.cpp box_mdia.cpp box_minf.cpp box_moov.cpp box_mvhd.cpp box_nmhd.cpp box_smhd.cpp box_stbl.cpp box_stco.cpp box_stsc.cpp box_stsd.cpp box_stts.cpp box_tkhd.cpp box_trak.cpp box_url.cpp box_vmhd.cpp main.cpp interface.cpp
OBJ = $(SRC:.cpp=.o) OBJ = $(SRC:.cpp=.o)
OUT = Boxtest OUT = Boxtest
INCLUDES = INCLUDES =

View file

@ -12,7 +12,7 @@ Box * Box_dinf::GetBox() {
return Container; return Container;
} }
void Box_dinf::AddContent( Box * newcontent, uint32_t offset ) { void Box_dinf::AddContent( Box * newcontent ) {
if(Content) { if(Content) {
delete Content; delete Content;
Content = NULL; Content = NULL;

View file

@ -7,7 +7,7 @@ class Box_dinf {
Box_dinf(); Box_dinf();
~Box_dinf(); ~Box_dinf();
Box * GetBox(); Box * GetBox();
void AddContent( Box * newcontent, uint32_t offset = 0 ); void AddContent( Box * newcontent );
private: private:
Box * Container; Box * Container;

23
MP4/box_includes.h Normal file
View file

@ -0,0 +1,23 @@
#include "box_avcC.h"
#include "box_dinf.h"
#include "box_dref.h"
#include "box_esds.h"
#include "box_ftyp.h"
#include "box_hdlr.h"
#include "box_hmhd.h"
#include "box_mdhd.h"
#include "box_mdia.h"
#include "box_minf.h"
#include "box_moov.h"
#include "box_mvhd.h"
#include "box_nmhd.h"
#include "box_smhd.h"
#include "box_stbl.h"
#include "box_stco.h"
#include "box_stsc.h"
#include "box_stsd.h"
#include "box_stts.h"
#include "box_tkhd.h"
#include "box_trak.h"
#include "box_url.h"
#include "box_vmhd.h"

73
MP4/interface.cpp Normal file
View file

@ -0,0 +1,73 @@
#include "interface.h"
Interface::Interface() {
ftyp = new Box_ftyp();
moov = new Box_moov();
mvhd = new Box_mvhd();
trak_vide = new Box_trak();
tkhd_vide = new Box_tkhd();
mdia_vide = new Box_mdia();
mdhd_vide = new Box_mdhd();
hdlr_vide = new Box_hdlr();
minf_vide = new Box_minf();
dinf_vide = new Box_dinf();
dref_vide = new Box_dref();
url_vide = new Box_url();
stbl_vide = new Box_stbl();
stts_vide = new Box_stts();
stsc_vide = new Box_stsc();
stco_vide = new Box_stco();
stsd_vide = new Box_stsd();
avcC_vide = new Box_avcC();
trak_soun = new Box_trak();
tkhd_soun = new Box_tkhd();
mdia_soun = new Box_mdia();
mdhd_soun = new Box_mdhd();
hdlr_soun = new Box_hdlr();
minf_soun = new Box_minf();
dinf_soun = new Box_dinf();
dref_soun = new Box_dref();
url_soun = new Box_url();
stbl_soun = new Box_stbl();
stts_soun = new Box_stts();
stsc_soun = new Box_stsc();
stco_soun = new Box_stco();
stsd_soun = new Box_stsd();
esds_soun = new Box_esds();
}
Interface::~Interface() {
if( esds_soun ) { delete esds_soun; esds_soun = NULL; }
if( stsd_soun ) { delete stsd_soun; stsd_soun = NULL; }
if( stco_soun ) { delete stco_soun; stco_soun = NULL; }
if( stsc_soun ) { delete stsc_soun; stsc_soun = NULL; }
if( stts_soun ) { delete stts_soun; stts_soun = NULL; }
if( stbl_soun ) { delete stbl_soun; stbl_soun = NULL; }
if( url_soun ) { delete url_soun; url_soun = NULL; }
if( dref_soun ) { delete dref_soun; dref_soun = NULL; }
if( dinf_soun ) { delete dinf_soun; dinf_soun = NULL; }
if( minf_soun ) { delete minf_soun; minf_soun = NULL; }
if( hdlr_soun ) { delete hdlr_soun; hdlr_soun = NULL; }
if( mdhd_soun ) { delete mdhd_soun; mdhd_soun = NULL; }
if( mdia_soun ) { delete mdia_soun; mdia_soun = NULL; }
if( tkhd_soun ) { delete tkhd_soun; tkhd_soun = NULL; }
if( trak_soun ) { delete trak_soun; trak_soun = NULL; }
if( avcC_vide ) { delete avcC_vide; avcC_vide = NULL; }
if( stsd_vide ) { delete stsd_vide; stsd_vide = NULL; }
if( stco_vide ) { delete stco_vide; stco_vide = NULL; }
if( stsc_vide ) { delete stsc_vide; stsc_vide = NULL; }
if( stts_vide ) { delete stts_vide; stts_vide = NULL; }
if( stbl_vide ) { delete stbl_vide; stbl_vide = NULL; }
if( url_vide ) { delete url_vide; url_vide = NULL; }
if( dref_vide ) { delete dref_vide; dref_vide = NULL; }
if( dinf_vide ) { delete dinf_vide; dinf_vide = NULL; }
if( minf_vide ) { delete minf_vide; minf_vide = NULL; }
if( hdlr_vide ) { delete hdlr_vide; hdlr_vide = NULL; }
if( mdhd_vide ) { delete mdhd_vide; mdhd_vide = NULL; }
if( mdia_vide ) { delete mdia_vide; mdia_vide = NULL; }
if( tkhd_vide ) { delete tkhd_vide; tkhd_vide = NULL; }
if( trak_vide ) { delete trak_vide; trak_vide = NULL; }
if( mvhd ) { delete mvhd; mvhd = NULL; }
if( moov ) { delete moov; moov = NULL; }
if( ftyp ) { delete ftyp; ftyp = NULL; }
}

47
MP4/interface.h Normal file
View file

@ -0,0 +1,47 @@
#include "box_includes.h"
class Interface {
public:
Interface();
~Interface();
void link();
private:
Box_ftyp * ftyp;
Box_moov * moov;
Box_mvhd * mvhd;
Box_trak * trak_vide;
Box_tkhd * tkhd_vide;
Box_mdia * mdia_vide;
Box_mdhd * mdhd_vide;
Box_hdlr * hdlr_vide;
Box_minf * minf_vide;
Box_vmhd * vmhd_vide;
Box_dinf * dinf_vide;
Box_dref * dref_vide;
Box_url * url_vide;
Box_stbl * stbl_vide;
Box_stts * stts_vide;
Box_stsc * stsc_vide;
Box_stco * stco_vide;
Box_stsd * stsd_vide;
Box_avcC * avcC_vide;
Box_trak * trak_soun;
Box_tkhd * tkhd_soun;
Box_mdia * mdia_soun;
Box_mdhd * mdhd_soun;
Box_hdlr * hdlr_soun;
Box_minf * minf_soun;
Box_smhd * smhd_soun;
Box_dinf * dinf_soun;
Box_dref * dref_soun;
Box_url * url_soun;
Box_stbl * stbl_soun;
Box_stts * stts_soun;
Box_stsc * stsc_soun;
Box_stco * stco_soun;
Box_stsd * stsd_soun;
Box_esds * esds_soun;
};//Interface class

View file

@ -1,19 +1,11 @@
#include <iostream> #include <iostream>
#include "box_avcC.h" #include "interface.h"
#include "box_stsd.h"
#include <string>
int main( ) { int main( ) {
Box_avcC * Testing = new Box_avcC(); std::cout << "Creating Interface\n";
Testing->SetCompressorName( "Test123" ); Interface * file = new Interface();
std::cout << "H264::Size: " << Testing->GetBox()->GetHeader().TotalSize << "\n"; std::cout << "Interface created, deleting it again\n";
Box_stsd * Testsample = new Box_stsd(); delete file;
std::cout << "STSD::Before Content: " << Testsample->GetBox()->GetHeader().TotalSize << "\n"; std::cout << "Interface deleted\n";
Testsample->AddContent( Testing->GetBox() );
std::cout << "STSD::After 1 Content: " << Testsample->GetBox()->GetHeader().TotalSize << "\n";
Testsample->AddContent( Testing->GetBox(), 1 );
std::cout << "STSD::After 2 Content: " << Testsample->GetBox()->GetHeader().TotalSize << "\n";
delete Testsample;
delete Testing;
return 0; return 0;
} }