MistServer  2.5.3-Pro-19-gf5e75b1 ( Generic_64)
Public Member Functions | Protected Member Functions | Protected Attributes
MP4::VisualSampleEntry Class Reference

#include <mp4_generic.h>

Inheritance diagram for MP4::VisualSampleEntry:
MP4::SampleEntry MP4::SampleEntry MP4::Box MP4::Box MP4::Box MP4::Box MP4::AVC1 MP4::AVC1 MP4::H264 MP4::H264 MP4::HEV1 MP4::HEV1

Public Member Functions

 VisualSampleEntry ()
 
 VisualSampleEntry ()
 
 VisualSampleEntry (DTSC::Track &track)
 
 VisualSampleEntry (DTSC::Track &track)
 
char * asBox ()
 Returns a copy of the data pointer. More...
 
char * asBox ()
 
uint64_t boxedSize ()
 Returns the total boxed size of this box, including the header. More...
 
uint64_t boxedSize ()
 
void clear ()
 Makes this box managed if it wasn't already, resetting the internal storage to 8 bytes (the minimum). More...
 
void clear ()
 
BoxgetCLAP ()
 
BoxgetCLAP ()
 
std::string getCompressorName ()
 
std::string getCompressorName ()
 
uint16_t getDataReferenceIndex ()
 
uint16_t getDataReferenceIndex ()
 
uint16_t getDepth ()
 
uint16_t getDepth ()
 
uint16_t getFrameCount ()
 
uint16_t getFrameCount ()
 
uint16_t getHeight ()
 
uint16_t getHeight ()
 
uint32_t getHorizResolution ()
 
uint32_t getHorizResolution ()
 
BoxgetPASP ()
 
BoxgetPASP ()
 
std::string getType ()
 Returns the values at byte positions 4 through 7. More...
 
std::string getType ()
 
uint32_t getVertResolution ()
 
uint32_t getVertResolution ()
 
uint16_t getWidth ()
 
uint16_t getWidth ()
 
void initialize ()
 
void initialize ()
 
bool isType (const char *boxType)
 Returns true if the given 4-byte boxtype is equal to the values at byte positions 4 through 7. More...
 
bool isType (const char *boxType)
 
char * payload ()
 
char * payload ()
 
uint64_t payloadSize ()
 
uint64_t payloadSize ()
 Retruns the size of the payload of thix box, excluding the header. More...
 
bool read (FILE *newData)
 
bool read (FILE *newData)
 
bool read (std::string &newData)
 Reads out a whole box (if possible) from newData, copying to the internal data storage and removing from the input string. More...
 
bool read (std::string &newData)
 
void setCLAP (Box &clap)
 
void setCLAP (Box &clap)
 
void setCodec (const char *newCodec)
 
void setCodec (const char *newCodec)
 
void setCompressorName (std::string newCompressorName)
 
void setCompressorName (std::string newCompressorName)
 
void setDataReferenceIndex (uint16_t newDataReferenceIndex)
 
void setDataReferenceIndex (uint16_t newDataReferenceIndex)
 
void setDepth (uint16_t newDepth)
 
void setDepth (uint16_t newDepth)
 
void setFrameCount (uint16_t newFrameCount)
 
void setFrameCount (uint16_t newFrameCount)
 
void setHeight (uint16_t newHeight)
 
void setHeight (uint16_t newHeight)
 
void setHorizResolution (uint32_t newHorizResolution)
 
void setHorizResolution (uint32_t newHorizResolution)
 
void setPASP (Box &pasp)
 
void setPASP (Box &pasp)
 
void setVertResolution (uint32_t newVertResolution)
 
void setVertResolution (uint32_t newVertResolution)
 
void setWidth (uint16_t newWidth)
 
void setWidth (uint16_t newWidth)
 
std::string toPrettySampleString (uint32_t index)
 
std::string toPrettySampleString (uint32_t index)
 
std::string toPrettyString (uint32_t indent=0)
 
