21#ifndef _AVI_FILE_SINK_HH
22#define _AVI_FILE_SINK_HH
24#ifndef _MEDIA_SESSION_HH
32 char const* outputFileName,
33 unsigned bufferSize = 20000,
34 unsigned short movieWidth = 240,
35 unsigned short movieHeight = 180,
36 unsigned movieFPS = 15,
41 void* afterClientData);
47 char const* outputFileName,
unsigned bufferSize,
48 unsigned short movieWidth,
unsigned short movieHeight,
49 unsigned movieFPS,
Boolean packetLossCompensate);
55 unsigned numTruncatedBytes,
56 struct timeval presentationTime,
57 unsigned durationInMicroseconds);
91 void setWord(
unsigned filePosn,
unsigned size);
94#define _header(name) unsigned addFileHeader_##name()
unsigned addByte(unsigned char byte)
unsigned fNumBytesWritten
friend class AVISubsessionIOState
void completeOutputFile()
unsigned addHalfWord(unsigned short halfWord)
class AVIIndexRecord * fIndexRecordsHead
class AVISubsessionIOState * fCurrentIOState
unsigned fMoviSizePosition
unsigned fAVIHMaxBytesPerSecondPosition
void addIndexRecord(class AVIIndexRecord *newIndexRecord)
unsigned add4ByteString(char const *str)
Boolean fAreCurrentlyBeingPlayed
unsigned fNumIndexRecords
static AVIFileSink * createNew(UsageEnvironment &env, MediaSession &inputSession, char const *outputFileName, unsigned bufferSize=20000, unsigned short movieWidth=240, unsigned short movieHeight=180, unsigned movieFPS=15, Boolean packetLossCompensate=False)
unsigned fRIFFSizePosition
unsigned short fMovieWidth
unsigned numActiveSubsessions() const
void() afterPlayingFunc(void *clientData)
unsigned fAVIHFrameCountPosition
MediaSession & fInputSession
Boolean fHaveCompletedOutputFile
unsigned short fMovieHeight
Boolean continuePlaying()
struct timeval fStartTime
unsigned addWord(unsigned word)
Boolean startPlaying(afterPlayingFunc *afterFunc, void *afterClientData)
void setWord(unsigned filePosn, unsigned size)
static void onSourceClosure(void *clientData)
static void onRTCPBye(void *clientData)
afterPlayingFunc * fAfterFunc
class AVIIndexRecord * fIndexRecordsTail
Boolean fPacketLossCompensate
unsigned addZeroWords(unsigned numWords)
AVIFileSink(UsageEnvironment &env, MediaSession &inputSession, char const *outputFileName, unsigned bufferSize, unsigned short movieWidth, unsigned short movieHeight, unsigned movieFPS, Boolean packetLossCompensate)
static void afterGettingFrame(void *clientData, unsigned frameSize, unsigned numTruncatedBytes, struct timeval presentationTime, unsigned durationInMicroseconds)