MPEGStreamData Class Reference

Encapsulates data about MPEG stream and emits events for each table. More...

#include <mpegstreamdata.h>

Inheritance diagram for MPEGStreamData:
EITSource ATSCStreamData DVBStreamData ScanStreamData ScanStreamData ScanStreamData

List of all members.

Public Member Functions

 MPEGStreamData (int desiredProgram, bool cacheTables)
 Initializes MPEGStreamData.
virtual ~MPEGStreamData ()
void SetCaching (bool cacheTables)
void SetListeningDisabled (bool lt)
virtual void Reset (void)
virtual void Reset (int desiredProgram)
double TimeOffset (void) const
 Current Offset from computer time to DVB time in seconds.
virtual void SetEITHelper (EITHelper *eit_helper)
virtual void SetEITRate (float rate)
virtual bool HasEITPIDChanges (const uint_vec_t &) const
virtual bool GetEITPIDChanges (const uint_vec_t &, uint_vec_t &, uint_vec_t &) const
void SetIgnoreCRC (bool haveCRCbug)
virtual bool IsRedundant (uint pid, const PSIPTable &) const
 Returns true if table already seen.
virtual bool HandleTables (uint pid, const PSIPTable &psip)
 Assembles PSIP packets and processes them.
virtual void HandleTSTables (const TSPacket *tspacket)
 Assembles PSIP packets and processes them.
virtual bool ProcessTSPacket (const TSPacket &tspacket)
virtual int ProcessData (const unsigned char *buffer, int len)
void HandleAdaptationFieldControl (const TSPacket *tspacket)
virtual void AddListeningPID (uint pid, PIDPriority priority=kPIDPriorityNormal)
virtual void AddNotListeningPID (uint pid)
virtual void AddWritingPID (uint pid, PIDPriority priority=kPIDPriorityHigh)
virtual void AddAudioPID (uint pid, PIDPriority priority=kPIDPriorityHigh)
virtual void RemoveListeningPID (uint pid)
virtual void RemoveNotListeningPID (uint pid)
virtual void RemoveWritingPID (uint pid)
virtual void RemoveAudioPID (uint pid)
virtual bool IsListeningPID (uint pid) const
virtual bool IsNotListeningPID (uint pid) const
virtual bool IsWritingPID (uint pid) const
bool IsVideoPID (uint pid) const
virtual bool IsAudioPID (uint pid) const
const pid_map_tListeningPIDs (void) const
const pid_map_tAudioPIDs (void) const
const pid_map_tWritingPIDs (void) const
uint GetPIDs (pid_map_t &) const
PIDPriority GetPIDPriority (uint pid) const
void SetVersionPAT (uint tsid, int version, uint last_section)
int VersionPAT (uint tsid) const
void SetVersionCAT (uint tsid, int version, uint last_section)
int VersionCAT (uint tsid) const
void SetVersionPMT (uint program_num, int version, uint last_section)
int VersionPMT (uint prog_num) const
void SetPATSectionSeen (uint tsid, uint section)
bool PATSectionSeen (uint tsid, uint section) const
bool HasAllPATSections (uint tsid) const
void SetCATSectionSeen (uint tsid, uint section)
bool CATSectionSeen (uint tsid, uint section) const
bool HasAllCATSections (uint tsid) const
void SetPMTSectionSeen (uint prog_num, uint section)
bool PMTSectionSeen (uint prog_num, uint section) const
bool HasAllPMTSections (uint prog_num) const
bool HasProgram (uint progNum) const
bool HasCachedAllPAT (uint tsid) const
bool HasCachedAnyPAT (uint tsid) const
bool HasCachedAnyPAT (void) const
bool HasCachedAllCAT (uint tsid) const
bool HasCachedAnyCAT (uint tsid) const
bool HasCachedAnyCAT (void) const
bool HasCachedAllPMT (uint program_num) const
bool HasCachedAnyPMT (uint program_num) const
bool HasCachedAllPMTs (void) const
bool HasCachedAnyPMTs (void) const
pat_ptr_t GetCachedPAT (uint tsid, uint section_num) const
pat_vec_t GetCachedPATs (uint tsid) const
pat_vec_t GetCachedPATs (void) const
pat_map_t GetCachedPATMap (void) const
cat_ptr_t GetCachedCAT (uint tsid, uint section_num) const
cat_vec_t GetCachedCATs (uint tsid) const
cat_vec_t GetCachedCATs (void) const
cat_map_t GetCachedCATMap (void) const
pmt_ptr_t GetCachedPMT (uint program_num, uint section_num) const
pmt_vec_t GetCachedPMTs (void) const
pmt_map_t GetCachedPMTMap (void) const
virtual void ReturnCachedTable (const PSIPTable *psip) const
virtual void ReturnCachedPATTables (pat_vec_t &) const
virtual void ReturnCachedPATTables (pat_map_t &) const
virtual void ReturnCachedCATTables (cat_vec_t &) const
virtual void ReturnCachedCATTables (cat_map_t &) const
virtual void ReturnCachedPMTTables (pmt_vec_t &) const
virtual void ReturnCachedPMTTables (pmt_map_t &) const
void AddEncryptionTestPID (uint pnum, uint pid, bool isvideo)
void RemoveEncryptionTestPIDs (uint pnum)
bool IsEncryptionTestPID (uint pid) const
void TestDecryption (const ProgramMapTable *pmt)
void ResetDecryptionMonitoringState (void)
bool IsProgramDecrypted (uint pnum) const
bool IsProgramEncrypted (uint pnum) const
void AddMPEGListener (MPEGStreamListener *)
void RemoveMPEGListener (MPEGStreamListener *)
void UpdatePAT (const ProgramAssociationTable *)
void UpdateCAT (const ConditionalAccessTable *)
void UpdatePMT (uint program_num, const ProgramMapTable *)
void AddWritingListener (TSPacketListener *)
void RemoveWritingListener (TSPacketListener *)
void AddMPEGSPListener (MPEGSingleProgramStreamListener *)
void RemoveMPEGSPListener (MPEGSingleProgramStreamListener *)
void AddAVListener (TSPacketListenerAV *)
void RemoveAVListener (TSPacketListenerAV *)
void UpdatePATSingleProgram (ProgramAssociationTable *)
void UpdatePMTSingleProgram (ProgramMapTable *)
void SetDesiredProgram (int p)
void SetPATSingleProgram (ProgramAssociationTable *)
void SetPMTSingleProgram (ProgramMapTable *)
void SetVideoStreamsRequired (uint num)
uint GetVideoStreamsRequired () const
void SetAudioStreamsRequired (uint num)
uint GetAudioStreamsRequired () const
void SetRecordingType (const QString &recording_type)
int DesiredProgram (void) const
uint VideoPIDSingleProgram (void) const
QString GetRecordingType (void) const
const ProgramAssociationTablePATSingleProgram (void) const
const ProgramMapTablePMTSingleProgram (void) const
ProgramAssociationTablePATSingleProgram (void)
ProgramMapTablePMTSingleProgram (void)
int VersionPATSingleProgram (void) const
int VersionPMTSingleProgram (void) const
bool CreatePATSingleProgram (const ProgramAssociationTable &)
bool CreatePMTSingleProgram (const ProgramMapTable &)