std::string toPrettyString (uint32_t indent=0)
 Attempts to typecast this Box to a more specific type and call the toPrettyString() function of that type. More...
 
std::string toPrettyVisualString (uint32_t index=0, std::string="")
 
std::string toPrettyVisualString (uint32_t index=0, std::string="")
 

Protected Member Functions

BoxgetBox (size_t index)
 Gets a reference to the box at the given index. More...
 
BoxgetBox (size_t index)
 
size_t getBoxLen (size_t index)
 
size_t getBoxLen (size_t index)
 Returns the size of the box at the given position. More...
 
short getInt16 (size_t index)
 
short getInt16 (size_t index)
 Gets the 16 bits integer at the given index. More...
 
uint32_t getInt24 (size_t index)
 Gets the 24 bits integer at the given index. More...
 
uint32_t getInt24 (size_t index)
 
uint32_t getInt32 (size_t index)
 
uint32_t getInt32 (size_t index)
 Gets the 32 bits integer at the given index. More...
 
uint64_t getInt64 (size_t index)
 Gets the 64 bits integer at the given index. More...
 
uint64_t getInt64 (size_t index)
 
char getInt8 (size_t index)
 
char getInt8 (size_t index)
 Gets the 8 bits integer at the given index. More...
 
char * getString (size_t index)
 Gets the NULL-terminated string at the given index. More...
 
char * getString (size_t index)
 
size_t getStringLen (size_t index)
 Returns the length of the NULL-terminated string at the given index. More...
 
size_t getStringLen (size_t index)
 
bool reserve (size_t position, size_t current, size_t wanted)
 Attempts to reserve enough space for wanted bytes of data at given position, where current bytes of data is now reserved. More...
 
bool reserve (size_t position, size_t current, size_t wanted)
 
void setBox (Box &newEntry, size_t index)
 
void setBox (Box &newEntry, size_t index)
 Replaces the existing box at the given index by the new box newEntry. More...
 
void setInt16 (short newData, size_t index)
 Sets the 16 bits integer at the given index. More...
 
void setInt16 (short newData, size_t index)
 
void setInt24 (uint32_t newData, size_t index)
 Sets the 24 bits integer at the given index. More...
 
void setInt24 (uint32_t newData, size_t index)
 
void setInt32 (uint32_t newData, size_t index)
 Sets the 32 bits integer at the given index. More...
 
void setInt32 (uint32_t newData, size_t index)
 
void setInt64 (uint64_t newData, size_t index)
 
void setInt64 (uint64_t newData, size_t index)
 Sets the 64 bits integer at the given index. More...
 
void setInt8 (char newData, size_t index)
 
void setInt8 (char newData, size_t index)
 Sets the 8 bits integer at the given index. More...
 
void setString (std::string newData, size_t index)
 
void setString (std::string newData, size_t index)
 Sets the NULL-terminated string at the given index. More...
 
void setString (char *newData, size_t size, size_t index)
 Sets the NULL-terminated string at the given index. More...
 
void setString (char *newData, size_t size, size_t index)
 

Protected Attributes

char * data
 Holds the data of this box. More...
 
unsigned int data_size
 Currently reserved size. More...
 
bool managed
 If false, will not attempt to resize/free the data pointer. More...
 
unsigned int payloadOffset
 The offset of the payload with regards to the data. More...
 

Constructor & Destructor Documentation

MP4::VisualSampleEntry::VisualSampleEntry ( )
Todo:
set default values
MP4::VisualSampleEntry::VisualSampleEntry ( DTSC::Track track)
MP4::VisualSampleEntry::VisualSampleEntry ( )
Todo:
set default values
MP4::VisualSampleEntry::VisualSampleEntry ( DTSC::Track track)

Member Function Documentation

char * MP4::Box::asBox ( )
inherited

Returns a copy of the data pointer.

char* MP4::Box::asBox ( )
inherited
uint64_t MP4::Box::boxedSize ( )
inherited

