1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| SmartPtr <IDvbSiParser> pIDvbSiParser;
hr=CoCreateInstance(CLSID_DvbSiParser, NULL, CLSCTX_INPROC_SERVER, __uuidof(IDvbSiParser),(void**)&pIDvbSiParser);
pIDvbSiParser->Initialize(TUNER[0].m_pBDASecTab);
SmartPtr <IPAT> pIPAT;
SmartPtr <IPMT> pIPMT;
SmartPtr <IDVB_SDT> SDT;
pIPAT = NULL;
//Get Interface Here
hr = pIDvbSiParser->GetPAT( &pIPAT );
//Get Information About Obtained PAT Table
BYTE PATVersion;
hr = pIPAT->GetVersionNumber( &PATVersion );
TOOL_Debug("IPAT", "PAT Version: %i\n", PATVersion );
WORD TransportStreamID;
hr = pIPAT->GetTransportStreamId( &TransportStreamID ) ;
TOOL_Debug("IPAT","Transport Stream ID: %i\n", TransportStreamID );
DWORD NumberOfPATRecords;
hr = pIPAT->GetCountOfRecords( &NumberOfPATRecords );
TOOL_Debug("IPAT","Number of records: %i\n", NumberOfPATRecords );
for( int cnt = 0; cnt < NumberOfPATRecords; cnt++)
{
WORD TransportStreamProgramNumber;
WORD ProgramNumberPMTPID;
TOOL_Debug("IPAT","Program Ordinary %i\n", cnt + 1 );
hr = pIPAT->GetRecordProgramNumber( cnt, &TransportStreamProgramNumber );
TOOL_Debug("IPAT","Program ID %i\n", TransportStreamProgramNumber );
hr = pIPAT->FindRecordProgramMapPid( TransportStreamProgramNumber, &ProgramNumberPMTPID );
TOOL_Debug("IPAT","Program PMT PID %i\n", ProgramNumberPMTPID );
hr = pIPAT->GetRecordProgramMapPid( cnt, &ProgramNumberPMTPID );
TOOL_Debug("IPAT","Program PMT PID %i\n", ProgramNumberPMTPID );
} |
Partager