29 lines
658 B
C
29 lines
658 B
C
|
#pragma once
|
||
|
|
||
|
#include "FLVProcessor.h"
|
||
|
#include "../nu/RingBuffer.h"
|
||
|
|
||
|
class StreamProcessor : public FLVProcessor
|
||
|
{
|
||
|
public:
|
||
|
StreamProcessor();
|
||
|
|
||
|
private:
|
||
|
int Write(void *data, size_t datalen, size_t *written);
|
||
|
int Process();
|
||
|
uint64_t Seek(uint64_t position);
|
||
|
size_t Read(void *data, size_t bytes);
|
||
|
uint64_t GetProcessedPosition();
|
||
|
bool GetFrame(size_t frameIndex, FrameData &frameData);
|
||
|
uint32_t GetMaxTimestamp();
|
||
|
bool GetPosition(int time_in_ms, size_t *frameIndex, bool needVideoKeyFrame);
|
||
|
bool IsStreaming() { return true; }
|
||
|
FLVHeader *GetHeader();
|
||
|
private:
|
||
|
RingBuffer buffer;
|
||
|
uint64_t bytesWritten;
|
||
|
bool readHeader;
|
||
|
FLVHeader header;
|
||
|
};
|
||
|
|