Returns the total boxed size of this box, including the header.

uint64_t MP4::Box::boxedSize ( )
inherited
void MP4::Box::clear ( )
inherited

Makes this box managed if it wasn't already, resetting the internal storage to 8 bytes (the minimum).

If this box wasn't managed, the original data is left intact - otherwise it is free'd. If it was somehow impossible to allocate 8 bytes (should never happen), this will cause segfaults later.

void MP4::Box::clear ( )
inherited
Box & MP4::Box::getBox ( size_t  index)
protectedinherited

Gets a reference to the box at the given index.

Do not store or copy this reference, for there will be raptors. Will attempt to resize if out of range. Returns an 8-byte error box if resizing failed.

Box& MP4::Box::getBox ( size_t  index)
protectedinherited
size_t MP4::Box::getBoxLen ( size_t  index)
protectedinherited

Returns the size of the box at the given position.

Returns undefined values if there is no box at the given position. Returns 0 if out of range.

size_t MP4::Box::getBoxLen ( size_t  index)
protectedinherited
Box& MP4::VisualSampleEntry::getCLAP ( )
Box & MP4::VisualSampleEntry::getCLAP ( )
std::string MP4::VisualSampleEntry::getCompressorName ( )
std::string MP4::VisualSampleEntry::getCompressorName ( )
uint16_t MP4::SampleEntry::getDataReferenceIndex ( )
inherited
uint16_t MP4::SampleEntry::getDataReferenceIndex ( )
inherited
uint16_t MP4::VisualSampleEntry::getDepth ( )
uint16_t MP4::VisualSampleEntry::getDepth ( )
uint16_t MP4::VisualSampleEntry::getFrameCount ( )
uint16_t MP4::VisualSampleEntry::getFrameCount ( )
uint16_t MP4::VisualSampleEntry::getHeight ( )
uint16_t MP4::VisualSampleEntry::getHeight ( )
uint32_t MP4::VisualSampleEntry::getHorizResolution ( )
uint32_t MP4::VisualSampleEntry::getHorizResolution ( )
short MP4::Box::getInt16 ( size_t  index)
protectedinherited

Gets the 16 bits integer at the given index.

Attempts to resize the data pointer if the index is out of range. Returns zero if resizing failed.

short MP4::Box::getInt16 ( size_t  index)
protectedinherited
uint32_t MP4::Box::getInt24 ( size_t  index)
protectedinherited

Gets the 24 bits integer at the given index.

Attempts to resize the data pointer if the index is out of range. Returns zero if resizing failed.

uint32_t MP4::Box::getInt24 ( size_t  index)
protectedinherited
uint32_t MP4::Box::getInt32 ( size_t  index)
protectedinherited

Gets the 32 bits integer at the given index.

Attempts to resize the data pointer if the index is out of range. Returns zero if resizing failed.

uint32_t MP4::Box::getInt32 ( size_t  index)
protectedinherited
uint64_t MP4::Box::getInt64 ( size_t  index)
protectedinherited

Gets the 64 bits integer at the given index.

Attempts to resize the data pointer if the index is out of range. Returns zero if resizing failed.

uint64_t MP4::Box::getInt64 ( size_t  index)
protectedinherited
char MP4::Box::getInt8 ( size_t  index)
protectedinherited

Gets the 8 bits integer at the given index.

Attempts to resize the data pointer if the index is out of range. Returns zero if resizing failed.

char MP4::Box::getInt8 ( size_t  index)
protectedinherited
Box & MP4::VisualSampleEntry::getPASP ( )
Box& MP4::VisualSampleEntry::getPASP ( )
char * MP4::Box::getString ( size_t  index)
protectedinherited

Gets the NULL-terminated string at the given index.

Will attempt to resize if the string is out of range. Returns null if resizing failed.

char* MP4::Box::getString ( size_t  index)
protectedinherited
size_t MP4::Box::getStringLen ( size_t  index)
protectedinherited

