00001
00002 #ifndef _STREAMLISTENERS_H_
00003 #define _STREAMLISTENERS_H_
00004
00005 #include "tspacket.h"
00006 #include "mythmiscutil.h"
00007
00008 class TSPacket;
00009 class TSPacket_nonconst;
00010 class PESPacket;
00011 class PSIPTable;
00012
00013 class MPEGStreamData;
00014 class ATSCStreamData;
00015 class SCTEStreamData;
00016 class DVBStreamData;
00017 class ScanStreamData;
00018
00019 class ProgramAssociationTable;
00020 class ConditionalAccessTable;
00021 class ProgramMapTable;
00022 class SpliceInformationTable;
00023
00024 class SystemTimeTable;
00025 class MasterGuideTable;
00026 class VirtualChannelTable;
00027 class TerrestrialVirtualChannelTable;
00028 class CableVirtualChannelTable;
00029 class EventInformationTable;
00030 class ExtendedTextTable;
00031 class RatingRegionTable;
00032 class DirectedChannelChangeTable;
00033 class DirectedChannelChangeSelectionCodeTable;
00034 class AggregateEventInformationTable;
00035 class AggregateExtendedTextTable;
00036
00037 class SCTESystemTimeTable;
00038 class SCTENetworkInformationTable;
00039 class NetworkTextTable;
00040 class ShortVirtualChannelTable;
00041 class ProgramInformationMessageTable;
00042 class ProgramNameMessageTable;
00043 class AggregateDataEventTable;
00044
00045 class NetworkInformationTable;
00046 class BouquetAssociationTable;
00047 class ServiceDescriptionTable;
00048 class TimeDateTable;
00049 class DVBEventInformationTable;
00050 class PremiereContentInformationTable;
00051
00052 class TSDataListener
00053 {
00054 public:
00056 virtual void AddData(const unsigned char *data, uint dataSize) = 0;
00057
00058 protected:
00059 virtual ~TSDataListener() { }
00060 };
00061
00062 class TSPacketListener
00063 {
00064 public:
00065 virtual bool ProcessTSPacket(const TSPacket& tspacket) = 0;
00066
00067 protected:
00068 virtual ~TSPacketListener() { }
00069 };
00070
00071 class TSPacketListenerAV
00072 {
00073 public:
00074 virtual bool ProcessVideoTSPacket(const TSPacket& tspacket) = 0;
00075 virtual bool ProcessAudioTSPacket(const TSPacket& tspacket) = 0;
00076
00077 protected:
00078 virtual ~TSPacketListenerAV() { }
00079 };
00080
00081 class MPEGStreamListener
00082 {
00083 protected:
00084 virtual ~MPEGStreamListener() {}
00085 public:
00086 virtual void HandlePAT(const ProgramAssociationTable*) = 0;
00087 virtual void HandleCAT(const ConditionalAccessTable*) = 0;
00088 virtual void HandlePMT(uint program_num, const ProgramMapTable*) = 0;
00089 virtual void HandleEncryptionStatus(uint program_number, bool) = 0;
00090 virtual void HandleSplice(const SpliceInformationTable*) { }
00091 };
00092
00093 class MPEGSingleProgramStreamListener
00094 {
00095 protected:
00096 virtual ~MPEGSingleProgramStreamListener() {}
00097 public:
00098 virtual void HandleSingleProgramPAT(ProgramAssociationTable*) = 0;
00099 virtual void HandleSingleProgramPMT(ProgramMapTable*) = 0;
00100 };
00101
00102 class ATSCMainStreamListener
00103 {
00104 protected:
00105 virtual ~ATSCMainStreamListener() {}
00106 public:
00107 virtual void HandleSTT(const SystemTimeTable*) = 0;
00108 virtual void HandleMGT(const MasterGuideTable*) = 0;
00109 virtual void HandleVCT(uint pid, const VirtualChannelTable*) = 0;
00110 };
00111
00112 class ATSCAuxStreamListener
00113 {
00114 protected:
00115 virtual ~ATSCAuxStreamListener() {}
00116 public:
00117 virtual void HandleTVCT(uint pid,const TerrestrialVirtualChannelTable*)=0;
00118 virtual void HandleCVCT(uint pid, const CableVirtualChannelTable*) = 0;
00119 virtual void HandleRRT(const RatingRegionTable*) = 0;
00120 virtual void HandleDCCT(const DirectedChannelChangeTable*) = 0;
00121 virtual void HandleDCCSCT(
00122 const DirectedChannelChangeSelectionCodeTable*) = 0;
00123 };
00124
00125 class ATSCEITStreamListener
00126 {
00127 protected:
00128 virtual ~ATSCEITStreamListener() {}
00129 public:
00130 virtual void HandleEIT( uint pid, const EventInformationTable*) = 0;
00131 virtual void HandleETT( uint pid, const ExtendedTextTable*) = 0;
00132 };
00133
00134 class SCTEMainStreamListener
00135 {
00136 protected:
00137 virtual ~SCTEMainStreamListener() {}
00138 public:
00139
00140 virtual void HandleNIT(const SCTENetworkInformationTable*) = 0;
00141 virtual void HandleSTT(const SCTESystemTimeTable*) = 0;
00142 virtual void HandleNTT(const NetworkTextTable*) = 0;
00143 virtual void HandleSVCT(const ShortVirtualChannelTable*) = 0;
00144
00145
00146 virtual void HandlePIM(const ProgramInformationMessageTable*) = 0;
00147 virtual void HandlePNM(const ProgramNameMessageTable*) = 0;
00148
00149
00150 virtual void HandleADET(const AggregateDataEventTable*) = 0;
00151 };
00152
00153 class ATSC81EITStreamListener
00154 {
00155 protected:
00156 virtual ~ATSC81EITStreamListener() {}
00157 public:
00158 virtual void HandleAEIT(uint pid, const AggregateEventInformationTable*)=0;
00159 virtual void HandleAETT(uint pid, const AggregateExtendedTextTable*) = 0;
00160 };
00161
00162 class DVBMainStreamListener
00163 {
00164 protected:
00165 virtual ~DVBMainStreamListener() {}
00166 public:
00167 virtual void HandleTDT(const TimeDateTable*) = 0;
00168 virtual void HandleNIT(const NetworkInformationTable*) = 0;
00169 virtual void HandleSDT(uint tsid, const ServiceDescriptionTable*) = 0;
00170 };
00171
00172 class DVBOtherStreamListener
00173 {
00174 protected:
00175 virtual ~DVBOtherStreamListener() {}
00176 public:
00177 virtual void HandleNITo(const NetworkInformationTable*) = 0;
00178 virtual void HandleSDTo(uint tsid, const ServiceDescriptionTable*) = 0;
00179 virtual void HandleBAT(const BouquetAssociationTable*) = 0;
00180 };
00181
00182 class DVBEITStreamListener
00183 {
00184 protected:
00185 virtual ~DVBEITStreamListener() {}
00186 public:
00187 virtual void HandleEIT(const DVBEventInformationTable*) = 0;
00188 virtual void HandleEIT(const PremiereContentInformationTable*) = 0;
00189 };
00190
00191
00192 #endif // _STREAMLISTENERS_H_