58 lines
1.2 KiB
C++
58 lines
1.2 KiB
C++
#include "boxheader.h"
|
|
|
|
class Box {
|
|
public:
|
|
Box();
|
|
Box(uint32_t BoxType);
|
|
~Box();
|
|
|
|
void SetBoxType(uint32_t BoxType);
|
|
uint32_t GetBoxType();
|
|
|
|
void SetPayload(uint32_t PayloadSize, uint8_t * Data);
|
|
uint8_t * GetPayload();
|
|
uint8_t * GetPayload(uint32_t Index, uint32_t Size);
|
|
private:
|
|
BoxHeader header;
|
|
uint8_t * Payload;
|
|
};//Box Class
|
|
|
|
Box::Box() {
|
|
Payload = NULL;
|
|
}
|
|
|
|
Box::Box(uint32_t BoxType) {
|
|
header.BoxType = BoxType;
|
|
Payload = NULL;
|
|
}
|
|
|
|
Box::~Box() {
|
|
}
|
|
|
|
void Box::SetBoxType(uint32_t BoxType) {
|
|
header.BoxType = BoxType;
|
|
}
|
|
|
|
uint32_t Box::GetBoxType() {
|
|
return header.BoxType;
|
|
}
|
|
|
|
void Box::SetPayload(uint32_t PayloadSize, uint8_t * Data ) {
|
|
if ( Payload != NULL ) { delete Payload; }
|
|
Payload = new uint8_t[PayloadSize];
|
|
memcpy( Payload, Data, PayloadSize );
|
|
header.TotalSize = PayloadSize + 8;
|
|
}
|
|
|
|
uint8_t * Box::GetPayload() {
|
|
uint8_t * temp = new uint8_t[header.TotalSize - 8];
|
|
memcpy( temp, Payload, header.TotalSize - 8 );
|
|
return temp;
|
|
}
|
|
|
|
uint8_t * Box::GetPayload(uint32_t Index, uint32_t Size) {
|
|
if(
|
|
uint8_t * temp = new uint8_t[header.TotalSize - 8];
|
|
memcpy( temp, Payload, header.TotalSize - 8 );
|
|
return temp;
|
|
}
|