Protected Member Functions

PSIPTableAssemblePSIP (const TSPacket *tspacket, bool &moreTablePackets)
 PSIP packet assembler.
bool AssemblePSIP (PSIPTable &psip, TSPacket *tspacket)
void SavePartialPSIP (uint pid, PSIPTable *packet)
PSIPTableGetPartialPSIP (uint pid)
void ClearPartialPSIP (uint pid)
void DeletePartialPSIP (uint pid)
void ProcessPAT (const ProgramAssociationTable *pat)
void ProcessCAT (const ConditionalAccessTable *cat)
void ProcessPMT (const ProgramMapTable *pmt)
void ProcessEncryptedPacket (const TSPacket &)
 counts en/decrypted packets to decide if a stream is en/decrypted
void UpdateTimeOffset (uint64_t si_utc_time)
void IncrementRefCnt (const PSIPTable *psip) const
virtual bool DeleteCachedTable (PSIPTable *psip) const
void CachePAT (const ProgramAssociationTable *pat)
void CacheCAT (const ConditionalAccessTable *pat)
void CachePMT (const ProgramMapTable *pmt)

Static Protected Member Functions

static int ResyncStream (const unsigned char *buffer, int curr_pos, int len)

Protected Attributes

QString _sistandard
bool _have_CRC_bug
int _local_utc_offset
QMutex _si_time_lock
uint _si_time_offset_cnt
uint _si_time_offset_indx
double _si_time_offsets [16]
EITHelper_eit_helper
float _eit_rate
pid_map_t _pids_listening
pid_map_t _pids_notlistening
pid_map_t _pids_writing
pid_map_t _pids_audio
bool _listening_disabled
QMutex _encryption_lock
QMap< uint, CryptInfo_encryption_pid_to_info
QMap< uint, uint_vec_t_encryption_pnum_to_pids
QMap< uint, uint_vec_t_encryption_pid_to_pnums
QMap< uint, CryptStatus_encryption_pnum_to_status
QMutex _listener_lock
mpeg_listener_vec_t _mpeg_listeners
mpeg_sp_listener_vec_t _mpeg_sp_listeners
ts_listener_vec_t _ts_writing_listeners
ts_av_listener_vec_t _ts_av_listeners
QMap< uint, int > _pat_version
QMap< uint, int > _cat_version
QMap< uint, int > _pmt_version
sections_map_t _pat_section_seen
sections_map_t _cat_section_seen
sections_map_t _pmt_section_seen
pid_psip_map_t _partial_psip_packet_cache
bool _cache_tables
QMutex _cache_lock
pat_cache_t _cached_pats
cat_cache_t _cached_cats
pmt_cache_t _cached_pmts
psip_refcnt_map_t _cached_ref_cnt
psip_refcnt_map_t _cached_slated_for_deletion
int _desired_program
QString _recording_type
bool _strip_pmt_descriptors
bool _normalize_stream_type
uint _pid_video_single_program
uint _pid_pmt_single_program
uint _pmt_single_program_num_video
uint _pmt_single_program_num_audio
ProgramAssociationTable_pat_single_program
ProgramMapTable_pmt_single_program

Static Protected Attributes

