1
0
mirror of https://github.com/rofafor/vdr-plugin-iptv.git synced 2023-10-10 13:37:03 +02:00

Fixed audio pid detection in pid scanner.

This commit is contained in:
Rolf Ahrenberg 2010-07-10 23:27:07 +03:00
parent 12b54fbbc2
commit 2567501b65
2 changed files with 3 additions and 2 deletions

View File

@ -147,3 +147,4 @@ VDR Plugin 'iptv' Revision History
- Renamed Sid scanner to section id scanner and added - Renamed Sid scanner to section id scanner and added
experimental Tid/Nid support into it. experimental Tid/Nid support into it.
- Added validation for source addresses of socket data. - Added validation for source addresses of socket data.
- Fixed audio pid detection in pid scanner.

View File

@ -129,6 +129,7 @@ void cPidScanner::Process(const uint8_t* buf)
char ALangs[MAXAPIDS][MAXLANGCODE2] = { "" }; char ALangs[MAXAPIDS][MAXLANGCODE2] = { "" };
char DLangs[MAXDPIDS][MAXLANGCODE2] = { "" }; char DLangs[MAXDPIDS][MAXLANGCODE2] = { "" };
char SLangs[MAXSPIDS][MAXLANGCODE2] = { "" }; char SLangs[MAXSPIDS][MAXLANGCODE2] = { "" };
int Vtype = IptvChannel->Vtype();
int Ppid = IptvChannel->Ppid(); int Ppid = IptvChannel->Ppid();
int Tpid = IptvChannel->Tpid(); int Tpid = IptvChannel->Tpid();
bool foundApid = false; bool foundApid = false;
@ -136,7 +137,7 @@ void cPidScanner::Process(const uint8_t* buf)
Vpid = 0; // No detected video pid Vpid = 0; // No detected video pid
else if (numApids < PIDSCANNER_APID_COUNT) else if (numApids < PIDSCANNER_APID_COUNT)
Apid = 0; // No detected audio pid Apid = 0; // No detected audio pid
for (unsigned int i = 1; i < MAXAPIDS; ++i) { for (unsigned int i = 0; i < MAXAPIDS; ++i) {
Apids[i] = IptvChannel->Apid(i); Apids[i] = IptvChannel->Apid(i);
Atypes[i] = IptvChannel->Atype(i); Atypes[i] = IptvChannel->Atype(i);
if (Apids[i] && (Apids[i] == Apid)) if (Apids[i] && (Apids[i] == Apid))
@ -153,7 +154,6 @@ void cPidScanner::Process(const uint8_t* buf)
for (unsigned int i = 0; i < MAXSPIDS; ++i) for (unsigned int i = 0; i < MAXSPIDS; ++i)
Spids[i] = IptvChannel->Spid(i); Spids[i] = IptvChannel->Spid(i);
debug("cPidScanner::Process(): Vpid=0x%04X, Apid=0x%04X\n", Vpid, Apid); debug("cPidScanner::Process(): Vpid=0x%04X, Apid=0x%04X\n", Vpid, Apid);
int Vtype = IptvChannel->Vtype();
IptvChannel->SetPids(Vpid, Ppid, Vtype, Apids, Atypes, ALangs, Dpids, Dtypes, DLangs, Spids, SLangs, Tpid); IptvChannel->SetPids(Vpid, Ppid, Vtype, Apids, Atypes, ALangs, Dpids, Dtypes, DLangs, Spids, SLangs, Tpid);
} }
Channels.Unlock(); Channels.Unlock();