#include "box.cpp" #include class Box_esds { public: Box_esds( ); ~Box_esds(); Box * GetBox(); void SetDataReferenceIndex( uint16_t DataReferenceIndex = 1); void SetChannelCount( uint16_t Count = 2 ); void SetSampleSize( uint16_t Size = 16 ); private: Box * Container; void SetReserved( ); void SetDefaults( ); };//Box_ftyp Class Box_esds::Box_esds( ) { Container = new Box( 0x65736473 ); SetReserved(); SetDefaults(); } Box_esds::~Box_esds() { delete Container; } Box * Box_esds::GetBox() { return Container; } void Box_esds::SetDataReferenceIndex( uint16_t DataReferenceIndex ) { Container->SetPayload((uint32_t)2,Box::uint16_to_uint8( DataReferenceIndex ),6); } void Box_esds::SetChannelCount( uint16_t Count ) { Container->SetPayload((uint32_t)2,Box::uint16_to_uint8( Count ),16); } void Box_esds::SetSampleSize( uint16_t Size ) { Container->SetPayload((uint32_t)2,Box::uint16_to_uint8( Size ),18); } void Box_esds::SetReserved( ) { Container->SetPayload((uint32_t)4,Box::uint32_to_uint8( 0 ),20); Container->SetPayload((uint32_t)2,Box::uint16_to_uint8( 0 ),4); Container->SetPayload((uint32_t)4,Box::uint32_to_uint8( 0 )); } void Box_esds::SetDefaults( ) { SetSampleSize( ); SetChannelCount( ); SetDataReferenceIndex( ); }