summaryrefslogtreecommitdiff
path: root/nit.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2015-02-04 09:18:30 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2015-02-04 09:18:30 +0100
commite1acb774c63fbd22487b6b36eb558348774951c2 (patch)
tree74f10f9e78ad8010684507c9281b72cb81a397e0 /nit.c
parentde6d37134cf8625ddae2c7a47b63ed697286f506 (diff)
downloadvdr-e1acb774c63fbd22487b6b36eb558348774951c2.tar.gz
vdr-e1acb774c63fbd22487b6b36eb558348774951c2.tar.bz2
Added "NORDIG" to the list of "DVB/Standard compliance" options and using it to restrict the LCN (Logical Channel Numbers) parsing to networks that actually use this non-standard feature
Diffstat (limited to 'nit.c')
-rw-r--r--nit.c60
1 files changed, 31 insertions, 29 deletions
diff --git a/nit.c b/nit.c
index d9ec1f8f..13183755 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 3.4 2015/02/01 13:46:00 kls Exp $
+ * $Id: nit.c 3.5 2015/02/04 09:13:54 kls Exp $
*/
#include "nit.h"
@@ -357,39 +357,41 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
}
}
break;
- case SI::LogicalChannelDescriptorTag: {
- SI::LogicalChannelDescriptor *lcd = (SI::LogicalChannelDescriptor *)d;
- SI::LogicalChannelDescriptor::LogicalChannel LogicalChannel;
- for (SI::Loop::Iterator it4; lcd->logicalChannelLoop.getNext(LogicalChannel, it4); ) {
- int lcn = LogicalChannel.getLogicalChannelNumber();
- int sid = LogicalChannel.getServiceId();
- if (LogicalChannel.getVisibleServiceFlag()) {
- for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
- if (!Channel->GroupSep() && Channel->Sid() == sid && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
- Channel->SetLcn(lcn);
- break;
+ case SI::LogicalChannelDescriptorTag:
+ if (Setup.StandardCompliance == STANDARD_NORDIG) {
+ SI::LogicalChannelDescriptor *lcd = (SI::LogicalChannelDescriptor *)d;
+ SI::LogicalChannelDescriptor::LogicalChannel LogicalChannel;
+ for (SI::Loop::Iterator it4; lcd->logicalChannelLoop.getNext(LogicalChannel, it4); ) {
+ int lcn = LogicalChannel.getLogicalChannelNumber();
+ int sid = LogicalChannel.getServiceId();
+ if (LogicalChannel.getVisibleServiceFlag()) {
+ for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
+ if (!Channel->GroupSep() && Channel->Sid() == sid && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
+ Channel->SetLcn(lcn);
+ break;
+ }
}
- }
+ }
}
- }
- }
+ }
break;
- case SI::HdSimulcastLogicalChannelDescriptorTag: {
- SI::HdSimulcastLogicalChannelDescriptor *lcd = (SI::HdSimulcastLogicalChannelDescriptor *)d;
- SI::HdSimulcastLogicalChannelDescriptor::HdSimulcastLogicalChannel HdSimulcastLogicalChannel;
- for (SI::Loop::Iterator it4; lcd->hdSimulcastLogicalChannelLoop.getNext(HdSimulcastLogicalChannel, it4); ) {
- int lcn = HdSimulcastLogicalChannel.getLogicalChannelNumber();
- int sid = HdSimulcastLogicalChannel.getServiceId();
- if (HdSimulcastLogicalChannel.getVisibleServiceFlag()) {
- for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
- if (!Channel->GroupSep() && Channel->Sid() == sid && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
- Channel->SetLcn(lcn);
- break;
+ case SI::HdSimulcastLogicalChannelDescriptorTag:
+ if (Setup.StandardCompliance == STANDARD_NORDIG) {
+ SI::HdSimulcastLogicalChannelDescriptor *lcd = (SI::HdSimulcastLogicalChannelDescriptor *)d;
+ SI::HdSimulcastLogicalChannelDescriptor::HdSimulcastLogicalChannel HdSimulcastLogicalChannel;
+ for (SI::Loop::Iterator it4; lcd->hdSimulcastLogicalChannelLoop.getNext(HdSimulcastLogicalChannel, it4); ) {
+ int lcn = HdSimulcastLogicalChannel.getLogicalChannelNumber();
+ int sid = HdSimulcastLogicalChannel.getServiceId();
+ if (HdSimulcastLogicalChannel.getVisibleServiceFlag()) {
+ for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
+ if (!Channel->GroupSep() && Channel->Sid() == sid && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
+ Channel->SetLcn(lcn);
+ break;
+ }
}
- }
+ }
}
- }
- }
+ }
break;
default: ;
}