50#ifdef DEBUGRINGBUFFERS
52 int lastHead, lastTail;
58 static void PrintDebugRBL(
void);
81 virtual void Clear(
void)
override;
85 int Read(
int FileHandle,
int Max = 0);
93 int Put(
const uchar *Data,
int Count);
145 virtual void Clear(
void)
override;
eFrameType Type(void) const
bool Independent(void) const
friend class cRingBufferFrame
cFrame(const uchar *Data, int Count, eFrameType=ftUnknown, int Index=-1, uint32_t Pts=0, bool independent=false)
Creates a new cFrame object.
virtual void Clear(void) override
virtual int Available(void) override
void Delete(cFrame *Frame)
cRingBufferFrame(int Size, bool Statistics=false)
virtual ~cRingBufferFrame() override
cRingBufferLinear(int Size, int Margin=0, bool Statistics=false, const char *Description=NULL)
Creates a linear ring buffer.
void Del(int Count)
Deletes at most Count bytes from the ring buffer.
virtual void Clear(void) override
Immediately clears the ring buffer.
virtual int Free(void) override
virtual ~cRingBufferLinear() override
int Put(const uchar *Data, int Count)
Puts at most Count bytes of Data into the ring buffer.
virtual int DataReady(const uchar *Data, int Count)
By default a ring buffer has data ready as soon as there are at least 'margin' bytes available.
uchar * Get(int &Count)
Gets data from the ring buffer.
int Read(int FileHandle, int Max=0)
Reads at most Max bytes from FileHandle and stores them in the ring buffer.
virtual int Available(void) override
void SetTimeouts(int PutTimeout, int GetTimeout)
time_t lastOverflowReport
cRingBuffer(int Size, bool Statistics=false)
void UpdatePercentage(int Fill)
void ReportOverflow(int Bytes)
virtual void Clear(void)=0
virtual int Available(void)=0
cUnbufferedFile is used for large files that are mainly written or read in a streaming manner,...