diff --git a/MP4/Makefile b/MP4/Makefile index 8875b89f..59b77e7b 100644 --- a/MP4/Makefile +++ b/MP4/Makefile @@ -1,4 +1,4 @@ -SRC = box.cpp box_ftyp.cpp box_h264.cpp box_stbl.cpp box_stco.cpp box_stsc.cpp box_stsd.cpp box_stts.cpp box_url.cpp box_dref.cpp box_dinf.cpp box_minf.cpp main.cpp +SRC = box.cpp box_ftyp.cpp box_h264.cpp box_stbl.cpp box_stco.cpp box_stsc.cpp box_stsd.cpp box_stts.cpp box_url.cpp box_dref.cpp box_dinf.cpp box_minf.cpp box_vmhd.cpp main.cpp OBJ = $(SRC:.cpp=.o) OUT = Boxtest INCLUDES = diff --git a/MP4/box_hdlr.cpp b/MP4/box_hdlr.cpp new file mode 100644 index 00000000..94efb540 --- /dev/null +++ b/MP4/box_hdlr.cpp @@ -0,0 +1,20 @@ +#include "box_hdlr.h" + +Box_hdlr::Box_hdlr( ) { + Container = new Box( 0x68646C72 ); + SetDefaults(); + SetReserved(); +} + +Box_hdlr::~Box_hdlr() { + delete Container; +} + +Box * Box_hdlr::GetBox() { + return Container; +} + +void Box_hdlr::SetReserved( ) { + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(1)); +} + diff --git a/MP4/box_hdlr.h b/MP4/box_hdlr.h new file mode 100644 index 00000000..6c446e96 --- /dev/null +++ b/MP4/box_hdlr.h @@ -0,0 +1,14 @@ +#include "box.h" + +class Box_hdlr { + public: + Box_hdlr( ); + ~Box_hdlr(); + Box * GetBox(); + void SetHandlerType( uint32_t HandlerType ); + void SetName ( std::string Name ); + private: + Box * Container; + void SetReserved( ); +};//Box_ftyp Class + diff --git a/MP4/box_minf.cpp b/MP4/box_minf.cpp index 65c88e17..efee10ac 100644 --- a/MP4/box_minf.cpp +++ b/MP4/box_minf.cpp @@ -1,7 +1,7 @@ #include "box_minf.h" Box_minf::Box_minf( ) { - Container = new Box( 0x7374626C ); + Container = new Box( 0x6D696E66 ); } Box_minf::~Box_minf() { diff --git a/MP4/box_vmhd.cpp b/MP4/box_vmhd.cpp new file mode 100644 index 00000000..30b73759 --- /dev/null +++ b/MP4/box_vmhd.cpp @@ -0,0 +1,32 @@ +#include "box_vmhd.h" + +Box_vmhd::Box_vmhd( ) { + Container = new Box( 0x766D6864 ); + SetDefaults(); + SetReserved(); +} + +Box_vmhd::~Box_vmhd() { + delete Container; +} + +Box * Box_vmhd::GetBox() { + return Container; +} + +void Box_vmhd::SetGraphicsMode( uint16_t GraphicsMode ) { + Container->SetPayload((uint32_t)2,Box::uint16_to_uint8(GraphicsMode),8); +} +void Box_vmhd::SetOpColor( uint16_t Red, uint16_t Green, uint16_t Blue ) { + Container->SetPayload((uint32_t)2,Box::uint16_to_uint8(Blue),14); + Container->SetPayload((uint32_t)2,Box::uint16_to_uint8(Green),12); + Container->SetPayload((uint32_t)2,Box::uint16_to_uint8(Red),10); +} + +void Box_vmhd::SetReserved( ) { + Container->SetPayload((uint32_t)4,Box::uint32_to_uint8(1)); +} +void Box_vmhd::SetDefaults( ) { + SetOpColor(); + SetGraphicsMode(); +} diff --git a/MP4/box_vmhd.h b/MP4/box_vmhd.h new file mode 100644 index 00000000..36eaf76b --- /dev/null +++ b/MP4/box_vmhd.h @@ -0,0 +1,15 @@ +#include "box.h" + +class Box_vmhd { + public: + Box_vmhd( ); + ~Box_vmhd(); + Box * GetBox(); + void SetGraphicsMode( uint16_t GraphicsMode = 0 ); + void SetOpColor( uint16_t Red = 0, uint16_t Green = 0, uint16_t Blue = 0); + private: + Box * Container; + void SetReserved( ); + void SetDefaults( ); +};//Box_ftyp Class +