static const unsigned char bit_sel [8]

Private Attributes

bool _invalid_pat_seen
bool _invalid_pat_warning
MythTimer _invalid_pat_timer

Detailed Description

Encapsulates data about MPEG stream and emits events for each table.

Definition at line 91 of file mpegstreamdata.h.


Constructor & Destructor Documentation

MPEGStreamData::MPEGStreamData ( int  desiredProgram,
bool  cacheTables 
)

Initializes MPEGStreamData.

This adds the PID of the PAT table to "_pids_listening"

Parameters:
desiredProgram If you want rewritten PAT and PMTs, for a desired program set this to a value > -1
cacheTables If true PAT and PMT tables will be cached

Definition at line 65 of file mpegstreamdata.cpp.

MPEGStreamData::~MPEGStreamData (  )  [virtual]

Definition at line 94 of file mpegstreamdata.cpp.


Member Function Documentation

void MPEGStreamData::SetCaching ( bool  cacheTables  )  [inline]

Definition at line 97 of file mpegstreamdata.h.

Referenced by TVRec::SetupDTVSignalMonitor().

void MPEGStreamData::SetListeningDisabled ( bool  lt  )  [inline]

Definition at line 98 of file mpegstreamdata.h.

Referenced by ASIRecorder::ASIRecorder().

virtual void MPEGStreamData::Reset ( void   )  [inline, virtual]
void MPEGStreamData::Reset ( int  desiredProgram  )  [virtual]

Reimplemented in ATSCStreamData.

Definition at line 172 of file mpegstreamdata.cpp.

double MPEGStreamData::TimeOffset ( void   )  const

Current Offset from computer time to DVB time in seconds.

Definition at line 878 of file mpegstreamdata.cpp.

void MPEGStreamData::SetEITHelper ( EITHelper eit_helper  )  [virtual]

Implements EITSource.

Definition at line 160 of file mpegstreamdata.cpp.

void MPEGStreamData::SetEITRate ( float  rate  )  [virtual]

Implements EITSource.

Definition at line 166 of file mpegstreamdata.cpp.

virtual bool MPEGStreamData::HasEITPIDChanges ( const uint_vec_t  )  const [inline, virtual]

Reimplemented in ATSCStreamData, DVBStreamData, and ScanStreamData.

Definition at line 109 of file mpegstreamdata.h.

Referenced by StreamHandler::UpdateListeningForEIT().

virtual bool MPEGStreamData::GetEITPIDChanges ( const uint_vec_t ,
uint_vec_t ,
uint_vec_t  
) const [inline, virtual]

Reimplemented in ATSCStreamData, DVBStreamData, and ScanStreamData.

Definition at line 111 of file mpegstreamdata.h.

Referenced by StreamHandler::UpdateListeningForEIT().

void MPEGStreamData::SetIgnoreCRC ( bool  haveCRCbug  )  [inline]

Definition at line 117 of file mpegstreamdata.h.

bool MPEGStreamData::IsRedundant ( uint  pid,
const PSIPTable psip 
) const [virtual]

Returns true if table already seen.

Reimplemented in ATSCStreamData, DVBStreamData, and ScanStreamData.

Definition at line 689 of file mpegstreamdata.cpp.

Referenced by HandleTables(), HandleTSTables(), DVBStreamData::IsRedundant(), and ATSCStreamData::IsRedundant().

bool MPEGStreamData::HandleTables ( uint  pid,
const PSIPTable psip 
) [virtual]

Assembles PSIP packets and processes them.

Reimplemented in ATSCStreamData, DVBStreamData, and ScanStreamData.

Definition at line 722 of file mpegstreamdata.cpp.

Referenced by DVBStreamData::HandleTables(), ATSCStreamData::HandleTables(), HandleTSTables(), and ASIRecorder::run().

void MPEGStreamData::HandleTSTables ( const TSPacket tspacket  )  [virtual]

Assembles PSIP packets and processes them.

Definition at line 917 of file mpegstreamdata.cpp.

Referenced by ProcessTSPacket(), IPTVRecorder::ProcessTSPacket(), and FirewireRecorder::ProcessTSPacket().

bool MPEGStreamData::ProcessTSPacket ( const TSPacket tspacket  )  [virtual]

Definition at line 1044 of file mpegstreamdata.cpp.

Referenced by ProcessData().

int MPEGStreamData::ProcessData ( const unsigned char *  buffer,
int  len 
) [virtual]
void MPEGStreamData::HandleAdaptationFieldControl ( const TSPacket tspacket  )  [inline]
virtual void MPEGStreamData::AddListeningPID ( uint  pid,
PIDPriority  priority = kPIDPriorityNormal 
) [inline, virtual]
virtual void MPEGStreamData::AddNotListeningPID ( uint  pid  )  [inline, virtual]

Definition at line 129 of file mpegstreamdata.h.

virtual void MPEGStreamData::AddWritingPID ( uint  pid,
PIDPriority  priority = kPIDPriorityHigh 
) [inline, virtual]
virtual void MPEGStreamData::AddAudioPID ( uint  pid,
PIDPriority  priority = kPIDPriorityHigh 
) [inline, virtual]

Definition at line 134 of file mpegstreamdata.h.

