diff options
Diffstat (limited to 'reader.h')
-rw-r--r-- | reader.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/reader.h b/reader.h new file mode 100644 index 0000000..c7f5f5b --- /dev/null +++ b/reader.h @@ -0,0 +1,37 @@ +#ifndef _PVR_READER_H_ +#define _PVR_READER_H_ + +#include "common.h" + +class cPvrReadThread : public cThread { +private: + cPvrDevice* parent; + cRingBufferLinear * tsBuffer; + uint8_t pat_buffer[TS_SIZE]; + uint8_t pmt_buffer[TS_SIZE]; + uint8_t ts_buffer[TS_SIZE]; + uint8_t video_counter; + uint8_t audio_counter; + uint8_t text_counter; + uint8_t pcr_counter; + int packet_counter; + uint8_t pes_buffer[64 * 1024]; + uint8_t pes_stream_id; + uint32_t pes_offset; + uint32_t pes_length; + uint32_t pes_tmp; + bool pes_scr_isvalid; + uint64_t pes_scr; + uint32_t pes_scr_ext; + + void ParseProgramStream(uint8_t * Data, uint32_t Length); + void PesToTs(uint8_t * Data, uint32_t Length); + int PutData(const unsigned char * Data, int Count); +protected: + virtual void Action(void); +public: + cPvrReadThread(cRingBufferLinear * TsBuffer, cPvrDevice* _parent); + virtual ~cPvrReadThread(void); +}; + +#endif |