Returns the length of the NULL-terminated string at the given index.

Returns 0 if out of range.

size_t MP4::Box::getStringLen ( size_t  index)
protectedinherited
std::string MP4::Box::getType ( )
inherited

Returns the values at byte positions 4 through 7.

std::string MP4::Box::getType ( )
inherited
uint32_t MP4::VisualSampleEntry::getVertResolution ( )
uint32_t MP4::VisualSampleEntry::getVertResolution ( )
uint16_t MP4::VisualSampleEntry::getWidth ( )
uint16_t MP4::VisualSampleEntry::getWidth ( )
void MP4::VisualSampleEntry::initialize ( )
void MP4::VisualSampleEntry::initialize ( )
bool MP4::Box::isType ( const char *  boxType)
inherited

Returns true if the given 4-byte boxtype is equal to the values at byte positions 4 through 7.

bool MP4::Box::isType ( const char *  boxType)
inherited
char* MP4::Box::payload ( )
inherited
char * MP4::Box::payload ( )
inherited
uint64_t MP4::Box::payloadSize ( )
inherited

Retruns the size of the payload of thix box, excluding the header.

This value is defined as boxedSize() - 8.

uint64_t MP4::Box::payloadSize ( )
inherited
bool MP4::Box::read ( FILE *  newData)
inherited
bool MP4::Box::read ( FILE *  newData)
inherited
bool MP4::Box::read ( std::string &  newData)
inherited

Reads out a whole box (if possible) from newData, copying to the internal data storage and removing from the input string.

Returns
True on success, false otherwise.
bool MP4::Box::read ( std::string &  newData)
inherited
bool MP4::Box::reserve ( size_t  position,
size_t  current,
size_t  wanted 
)
protectedinherited
bool MP4::Box::reserve ( size_t  position,
size_t  current,
size_t  wanted 
)
protectedinherited

Attempts to reserve enough space for wanted bytes of data at given position, where current bytes of data is now reserved.

This will move any existing data behind the currently reserved space to the proper location after reserving.

Returns
True on success, false otherwise.
void MP4::Box::setBox ( Box newEntry,
size_t  index 
)
protectedinherited

Replaces the existing box at the given index by the new box newEntry.

Will resize if needed, will reserve new space if out of range.

void MP4::Box::setBox ( Box newEntry,
size_t  index 
)
protectedinherited
void MP4::VisualSampleEntry::setCLAP ( Box clap)
void MP4::VisualSampleEntry::setCLAP ( Box clap)
void MP4::VisualSampleEntry::setCodec ( const char *  newCodec)
void MP4::VisualSampleEntry::setCodec ( const char *  newCodec)
void MP4::VisualSampleEntry::setCompressorName ( std::string  newCompressorName)
void MP4::VisualSampleEntry::setCompressorName ( std::string  newCompressorName)
void MP4::SampleEntry::setDataReferenceIndex ( uint16_t  newDataReferenceIndex)
inherited
void MP4::SampleEntry::setDataReferenceIndex ( uint16_t  newDataReferenceIndex)
inherited
void MP4::VisualSampleEntry::setDepth ( uint16_t  newDepth)
void MP4::VisualSampleEntry::setDepth ( uint16_t  newDepth)
void MP4::VisualSampleEntry::setFrameCount ( uint16_t  newFrameCount)
void MP4::VisualSampleEntry::setFrameCount ( uint16_t  newFrameCount)
void MP4::VisualSampleEntry::setHeight ( uint16_t  newHeight)
void MP4::VisualSampleEntry::setHeight ( uint16_t  newHeight)
void MP4::VisualSampleEntry::setHorizResolution ( uint32_t  newHorizResolution)
void MP4::VisualSampleEntry::setHorizResolution ( uint32_t  newHorizResolution)
void MP4::Box::setInt16 ( short  newData,
size_t  index 
)
protectedinherited

