MistServer  2.5.3-Pro-19-gf5e75b1 ( Generic_64)
Public Member Functions | Data Fields | Private Attributes
DTSC::Track Class Reference

Class for storage of track data. More...

#include <dtsc.h>

Public Member Functions

 Track ()
 Constructs an empty track. More...
 
 Track ()
 
 Track (JSON::Value &trackRef)
 Constructs a track from a JSON::Value. More...
 
 Track (JSON::Value &trackRef)
 
 Track (Scan &trackRef)
 
 Track (Scan &trackRef)
 Constructs a track from a JSON::Value. More...
 
void finalize ()
 
void finalize ()
 
std::string getIdentifier ()
 
std::string getIdentifier ()
 Returns a unique identifier for a track. More...
 
KeygetKey (unsigned int keyNum)
 Returns a key given its number, or an empty key if the number is out of bounds. More...
 
KeygetKey (unsigned int keyNum)
 
int getSendLen ()
 
int getSendLen ()
 Determines the "packed" size of a track. More...
 
std::string getWritableIdentifier ()
 Returns a writable identifier for a track, to prevent overwrites on readout. More...
 
std::string getWritableIdentifier ()
 
 operator bool () const
 
 operator bool () const
 
void reset ()
 Resets a track, clears all meta values. More...
 
void reset ()
 
void send (Socket::Connection &conn)
 
void send (Socket::Connection &conn)
 Writes a track to a socket. More...
 
unsigned int timeToFragnum (unsigned int timestamp)
 
unsigned int timeToFragnum (unsigned int timestamp)
 
unsigned int timeToKeynum (unsigned int timestamp)
 
unsigned int timeToKeynum (unsigned int timestamp)
 
JSON::Value toJSON (bool skipBinary=false)
 
JSON::Value toJSON (bool skipBinary=false)
 Converts a track to a JSON::Value. More...
 
void toPrettyString (std::ostream &str, int indent=0, int verbosity=0)
 
void toPrettyString (std::ostream &str, int indent=0, int verbosity=0)
 Converts a track to a human readable string. More...
 
void update (long long packTime, long long packOffset, long long packDataSize, long long packBytePos, bool isKeyframe, long long packSendSize, unsigned long segment_size=5000, const char *iVec=0)
 Updates a track and its metadata given new packet properties. More...
 
void update (long long packTime, long long packOffset, long long packDataSize, long long packBytePos, bool isKeyframe, long long packSendSize, unsigned long segment_size=5000, const char *iVec=0)
 
void writeTo (char *&p)
 Writes a track to a pointer. More...
 
void writeTo (char *&p)
 

Data Fields

int bps
 
int channels
 
std::string codec
 
unsigned long long firstms
 
int fpks
 
std::deque< Fragmentfragments
 
int height
 
std::string init
 
std::deque< Ivecivecs
 
std::deque< Keykeys
 
std::deque< unsigned long > keySizes
 
unsigned long long lastms
 
int missedFrags
 
std::deque< Partparts
 
int rate
 
int size
 
unsigned int trackID
 
std::string type
 
int width
 

Private Attributes

std::string cachedIdent
 

Detailed Description

Class for storage of track data.

Constructor & Destructor Documentation

DTSC::Track::Track ( )

Constructs an empty track.

DTSC::Track::Track ( JSON::Value trackRef)

Constructs a track from a JSON::Value.

DTSC::Track::Track ( Scan trackRef)

Constructs a track from a JSON::Value.

DTSC::Track::Track ( )
DTSC::Track::Track ( JSON::Value trackRef)
DTSC::Track::Track ( Scan trackRef)

Member Function Documentation

void DTSC::Track::finalize ( )
void DTSC::Track::finalize ( )
std::string DTSC::Track::getIdentifier ( )

Returns a unique identifier for a track.

std::string DTSC::Track::getIdentifier ( )
Key& DTSC::Track::getKey ( unsigned int  keyNum)
Key & DTSC::Track::getKey ( unsigned int  keyNum)

Returns a key given its number, or an empty key if the number is out of bounds.

int DTSC::Track::getSendLen ( )
int DTSC::Track::getSendLen ( )

Determines the "packed" size of a track.

std::string DTSC::Track::getWritableIdentifier ( )

Returns a writable identifier for a track, to prevent overwrites on readout.

std::string DTSC::Track::getWritableIdentifier ( )
DTSC::Track::operator bool ( ) const
inline
DTSC::Track::operator bool ( ) const
inline
void DTSC::Track::reset ( )

Resets a track, clears all meta values.

void DTSC::Track::reset ( )
void DTSC::Track::send ( Socket::Connection conn)
void DTSC::Track::send ( Socket::Connection conn)

Writes a track to a socket.

unsigned int DTSC::Track::timeToFragnum ( unsigned int  timestamp)
unsigned int DTSC::Track::timeToFragnum ( unsigned int  timestamp)
unsigned int DTSC::Track::timeToKeynum ( unsigned int  timestamp)
unsigned int DTSC::Track::timeToKeynum ( unsigned int  timestamp)
JSON::Value DTSC::Track::toJSON ( bool  skipBinary = false)
JSON::Value DTSC::Track::toJSON ( bool  skipBinary = false)

Converts a track to a JSON::Value.

void DTSC::Track::toPrettyString ( std::ostream &  str,
int  indent = 0,
int  verbosity = 0 
)
void DTSC::Track::toPrettyString ( std::ostream &  str,
int  indent = 0,
int  verbosity = 0 
)

Converts a track to a human readable string.

Parameters
strThe stringstream to append to
indentthe amount of indentation needed
verbosityHow verbose the output needs to be
void DTSC::Track::update ( long long  packTime,
long long  packOffset,
long long  packDataSize,
long long  packBytePos,
bool  isKeyframe,
long long  packSendSize,
unsigned long  segment_size = 5000,
const char *  iVec = 0 
)

Updates a track and its metadata given new packet properties.

Will also insert keyframes on non-video tracks, and creates fragments

void DTSC::Track::update ( long long  packTime,
long long  packOffset,
long long  packDataSize,
long long  packBytePos,
bool  isKeyframe,
long long  packSendSize,
unsigned long  segment_size = 5000,
const char *  iVec = 0 
)
void DTSC::Track::writeTo ( char *&  p)

Writes a track to a pointer.

void DTSC::Track::writeTo ( char *&  p)

Field Documentation

int DTSC::Track::bps
std::string DTSC::Track::cachedIdent
private
int DTSC::Track::channels
std::string DTSC::Track::codec
unsigned long long DTSC::Track::firstms
int DTSC::Track::fpks
std::deque< Fragment > DTSC::Track::fragments
int DTSC::Track::height
std::string DTSC::Track::init
std::deque< Ivec > DTSC::Track::ivecs
std::deque< Key > DTSC::Track::keys
std::deque< unsigned long > DTSC::Track::keySizes
unsigned long long DTSC::Track::lastms
int DTSC::Track::missedFrags
std::deque< Part > DTSC::Track::parts
int DTSC::Track::rate
int DTSC::Track::size
unsigned int DTSC::Track::trackID
std::string DTSC::Track::type
int DTSC::Track::width

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