Referenced by CreatePMTSingleProgram().

virtual void MPEGStreamData::RemoveListeningPID ( uint  pid  )  [inline, virtual]
virtual void MPEGStreamData::RemoveNotListeningPID ( uint  pid  )  [inline, virtual]

Definition at line 139 of file mpegstreamdata.h.

virtual void MPEGStreamData::RemoveWritingPID ( uint  pid  )  [inline, virtual]

Definition at line 141 of file mpegstreamdata.h.

virtual void MPEGStreamData::RemoveAudioPID ( uint  pid  )  [inline, virtual]

Definition at line 142 of file mpegstreamdata.h.

bool MPEGStreamData::IsListeningPID ( uint  pid  )  const [virtual]
bool MPEGStreamData::IsNotListeningPID ( uint  pid  )  const [virtual]

Definition at line 1117 of file mpegstreamdata.cpp.

Referenced by IsListeningPID().

bool MPEGStreamData::IsWritingPID ( uint  pid  )  const [virtual]

Definition at line 1123 of file mpegstreamdata.cpp.

Referenced by ProcessTSPacket(), and IPTVRecorder::ProcessTSPacket().

bool MPEGStreamData::IsVideoPID ( uint  pid  )  const [inline]

Definition at line 147 of file mpegstreamdata.h.

Referenced by ProcessTSPacket().

bool MPEGStreamData::IsAudioPID ( uint  pid  )  const [virtual]

Definition at line 1129 of file mpegstreamdata.cpp.

Referenced by ProcessTSPacket(), and IPTVRecorder::ProcessTSPacket().

const pid_map_t& MPEGStreamData::ListeningPIDs ( void   )  const [inline]

Definition at line 151 of file mpegstreamdata.h.

const pid_map_t& MPEGStreamData::AudioPIDs ( void   )  const [inline]

Definition at line 153 of file mpegstreamdata.h.

const pid_map_t& MPEGStreamData::WritingPIDs ( void   )  const [inline]

Definition at line 155 of file mpegstreamdata.h.

uint MPEGStreamData::GetPIDs ( pid_map_t pids  )  const

Definition at line 1135 of file mpegstreamdata.cpp.

PIDPriority MPEGStreamData::GetPIDPriority ( uint  pid  )  const

Definition at line 1157 of file mpegstreamdata.cpp.

void MPEGStreamData::SetVersionPAT ( uint  tsid,
int  version,
uint  last_section 
) [inline]
int MPEGStreamData::VersionPAT ( uint  tsid  )  const [inline]

Definition at line 171 of file mpegstreamdata.h.

Referenced by IsRedundant().

void MPEGStreamData::SetVersionCAT ( uint  tsid,
int  version,
uint  last_section 
) [inline]

Definition at line 179 of file mpegstreamdata.h.

Referenced by HandleTables().

int MPEGStreamData::VersionCAT ( uint  tsid  )  const [inline]

Definition at line 186 of file mpegstreamdata.h.

Referenced by IsRedundant().

void MPEGStreamData::SetVersionPMT ( uint  program_num,
int  version,
uint  last_section 
) [inline]

Definition at line 194 of file mpegstreamdata.h.

Referenced by FirewireSignalMonitor::HandlePMT(), and HandleTables().

int MPEGStreamData::VersionPMT ( uint  prog_num  )  const [inline]

Definition at line 201 of file mpegstreamdata.h.

Referenced by IsRedundant().

void MPEGStreamData::SetPATSectionSeen ( uint  tsid,
uint  section 
)

Definition at line 1193 of file mpegstreamdata.cpp.

Referenced by HandleTables().

bool MPEGStreamData::PATSectionSeen ( uint  tsid,
uint  section 
) const

Definition at line 1204 of file mpegstreamdata.cpp.

Referenced by IsRedundant().

bool MPEGStreamData::HasAllPATSections ( uint  tsid  )  const

Definition at line 1212 of file mpegstreamdata.cpp.

void MPEGStreamData::SetCATSectionSeen ( uint  tsid,
uint  section 
)

Definition at line 1223 of file mpegstreamdata.cpp.

Referenced by HandleTables().

bool MPEGStreamData::CATSectionSeen ( uint  tsid,
uint  section 
) const

Definition at line 1234 of file mpegstreamdata.cpp.

Referenced by IsRedundant().

bool MPEGStreamData::HasAllCATSections ( uint  tsid  )  const

Definition at line 1242 of file mpegstreamdata.cpp.

void MPEGStreamData::SetPMTSectionSeen ( uint  prog_num,
uint  section 
)

Definition at line 1253 of file mpegstreamdata.cpp.

Referenced by HandleTables().

bool MPEGStreamData::PMTSectionSeen ( uint  prog_num,
uint  section 
) const

Definition at line 1264 of file mpegstreamdata.cpp.

Referenced by IsRedundant().

bool MPEGStreamData::HasAllPMTSections ( uint  prog_num  )  const

Definition at line 1272 of file mpegstreamdata.cpp.

bool MPEGStreamData::HasProgram ( uint  progNum  )  const
bool MPEGStreamData::HasCachedAllPAT ( uint  tsid  )  const

Definition at line 1292 of file mpegstreamdata.cpp.

