summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2007-08-17 14:06:09 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2007-08-17 14:06:09 +0200
commitcb03e38a07df9d32db6762f8b3f13c801dd7c758 (patch)
tree7aa5460894a2848ee3207653521eb272e7b35df8
parent9fa6d9f9ddb3893d4e1d99673ffbb5076fdb56ab (diff)
downloadvdr-cb03e38a07df9d32db6762f8b3f13c801dd7c758.tar.gz
vdr-cb03e38a07df9d32db6762f8b3f13c801dd7c758.tar.bz2
Optimized cNitFilter::Process()
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY1
-rw-r--r--nit.c99
3 files changed, 53 insertions, 48 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 266f9490..c943c094 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -2141,6 +2141,7 @@ Tobias Bratfisch <tobias@reel-multimedia.com>
for suggesting to make skipspace() an inline function
for making some optimizations in cDvbDevice::SetChannelDevice()
for optimizing cMenuEditChrItem::Set()
+ for optimizing cNitFilter::Process()
Bruno Roussel <bruno.roussel@free.fr>
for translating OSD texts to the French language
diff --git a/HISTORY b/HISTORY
index 3404c46d..575a5e12 100644
--- a/HISTORY
+++ b/HISTORY
@@ -5367,3 +5367,4 @@ Video Disk Recorder Revision History
Matthias Schwarzott).
- Some optimizations in cDvbDevice::SetChannelDevice() (thanks to Tobias Bratfisch).
- Optimized cMenuEditChrItem::Set() (thanks to Tobias Bratfisch).
+- Optimized cNitFilter::Process() (thanks to Tobias Bratfisch).
diff --git a/nit.c b/nit.c
index 9291c960..ba80a68f 100644
--- a/nit.c
+++ b/nit.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: nit.c 1.14 2007/04/29 11:35:33 kls Exp $
+ * $Id: nit.c 1.15 2007/08/17 14:02:45 kls Exp $
*/
#include "nit.h"
@@ -140,13 +140,14 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
}
break;
}
- bool found = false;
- for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
- if (!Channel->GroupSep() && Channel->Source() == Source && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
- if (Setup.UpdateChannels >= 5) {
- if (!ISTRANSPONDER(cChannel::Transponder(Frequency, Polarization), Channel->Transponder())) {
+ if (Setup.UpdateChannels >= 5) {
+ bool found = false;
+ for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
+ if (!Channel->GroupSep() && Channel->Source() == Source && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
+ int transponder = Channel->Transponder();
+ if (!ISTRANSPONDER(cChannel::Transponder(Frequency, Polarization), transponder)) {
for (int n = 0; n < NumFrequencies; n++) {
- if (ISTRANSPONDER(cChannel::Transponder(Frequencies[n], Polarization), Channel->Transponder())) {
+ if (ISTRANSPONDER(cChannel::Transponder(Frequencies[n], Polarization), transponder)) {
Frequency = Frequencies[n];
break;
}
@@ -157,16 +158,16 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
}
found = true;
}
- }
- if (!found && Setup.UpdateChannels >= 5) {
- for (int n = 0; n < NumFrequencies; n++) {
- cChannel *Channel = new cChannel;
- Channel->SetId(ts.getOriginalNetworkId(), ts.getTransportStreamId(), 0, 0);
- if (Channel->SetSatTransponderData(Source, Frequencies[n], Polarization, SymbolRate, CodeRate))
- EITScanner.AddTransponder(Channel);
- else
- delete Channel;
- }
+ if (!found) {
+ for (int n = 0; n < NumFrequencies; n++) {
+ cChannel *Channel = new cChannel;
+ Channel->SetId(ts.getOriginalNetworkId(), ts.getTransportStreamId(), 0, 0);
+ if (Channel->SetSatTransponderData(Source, Frequencies[n], Polarization, SymbolRate, CodeRate))
+ EITScanner.AddTransponder(Channel);
+ else
+ delete Channel;
+ }
+ }
}
}
break;
@@ -190,13 +191,14 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
}
break;
}
- bool found = false;
- for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
- if (!Channel->GroupSep() && Channel->Source() == Source && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
- if (Setup.UpdateChannels >= 5) {
- if (!ISTRANSPONDER(Frequency / 1000, Channel->Transponder())) {
+ if (Setup.UpdateChannels >= 5) {
+ bool found = false;
+ for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
+ if (!Channel->GroupSep() && Channel->Source() == Source && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
+ int transponder = Channel->Transponder();
+ if (!ISTRANSPONDER(Frequency / 1000, transponder)) {
for (int n = 0; n < NumFrequencies; n++) {
- if (ISTRANSPONDER(Frequencies[n] / 1000, Channel->Transponder())) {
+ if (ISTRANSPONDER(Frequencies[n] / 1000, transponder)) {
Frequency = Frequencies[n];
break;
}
@@ -207,16 +209,16 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
}
found = true;
}
- }
- if (!found && Setup.UpdateChannels >= 5) {
- for (int n = 0; n < NumFrequencies; n++) {
- cChannel *Channel = new cChannel;
- Channel->SetId(ts.getOriginalNetworkId(), ts.getTransportStreamId(), 0, 0);
- if (Channel->SetCableTransponderData(Source, Frequencies[n], Modulation, SymbolRate, CodeRate))
- EITScanner.AddTransponder(Channel);
- else
- delete Channel;
- }
+ if (!found) {
+ for (int n = 0; n < NumFrequencies; n++) {
+ cChannel *Channel = new cChannel;
+ Channel->SetId(ts.getOriginalNetworkId(), ts.getTransportStreamId(), 0, 0);
+ if (Channel->SetCableTransponderData(Source, Frequencies[n], Modulation, SymbolRate, CodeRate))
+ EITScanner.AddTransponder(Channel);
+ else
+ delete Channel;
+ }
+ }
}
}
break;
@@ -247,13 +249,14 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
}
break;
}
- bool found = false;
- for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
- if (!Channel->GroupSep() && Channel->Source() == Source && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
- if (Setup.UpdateChannels >= 5) {
- if (!ISTRANSPONDER(Frequency / 1000000, Channel->Transponder())) {
+ if (Setup.UpdateChannels >= 5) {
+ bool found = false;
+ for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
+ if (!Channel->GroupSep() && Channel->Source() == Source && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
+ int transponder = Channel->Transponder();
+ if (!ISTRANSPONDER(Frequency / 1000000, transponder)) {
for (int n = 0; n < NumFrequencies; n++) {
- if (ISTRANSPONDER(Frequencies[n] / 1000000, Channel->Transponder())) {
+ if (ISTRANSPONDER(Frequencies[n] / 1000000, transponder)) {
Frequency = Frequencies[n];
break;
}
@@ -264,15 +267,15 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
}
found = true;
}
- }
- if (!found && Setup.UpdateChannels >= 5) {
- for (int n = 0; n < NumFrequencies; n++) {
- cChannel *Channel = new cChannel;
- Channel->SetId(ts.getOriginalNetworkId(), ts.getTransportStreamId(), 0, 0);
- if (Channel->SetTerrTransponderData(Source, Frequencies[n], Bandwidth, Constellation, Hierarchy, CodeRateHP, CodeRateLP, GuardInterval, TransmissionMode))
- EITScanner.AddTransponder(Channel);
- else
- delete Channel;
+ if (!found) {
+ for (int n = 0; n < NumFrequencies; n++) {
+ cChannel *Channel = new cChannel;
+ Channel->SetId(ts.getOriginalNetworkId(), ts.getTransportStreamId(), 0, 0);
+ if (Channel->SetTerrTransponderData(Source, Frequencies[n], Bandwidth, Constellation, Hierarchy, CodeRateHP, CodeRateLP, GuardInterval, TransmissionMode))
+ EITScanner.AddTransponder(Channel);
+ else
+ delete Channel;
+ }
}
}
}