00001
00002 #ifndef _STREAMLISTENERS_H_
00003 #define _STREAMLISTENERS_H_
00004
00005 #include "tspacket.h"
00006 #include "util.h"
00007
00008 class TSPacket;
00009 class TSPacket_nonconst;
00010 class PESPacket;
00011 class PSIPTable;
00012
00013 class MPEGStreamData;
00014 class ATSCStreamData;
00015 class DVBStreamData;
00016 class ScanStreamData;
00017
00018 class ProgramAssociationTable;
00019 class ConditionalAccessTable;
00020 class ProgramMapTable;
00021
00022 class SystemTimeTable;
00023 class MasterGuideTable;
00024 class VirtualChannelTable;
00025 class TerrestrialVirtualChannelTable;
00026 class CableVirtualChannelTable;
00027 class EventInformationTable;
00028 class ExtendedTextTable;
00029 class RatingRegionTable;
00030 class DirectedChannelChangeTable;
00031 class DirectedChannelChangeSelectionCodeTable;
00032
00033 class NetworkInformationTable;
00034 class ServiceDescriptionTable;
00035 class TimeDateTable;
00036 class DVBEventInformationTable;
00037 class PremiereContentInformationTable;
00038
00039 class TSDataListener
00040 {
00041 public:
00043 virtual void AddData(const unsigned char *data, uint dataSize) = 0;
00044
00045 protected:
00046 virtual ~TSDataListener() { }
00047 };
00048
00049 class TSPacketListener
00050 {
00051 public:
00052 virtual bool ProcessTSPacket(const TSPacket& tspacket) = 0;
00053
00054 protected:
00055 virtual ~TSPacketListener() { }
00056 };
00057
00058 class TSPacketListenerAV
00059 {
00060 public:
00061 virtual bool ProcessVideoTSPacket(const TSPacket& tspacket) = 0;
00062 virtual bool ProcessAudioTSPacket(const TSPacket& tspacket) = 0;
00063
00064 protected:
00065 virtual ~TSPacketListenerAV() { }
00066 };
00067
00068 class MPEGStreamListener
00069 {
00070 protected:
00071 virtual ~MPEGStreamListener() {}
00072 public:
00073 virtual void HandlePAT(const ProgramAssociationTable*) = 0;
00074 virtual void HandleCAT(const ConditionalAccessTable*) = 0;
00075 virtual void HandlePMT(uint program_num, const ProgramMapTable*) = 0;
00076 virtual void HandleEncryptionStatus(uint program_number, bool) = 0;
00077 };
00078
00079 class MPEGSingleProgramStreamListener
00080 {
00081 protected:
00082 virtual ~MPEGSingleProgramStreamListener() {}
00083 public:
00084 virtual void HandleSingleProgramPAT(ProgramAssociationTable*) = 0;
00085 virtual void HandleSingleProgramPMT(ProgramMapTable*) = 0;
00086 };
00087
00088 class ATSCMainStreamListener
00089 {
00090 protected:
00091 virtual ~ATSCMainStreamListener() {}
00092 public:
00093 virtual void HandleSTT(const SystemTimeTable*) = 0;
00094 virtual void HandleMGT(const MasterGuideTable*) = 0;
00095 virtual void HandleVCT(uint pid, const VirtualChannelTable*) = 0;
00096 };
00097
00098 class ATSCAuxStreamListener
00099 {
00100 protected:
00101 virtual ~ATSCAuxStreamListener() {}
00102 public:
00103 virtual void HandleTVCT(uint pid,const TerrestrialVirtualChannelTable*)=0;
00104 virtual void HandleCVCT(uint pid, const CableVirtualChannelTable*) = 0;
00105 virtual void HandleRRT(const RatingRegionTable*) = 0;
00106 virtual void HandleDCCT(const DirectedChannelChangeTable*) = 0;
00107 virtual void HandleDCCSCT(
00108 const DirectedChannelChangeSelectionCodeTable*) = 0;
00109 };
00110
00111 class ATSCEITStreamListener
00112 {
00113 protected:
00114 virtual ~ATSCEITStreamListener() {}
00115 public:
00116 virtual void HandleEIT( uint pid, const EventInformationTable*) = 0;
00117 virtual void HandleETT( uint pid, const ExtendedTextTable*) = 0;
00118 };
00119
00120 class DVBMainStreamListener
00121 {
00122 protected:
00123 virtual ~DVBMainStreamListener() {}
00124 public:
00125 virtual void HandleTDT(const TimeDateTable*) = 0;
00126 virtual void HandleNIT(const NetworkInformationTable*) = 0;
00127 virtual void HandleSDT(uint tsid, const ServiceDescriptionTable*) = 0;
00128 };
00129
00130 class DVBOtherStreamListener
00131 {
00132 protected:
00133 virtual ~DVBOtherStreamListener() {}
00134 public:
00135 virtual void HandleNITo(const NetworkInformationTable*) = 0;
00136 virtual void HandleSDTo(uint tsid, const ServiceDescriptionTable*) = 0;
00137 };
00138
00139 class DVBEITStreamListener
00140 {
00141 protected:
00142 virtual ~DVBEITStreamListener() {}
00143 public:
00144 virtual void HandleEIT(const DVBEventInformationTable*) = 0;
00145 virtual void HandleEIT(const PremiereContentInformationTable*) = 0;
00146 };
00147
00148
00149 #endif // _STREAMLISTENERS_H_