Referenced by HasCachedAllPMTs(), and ChannelScanSM::UpdateChannelInfo().

bool MPEGStreamData::HasCachedAnyPAT ( uint  tsid  )  const

Definition at line 1311 of file mpegstreamdata.cpp.

Referenced by ChannelScanSM::HasTimedOut().

bool MPEGStreamData::HasCachedAnyPAT ( void   )  const

Definition at line 1322 of file mpegstreamdata.cpp.

bool MPEGStreamData::HasCachedAllCAT ( uint  tsid  )  const

Definition at line 1328 of file mpegstreamdata.cpp.

bool MPEGStreamData::HasCachedAnyCAT ( uint  tsid  )  const

Definition at line 1347 of file mpegstreamdata.cpp.

bool MPEGStreamData::HasCachedAnyCAT ( void   )  const

Definition at line 1358 of file mpegstreamdata.cpp.

bool MPEGStreamData::HasCachedAllPMT ( uint  program_num  )  const

Definition at line 1364 of file mpegstreamdata.cpp.

Referenced by HasCachedAllPMTs().

bool MPEGStreamData::HasCachedAnyPMT ( uint  program_num  )  const

Definition at line 1383 of file mpegstreamdata.cpp.

bool MPEGStreamData::HasCachedAllPMTs ( void   )  const

Definition at line 1394 of file mpegstreamdata.cpp.

Referenced by ChannelScanSM::UpdateChannelInfo().

bool MPEGStreamData::HasCachedAnyPMTs ( void   )  const

Definition at line 1416 of file mpegstreamdata.cpp.

Referenced by ChannelScanSM::HasTimedOut().

pat_ptr_t MPEGStreamData::GetCachedPAT ( uint  tsid,
uint  section_num 
) const

Definition at line 1422 of file mpegstreamdata.cpp.

Referenced by GetCachedPATs().

pat_vec_t MPEGStreamData::GetCachedPATs ( uint  tsid  )  const

Definition at line 1435 of file mpegstreamdata.cpp.

Referenced by ChannelScanSM::UpdateChannelInfo().

pat_vec_t MPEGStreamData::GetCachedPATs ( void   )  const

Definition at line 1450 of file mpegstreamdata.cpp.

Referenced by SetDesiredProgram().

pat_map_t MPEGStreamData::GetCachedPATMap ( void   )  const
cat_ptr_t MPEGStreamData::GetCachedCAT ( uint  tsid,
uint  section_num 
) const

Definition at line 1466 of file mpegstreamdata.cpp.

Referenced by GetCachedCATs().

cat_vec_t MPEGStreamData::GetCachedCATs ( uint  tsid  )  const

Definition at line 1479 of file mpegstreamdata.cpp.

cat_vec_t MPEGStreamData::GetCachedCATs ( void   )  const

Definition at line 1494 of file mpegstreamdata.cpp.

cat_map_t MPEGStreamData::GetCachedCATMap ( void   )  const
pmt_ptr_t MPEGStreamData::GetCachedPMT ( uint  program_num,
uint  section_num 
) const

Definition at line 1510 of file mpegstreamdata.cpp.

Referenced by HasProgram().

pmt_vec_t MPEGStreamData::GetCachedPMTs ( void   )  const

Definition at line 1524 of file mpegstreamdata.cpp.

Referenced by SetDesiredProgram(), and ChannelScanSM::UpdateChannelInfo().

pmt_map_t MPEGStreamData::GetCachedPMTMap ( void   )  const

Definition at line 1540 of file mpegstreamdata.cpp.

void MPEGStreamData::ReturnCachedTable ( const PSIPTable psip  )  const [virtual]
void MPEGStreamData::ReturnCachedPATTables ( pat_vec_t pats  )  const [virtual]
void MPEGStreamData::ReturnCachedPATTables ( pat_map_t pats  )  const [virtual]

Definition at line 1580 of file mpegstreamdata.cpp.

void MPEGStreamData::ReturnCachedCATTables ( cat_vec_t cats  )  const [virtual]

Definition at line 1587 of file mpegstreamdata.cpp.

Referenced by ReturnCachedCATTables().

void MPEGStreamData::ReturnCachedCATTables ( cat_map_t cats  )  const [virtual]

Definition at line 1594 of file mpegstreamdata.cpp.

void MPEGStreamData::ReturnCachedPMTTables ( pmt_vec_t pmts  )  const [virtual]
void MPEGStreamData::ReturnCachedPMTTables ( pmt_map_t pmts  )  const [virtual]

Definition at line 1608 of file mpegstreamdata.cpp.

void MPEGStreamData::AddEncryptionTestPID ( uint  pnum,
uint  pid,
bool  isvideo 
)

Definition at line 1815 of file mpegstreamdata.cpp.

Referenced by TestDecryption().

void MPEGStreamData::RemoveEncryptionTestPIDs ( uint  pnum  ) 

Definition at line 1833 of file mpegstreamdata.cpp.

Referenced by ProcessEncryptedPacket().

bool MPEGStreamData::IsEncryptionTestPID ( uint  pid  )  const

Definition at line 1877 of file mpegstreamdata.cpp.

Referenced by ProcessTSPacket().

