21#ifndef _MATROSKA_FILE_HH
22#define _MATROSKA_FILE_HH
43 char const* preferredLanguage =
"eng");
67 unsigned& estBitrate,
unsigned& numFiltersInFrontOfTrack);
75 unsigned char rtpPayloadTypeIfDynamic);
85 char const* preferredLanguage);
93 void addCuePoint(
double cueTime, u_int64_t clusterOffsetInFile,
unsigned blockNumWithinCluster);
94 Boolean lookupCuePoint(
double& cueTime, u_int64_t& resultClusterOffsetInFile,
unsigned& resultBlockNumWithinCluster);
100 u_int8_t*& sps,
unsigned& spsSize,
101 u_int8_t*& pps,
unsigned& ppsSize);
104 u_int8_t*& vps,
unsigned& vpsSize,
105 u_int8_t*& sps,
unsigned& spsSize,
106 u_int8_t*& pps,
unsigned& ppsSize);
110 u_int8_t*& identificationHeader,
unsigned& identificationHeaderSize,
111 u_int8_t*& commentHeader,
unsigned& commentHeaderSize,
112 u_int8_t*& setupHeader,
unsigned& setupHeaderSize);
136#define MATROSKA_TRACK_TYPE_VIDEO 0x01
137#define MATROSKA_TRACK_TYPE_AUDIO 0x02
138#define MATROSKA_TRACK_TYPE_SUBTITLE 0x04
139#define MATROSKA_TRACK_TYPE_OTHER 0x08
void MatroskaDemuxOnDeletionFunc(void *objectToNotify, MatroskaDemux *demuxBeingDeleted)
static void handleEndOfFile(void *clientData)
FramedSource * newDemuxedTrack(unsigned &resultTrackNumber)
class MatroskaFileParser * fOurParser
void removeTrack(unsigned trackNumber)
void seekToTime(double &seekNPT)
FramedSource * newDemuxedTrackByTrackNumber(unsigned trackNumber)
FramedSource * newDemuxedTrack()
class MatroskaDemuxedTrack * lookupDemuxedTrack(unsigned trackNumber)
MatroskaDemux(MatroskaFile &ourFile)
HashTable * fDemuxedTracksTable
u_int8_t fNextTrackTypeToCheck
char const * trackMIMEType(unsigned trackNumber) const
class MatroskaFileParser * fParserForInitialization
unsigned fChosenVideoTrackNumber
void getH264ConfigData(MatroskaTrack const *track, u_int8_t *&sps, unsigned &spsSize, u_int8_t *&pps, unsigned &ppsSize)
MatroskaDemux * newDemux(MatroskaDemuxOnDeletionFunc *onDeletionFunc=NULL, void *objectToNotify=NULL)
HashTable * fDemuxesTable
MatroskaFile(UsageEnvironment &env, char const *fileName, onCreationFunc *onCreation, void *onCreationClientData, char const *preferredLanguage)
unsigned chosenSubtitleTrackNumber()
MatroskaTrack * lookup(unsigned trackNumber) const
static void handleEndOfTrackHeaderParsing(void *clientData)
onCreationFunc * fOnCreation
char const * fPreferredLanguage
void addTrack(MatroskaTrack *newTrack, unsigned trackNumber)
void() onCreationFunc(MatroskaFile *newFile, void *clientData)
void printCuePoints(FILE *fid)
void getH265ConfigData(MatroskaTrack const *track, u_int8_t *&vps, unsigned &vpsSize, u_int8_t *&sps, unsigned &spsSize, u_int8_t *&pps, unsigned &ppsSize)
char const * fileName() const
RTPSink * createRTPSinkForTrackNumber(unsigned trackNumber, Groupsock *rtpGroupsock, unsigned char rtpPayloadTypeIfDynamic)
static void createNew(UsageEnvironment &env, char const *fileName, onCreationFunc *onCreation, void *onCreationClientData, char const *preferredLanguage="eng")
unsigned chosenVideoTrackNumber()
u_int64_t fSegmentDataOffset
class CuePoint * fCuePoints
void removeDemux(MatroskaDemux *demux)
void * fOnCreationClientData
Boolean lookupCuePoint(double &cueTime, u_int64_t &resultClusterOffsetInFile, unsigned &resultBlockNumWithinCluster)
void addCuePoint(double cueTime, u_int64_t clusterOffsetInFile, unsigned blockNumWithinCluster)
FramedSource * createSourceForStreaming(FramedSource *baseSource, unsigned trackNumber, unsigned &estBitrate, unsigned &numFiltersInFrontOfTrack)
unsigned fChosenAudioTrackNumber
unsigned fChosenSubtitleTrackNumber
void handleEndOfTrackHeaderParsing()
unsigned chosenAudioTrackNumber()
void getVorbisOrTheoraConfigData(MatroskaTrack const *track, u_int8_t *&identificationHeader, unsigned &identificationHeaderSize, u_int8_t *&commentHeader, unsigned &commentHeaderSize, u_int8_t *&setupHeader, unsigned &setupHeaderSize)
FileSink * createFileSinkForTrackNumber(unsigned trackNumber, char const *fileName)
class MatroskaTrackTable * fTrackTable
Boolean haveSubframes() const
u_int8_t * headerStrippedBytes
unsigned codecPrivateSize
unsigned subframeSizeSize
Boolean codecPrivateUsesH264FormatForH265
char const * colorSampling
unsigned samplingFrequency
unsigned headerStrippedBytesSize