summaryrefslogtreecommitdiff
path: root/reader.h
diff options
context:
space:
mode:
Diffstat (limited to 'reader.h')
-rw-r--r--reader.h37
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