void MPEGStreamData::TestDecryption ( const ProgramMapTable pmt  ) 
void MPEGStreamData::ResetDecryptionMonitoringState ( void   ) 

Definition at line 1913 of file mpegstreamdata.cpp.

Referenced by Reset().

bool MPEGStreamData::IsProgramDecrypted ( uint  pnum  )  const

Definition at line 1922 of file mpegstreamdata.cpp.

bool MPEGStreamData::IsProgramEncrypted ( uint  pnum  )  const

Definition at line 1928 of file mpegstreamdata.cpp.

void MPEGStreamData::AddMPEGListener ( MPEGStreamListener val  ) 
void MPEGStreamData::RemoveMPEGListener ( MPEGStreamListener val  ) 

Definition at line 1719 of file mpegstreamdata.cpp.

Referenced by DTVSignalMonitor::SetStreamData().

void MPEGStreamData::UpdatePAT ( const ProgramAssociationTable  ) 
void MPEGStreamData::UpdateCAT ( const ConditionalAccessTable  ) 
void MPEGStreamData::UpdatePMT ( uint  program_num,
const ProgramMapTable  
)
void MPEGStreamData::AddWritingListener ( TSPacketListener val  ) 
void MPEGStreamData::RemoveWritingListener ( TSPacketListener val  ) 
void MPEGStreamData::AddMPEGSPListener ( MPEGSingleProgramStreamListener val  ) 
void MPEGStreamData::RemoveMPEGSPListener ( MPEGSingleProgramStreamListener val  ) 

Definition at line 1800 of file mpegstreamdata.cpp.

void MPEGStreamData::AddAVListener ( TSPacketListenerAV val  ) 
void MPEGStreamData::RemoveAVListener ( TSPacketListenerAV val  ) 
void MPEGStreamData::UpdatePATSingleProgram ( ProgramAssociationTable  ) 
void MPEGStreamData::UpdatePMTSingleProgram ( ProgramMapTable  ) 
void MPEGStreamData::SetDesiredProgram ( int  p  ) 
void MPEGStreamData::SetPATSingleProgram ( ProgramAssociationTable pat  )  [inline]

Definition at line 434 of file mpegstreamdata.h.

Referenced by CreatePATSingleProgram(), Reset(), and ~MPEGStreamData().

void MPEGStreamData::SetPMTSingleProgram ( ProgramMapTable pmt  )  [inline]

Definition at line 441 of file mpegstreamdata.h.

Referenced by CreatePMTSingleProgram(), Reset(), and ~MPEGStreamData().

void MPEGStreamData::SetVideoStreamsRequired ( uint  num  )  [inline]

Definition at line 294 of file mpegstreamdata.h.

Referenced by SetRecordingType(), and TVRec::SetupDTVSignalMonitor().

uint MPEGStreamData::GetVideoStreamsRequired (  )  const [inline]

Definition at line 296 of file mpegstreamdata.h.

void MPEGStreamData::SetAudioStreamsRequired ( uint  num  )  [inline]

Definition at line 298 of file mpegstreamdata.h.

Referenced by SetRecordingType().

uint MPEGStreamData::GetAudioStreamsRequired (  )  const [inline]

Definition at line 300 of file mpegstreamdata.h.

void MPEGStreamData::SetRecordingType ( const QString &  recording_type  ) 
int MPEGStreamData::DesiredProgram ( void   )  const [inline]
uint MPEGStreamData::VideoPIDSingleProgram ( void   )  const [inline]

Definition at line 306 of file mpegstreamdata.h.

Referenced by IPTVRecorder::ProcessTSPacket().

QString MPEGStreamData::GetRecordingType ( void   )  const

Definition at line 153 of file mpegstreamdata.cpp.

const ProgramAssociationTable* MPEGStreamData::PATSingleProgram ( void   )  const [inline]
const ProgramMapTable* MPEGStreamData::PMTSingleProgram ( void   )  const [inline]
ProgramAssociationTable* MPEGStreamData::PATSingleProgram ( void   )  [inline]

Definition at line 314 of file mpegstreamdata.h.

ProgramMapTable* MPEGStreamData::PMTSingleProgram ( void   )  [inline]

Definition at line 316 of file mpegstreamdata.h.

int MPEGStreamData::VersionPATSingleProgram ( void   )  const [inline]

Definition at line 448 of file mpegstreamdata.h.

int MPEGStreamData::VersionPMTSingleProgram ( void   )  const [inline]

Definition at line 453 of file mpegstreamdata.h.

bool MPEGStreamData::CreatePATSingleProgram ( const ProgramAssociationTable pat  ) 

Definition at line 399 of file mpegstreamdata.cpp.

Referenced by ProcessPAT().

bool MPEGStreamData::CreatePMTSingleProgram ( const ProgramMapTable pmt  ) 

Definition at line 507 of file mpegstreamdata.cpp.

Referenced by ProcessPMT().

PSIPTable * MPEGStreamData::AssemblePSIP ( const TSPacket tspacket,
bool moreTablePackets 
) [protected]

PSIP packet assembler.

This is not a general purpose TS->PSIP packet converter, it is only designed to work with MPEG tables which comply with certain restrictions that simplify the conversion.