Sets the 16 bits integer at the given index.

Attempts to resize the data pointer if the index is out of range. Fails silently if resizing failed.

void MP4::Box::setInt16 ( short  newData,
size_t  index 
)
protectedinherited
void MP4::Box::setInt24 ( uint32_t  newData,
size_t  index 
)
protectedinherited

Sets the 24 bits integer at the given index.

Attempts to resize the data pointer if the index is out of range. Fails silently if resizing failed.

void MP4::Box::setInt24 ( uint32_t  newData,
size_t  index 
)
protectedinherited
void MP4::Box::setInt32 ( uint32_t  newData,
size_t  index 
)
protectedinherited
void MP4::Box::setInt32 ( uint32_t  newData,
size_t  index 
)
protectedinherited

Sets the 32 bits integer at the given index.

Attempts to resize the data pointer if the index is out of range. Fails silently if resizing failed.

void MP4::Box::setInt64 ( uint64_t  newData,
size_t  index 
)
protectedinherited

Sets the 64 bits integer at the given index.

Attempts to resize the data pointer if the index is out of range. Fails silently if resizing failed.

void MP4::Box::setInt64 ( uint64_t  newData,
size_t  index 
)
protectedinherited
void MP4::Box::setInt8 ( char  newData,
size_t  index 
)
protectedinherited
void MP4::Box::setInt8 ( char  newData,
size_t  index 
)
protectedinherited

Sets the 8 bits integer at the given index.

Attempts to resize the data pointer if the index is out of range. Fails silently if resizing failed.

void MP4::VisualSampleEntry::setPASP ( Box pasp)
void MP4::VisualSampleEntry::setPASP ( Box pasp)
void MP4::Box::setString ( std::string  newData,
size_t  index 
)
protectedinherited
void MP4::Box::setString ( std::string  newData,
size_t  index 
)
protectedinherited

Sets the NULL-terminated string at the given index.

Will attempt to resize if the string doesn't fit. Fails silently if resizing failed.

void MP4::Box::setString ( char *  newData,
size_t  size,
size_t  index 
)
protectedinherited
void MP4::Box::setString ( char *  newData,
size_t  size,
size_t  index 
)
protectedinherited

Sets the NULL-terminated string at the given index.

Will attempt to resize if the string doesn't fit. Fails silently if resizing failed.

void MP4::VisualSampleEntry::setVertResolution ( uint32_t  newVertResolution)
void MP4::VisualSampleEntry::setVertResolution ( uint32_t  newVertResolution)
void MP4::VisualSampleEntry::setWidth ( uint16_t  newWidth)
void MP4::VisualSampleEntry::setWidth ( uint16_t  newWidth)
std::string MP4::SampleEntry::toPrettySampleString ( uint32_t  index)
inherited
std::string MP4::SampleEntry::toPrettySampleString ( uint32_t  index)
inherited
std::string MP4::Box::toPrettyString ( uint32_t  indent = 0)
inherited
std::string MP4::Box::toPrettyString ( uint32_t  indent = 0)
inherited

Attempts to typecast this Box to a more specific type and call the toPrettyString() function of that type.

If this failed, it will print out a message saying pretty-printing is not implemented for boxtype.

Todo:
Implement hexdump for unimplemented boxes?
std::string MP4::VisualSampleEntry::toPrettyVisualString ( uint32_t  index = 0,
std::string  name = "" 
)
std::string MP4::VisualSampleEntry::toPrettyVisualString ( uint32_t  index = 0,
std::string  = "" 
)

Field Documentation

char * MP4::Box::data
protectedinherited

Holds the data of this box.

unsigned int MP4::Box::data_size
protectedinherited

Currently reserved size.

bool MP4::Box::managed
protectedinherited

If false, will not attempt to resize/free the data pointer.

unsigned int MP4::Box::payloadOffset
protectedinherited

The offset of the payload with regards to the data.


The documentation for this class was generated from the following files: