From b2b8491655831f0131a8640ea10d816e938cb0bb Mon Sep 17 00:00:00 2001 From: Erik Zandvliet Date: Tue, 18 Sep 2012 11:09:47 +0200 Subject: [PATCH] moof box added --- lib/mp4.cpp | 17 +++++++++++++++++ lib/mp4.h | 9 +++++++++ 2 files changed, 26 insertions(+) diff --git a/lib/mp4.cpp b/lib/mp4.cpp index 44069fca..74cc755f 100644 --- a/lib/mp4.cpp +++ b/lib/mp4.cpp @@ -539,4 +539,21 @@ namespace MP4{ void MFHD::setSequenceNumber( long newSequenceNumber ) { setInt32( newSequenceNumber, 4 ); } + + MOOF::MOOF() : Box("moof") {} + + void MOOF::addContent( Box* newContent ) { + content.push_back( newContent ); + isUpdated = true; + } + + void MOOF::regenerate() { + int myOffset = 0; + //retrieve box for each entry + for( std::deque::iterator it = content.begin(); it != content.end(); it++ ) { + memcpy( (char*)data.c_str() + myOffset, (*it)->asBox().c_str(), (*it)->boxedSize() + 1); + myOffset += (*it)->boxedSize(); + } + isUpdated = false; + } }; diff --git a/lib/mp4.h b/lib/mp4.h index 7c1692a9..53a2f359 100644 --- a/lib/mp4.h +++ b/lib/mp4.h @@ -125,4 +125,13 @@ namespace MP4{ MFHD(); void setSequenceNumber( long newSequenceNumber ); };//MFHD Box + + class MOOF : public Box { + public: + MOOF(); + void addContent( Box* newContent ); + void regenerate( ); + private: + std::deque content; + };//MOOF Box };