DVB TSPackets may contain multiple segments of the PSI stream. (see ISO 13818-1 section 2.4.3.3, particularly the definition of payload_unit_start_indicator, which indicates there is at least one segment start, but not limited to only one segment start.)

PSI stuffing bytes are 0xFF and will complete the remaining portion of the TSPacket. (Section 2.4.4)

Note:
This method makes the assumption that AddTSPacket correctly handles duplicate packets.
Parameters:
moreTablePackets returns true if we need more packets

Definition at line 260 of file mpegstreamdata.cpp.

Referenced by HandleTSTables().

bool MPEGStreamData::AssemblePSIP ( PSIPTable psip,
TSPacket tspacket 
) [protected]
void MPEGStreamData::SavePartialPSIP ( uint  pid,
PSIPTable packet 
) [protected]

Definition at line 1179 of file mpegstreamdata.cpp.

Referenced by AssemblePSIP().

PSIPTable* MPEGStreamData::GetPartialPSIP ( uint  pid  )  [inline, protected]

Definition at line 331 of file mpegstreamdata.h.

Referenced by AssemblePSIP().

void MPEGStreamData::ClearPartialPSIP ( uint  pid  )  [inline, protected]

Definition at line 333 of file mpegstreamdata.h.

void MPEGStreamData::DeletePartialPSIP ( uint  pid  )  [protected]

Definition at line 228 of file mpegstreamdata.cpp.

Referenced by AssemblePSIP(), and Reset().

void MPEGStreamData::ProcessPAT ( const ProgramAssociationTable pat  )  [protected]

Definition at line 791 of file mpegstreamdata.cpp.

Referenced by HandleTables(), and SetDesiredProgram().

void MPEGStreamData::ProcessCAT ( const ConditionalAccessTable cat  )  [protected]

Definition at line 843 of file mpegstreamdata.cpp.

Referenced by HandleTables().

void MPEGStreamData::ProcessPMT ( const ProgramMapTable pmt  )  [protected]

Definition at line 861 of file mpegstreamdata.cpp.

Referenced by HandleTables(), and SetDesiredProgram().

void MPEGStreamData::ProcessEncryptedPacket ( const TSPacket tspacket  )  [protected]

counts en/decrypted packets to decide if a stream is en/decrypted

Definition at line 1947 of file mpegstreamdata.cpp.

Referenced by ProcessTSPacket().

int MPEGStreamData::ResyncStream ( const unsigned char *  buffer,
int  curr_pos,
int  len 
) [static, protected]

Definition at line 1089 of file mpegstreamdata.cpp.

Referenced by ProcessData().

void MPEGStreamData::UpdateTimeOffset ( uint64_t  si_utc_time  )  [protected]
void MPEGStreamData::IncrementRefCnt ( const PSIPTable psip  )  const [protected]
bool MPEGStreamData::DeleteCachedTable ( PSIPTable psip  )  const [protected, virtual]

Reimplemented in ATSCStreamData, DVBStreamData, and ScanStreamData.

Definition at line 1621 of file mpegstreamdata.cpp.

Referenced by CacheCAT(), CachePAT(), CachePMT(), Reset(), and ReturnCachedTable().

void MPEGStreamData::CachePAT ( const ProgramAssociationTable pat  )  [protected]

Definition at line 1665 of file mpegstreamdata.cpp.

Referenced by HandleTables().

void MPEGStreamData::CacheCAT ( const ConditionalAccessTable pat  )  [protected]

Definition at line 1679 of file mpegstreamdata.cpp.

Referenced by HandleTables().

void MPEGStreamData::CachePMT ( const ProgramMapTable pmt  )  [protected]

Definition at line 1693 of file mpegstreamdata.cpp.

Referenced by HandleTables().


Member Data Documentation

QString MPEGStreamData::_sistandard [protected]

Definition at line 353 of file mpegstreamdata.h.

Referenced by CreatePMTSingleProgram(), and TestDecryption().

Definition at line 355 of file mpegstreamdata.h.

Referenced by AssemblePSIP(), and HandleTSTables().

Definition at line 357 of file mpegstreamdata.h.

Referenced by MPEGStreamData().

QMutex MPEGStreamData::_si_time_lock [mutable, protected]

Definition at line 359 of file mpegstreamdata.h.

Referenced by TimeOffset(), and UpdateTimeOffset().

Definition at line 360 of file mpegstreamdata.h.

Referenced by TimeOffset(), and UpdateTimeOffset().

Definition at line 361 of file mpegstreamdata.h.

Referenced by UpdateTimeOffset().

double MPEGStreamData::_si_time_offsets[16] [protected]

Definition at line 362 of file mpegstreamdata.h.

Referenced by MPEGStreamData(), TimeOffset(), and UpdateTimeOffset().

float MPEGStreamData::_eit_rate [protected]

Definition at line 370 of file mpegstreamdata.h.

Referenced by GetPIDPriority(), IsNotListeningPID(), and Reset().

Definition at line 371 of file mpegstreamdata.h.

Referenced by GetPIDPriority(), GetPIDs(), IsWritingPID(), and Reset().

Definition at line 372 of file mpegstreamdata.h.

Referenced by CreatePMTSingleProgram(), GetPIDPriority(), GetPIDs(), IsAudioPID(), and Reset().

Definition at line 373 of file mpegstreamdata.h.

Referenced by IsListeningPID().

QMutex MPEGStreamData::_encryption_lock [mutable, protected]
QMutex MPEGStreamData::_listener_lock [mutable, protected]

Definition at line 383 of file mpegstreamdata.h.

Referenced by ATSCStreamData::AddATSC81EITListener(), ATSCStreamData::AddATSCAuxListener(), ATSCStreamData::AddATSCEITListener(), ATSCStreamData::AddATSCMainListener(), AddAVListener(), DVBStreamData::AddDVBEITListener(), DVBStreamData::AddDVBMainListener(), DVBStreamData::AddDVBOtherListener(), AddMPEGListener(), AddMPEGSPListener(), ATSCStreamData::AddSCTEMainListener(), AddWritingListener(), ATSCStreamData::GetATSCMajorMinor(), DVBStreamData::GetEITPIDChanges(), ATSCStreamData::GetEITPIDChanges(), HandleTables(), DVBStreamData::HandleTables(), ATSCStreamData::HandleTables(), HandleTSTables(), DVBStreamData::HasAnyEIT(), ATSCStreamData::HasATSCMajorMinorMap(), DVBStreamData::HasEIT(), DVBStreamData::HasEITPIDChanges(), ATSCStreamData::HasEITPIDChanges(), ProcessCAT(), ATSCStreamData::ProcessCVCT(), ProcessEncryptedPacket(), ATSCStreamData::ProcessMGT(), ProcessPAT(), ProcessPMT(), DVBStreamData::ProcessSDT(), ATSCStreamData::ProcessTVCT(), ATSCStreamData::RemoveATSC81EITListener(), ATSCStreamData::RemoveATSCAuxListener(), ATSCStreamData::RemoveATSCEITListener(), ATSCStreamData::RemoveATSCMainListener(), RemoveAVListener(), DVBStreamData::RemoveDVBEITListener(), DVBStreamData::RemoveDVBMainListener(), DVBStreamData::RemoveDVBOtherListener(), RemoveMPEGListener(), RemoveMPEGSPListener(), ATSCStreamData::RemoveSCTEMainListener(), RemoveWritingListener(), DVBStreamData::SetDishNetEIT(), SetEITHelper(), SetEITRate(), ScanStreamData::SetFreesatAdditionalSI(), ATSCStreamData::~ATSCStreamData(), DVBStreamData::~DVBStreamData(), and ~MPEGStreamData().

Definition at line 386 of file mpegstreamdata.h.

Referenced by AddWritingListener(), ProcessTSPacket(), and RemoveWritingListener().

Definition at line 387 of file mpegstreamdata.h.

Referenced by AddAVListener(), ProcessTSPacket(), and RemoveAVListener().

QMap<uint, int> MPEGStreamData::_pat_version [protected]

Definition at line 390 of file mpegstreamdata.h.

Referenced by Reset().

QMap<uint, int> MPEGStreamData::_cat_version [protected]

Definition at line 391 of file mpegstreamdata.h.

QMap<uint, int> MPEGStreamData::_pmt_version [protected]

Definition at line 392 of file mpegstreamdata.h.

Referenced by Reset().

Definition at line 394 of file mpegstreamdata.h.

Referenced by HasAllPATSections(), PATSectionSeen(), Reset(), and SetPATSectionSeen().

Definition at line 395 of file mpegstreamdata.h.

Referenced by CATSectionSeen(), HasAllCATSections(), and SetCATSectionSeen().

Definition at line 396 of file mpegstreamdata.h.

Referenced by HasAllPMTSections(), PMTSectionSeen(), Reset(), and SetPMTSectionSeen().

Definition at line 399 of file mpegstreamdata.h.

Referenced by DeletePartialPSIP(), Reset(), and SavePartialPSIP().

QMutex MPEGStreamData::_cache_lock [mutable, protected]
QString MPEGStreamData::_recording_type [protected]

Definition at line 413 of file mpegstreamdata.h.

Referenced by CreatePMTSingleProgram(), and Reset().

Definition at line 414 of file mpegstreamdata.h.

Referenced by Reset().

Definition at line 415 of file mpegstreamdata.h.

Referenced by CreatePMTSingleProgram(), GetPIDPriority(), GetPIDs(), and Reset().

Definition at line 417 of file mpegstreamdata.h.

Referenced by CreatePMTSingleProgram().

Definition at line 418 of file mpegstreamdata.h.

Referenced by CreatePMTSingleProgram().

Definition at line 419 of file mpegstreamdata.h.

Referenced by SetPATSingleProgram(), and VersionPATSingleProgram().

Definition at line 420 of file mpegstreamdata.h.

Referenced by SetPMTSingleProgram(), and VersionPMTSingleProgram().

Definition at line 424 of file mpegstreamdata.h.

Referenced by ProcessPAT(), and Reset().

Definition at line 425 of file mpegstreamdata.h.

Referenced by ProcessPAT().

Definition at line 426 of file mpegstreamdata.h.

Referenced by ProcessPAT().

const unsigned char MPEGStreamData::bit_sel [static, protected]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends
Generated on Mon May 28 06:42:13 2012 for MythTV by  doxygen 1.6.3