mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
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
This commit is contained in:
parent
de6d37134c
commit
e1acb774c6
5
HISTORY
5
HISTORY
@ -8453,7 +8453,7 @@ Video Disk Recorder Revision History
|
|||||||
- Added support for LCN (Logical Channel Numbers), which plugins may use to sort
|
- Added support for LCN (Logical Channel Numbers), which plugins may use to sort
|
||||||
channels (thanks to Rolf Ahrenberg).
|
channels (thanks to Rolf Ahrenberg).
|
||||||
|
|
||||||
2015-02-03: Version 2.1.9
|
2015-02-04: Version 2.1.9
|
||||||
|
|
||||||
- Fixed a memory leak in case of broken Extended Event Descriptors (thanks to Lars
|
- Fixed a memory leak in case of broken Extended Event Descriptors (thanks to Lars
|
||||||
Hanisch).
|
Hanisch).
|
||||||
@ -8484,3 +8484,6 @@ Video Disk Recorder Revision History
|
|||||||
Schedule menus for different channels (reported by Matthias Senzel).
|
Schedule menus for different channels (reported by Matthias Senzel).
|
||||||
- Fixed setting the Blue button in the Schedule/Now/Next menus, so that it only shows
|
- Fixed setting the Blue button in the Schedule/Now/Next menus, so that it only shows
|
||||||
"Switch" if the selected event is on a different channel.
|
"Switch" if the selected event is on a different channel.
|
||||||
|
- 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 (thanks to Rolf Ahrenberg).
|
||||||
|
1
MANUAL
1
MANUAL
@ -743,6 +743,7 @@ Version 2.0
|
|||||||
Defines the standard compliance mode:
|
Defines the standard compliance mode:
|
||||||
0 = DVB
|
0 = DVB
|
||||||
1 = ANSI/SCTE
|
1 = ANSI/SCTE
|
||||||
|
2 = NORDIG
|
||||||
|
|
||||||
Video format = 4:3 The video format (or aspect ratio) of the tv set in use
|
Video format = 4:3 The video format (or aspect ratio) of the tv set in use
|
||||||
(4:3 or 16:9). Applies only to SD output devices.
|
(4:3 or 16:9). Applies only to SD output devices.
|
||||||
|
3
config.h
3
config.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: config.h 3.15 2015/02/02 12:21:13 kls Exp $
|
* $Id: config.h 3.16 2015/02/04 09:13:54 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __CONFIG_H
|
#ifndef __CONFIG_H
|
||||||
@ -65,6 +65,7 @@
|
|||||||
|
|
||||||
#define STANDARD_DVB 0
|
#define STANDARD_DVB 0
|
||||||
#define STANDARD_ANSISCTE 1
|
#define STANDARD_ANSISCTE 1
|
||||||
|
#define STANDARD_NORDIG 2
|
||||||
|
|
||||||
typedef uint32_t in_addr_t; //XXX from /usr/include/netinet/in.h (apparently this is not defined on systems with glibc < 2.2)
|
typedef uint32_t in_addr_t; //XXX from /usr/include/netinet/in.h (apparently this is not defined on systems with glibc < 2.2)
|
||||||
|
|
||||||
|
7
menu.c
7
menu.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: menu.c 3.38 2015/02/03 11:51:29 kls Exp $
|
* $Id: menu.c 3.39 2015/02/04 09:13:54 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "menu.h"
|
#include "menu.h"
|
||||||
@ -3202,7 +3202,7 @@ private:
|
|||||||
void Setup(void);
|
void Setup(void);
|
||||||
const char *videoDisplayFormatTexts[3];
|
const char *videoDisplayFormatTexts[3];
|
||||||
const char *updateChannelsTexts[6];
|
const char *updateChannelsTexts[6];
|
||||||
const char *standardComplianceTexts[2];
|
const char *standardComplianceTexts[3];
|
||||||
public:
|
public:
|
||||||
cMenuSetupDVB(void);
|
cMenuSetupDVB(void);
|
||||||
virtual eOSState ProcessKey(eKeys Key);
|
virtual eOSState ProcessKey(eKeys Key);
|
||||||
@ -3228,6 +3228,7 @@ cMenuSetupDVB::cMenuSetupDVB(void)
|
|||||||
updateChannelsTexts[5] = tr("add new transponders");
|
updateChannelsTexts[5] = tr("add new transponders");
|
||||||
standardComplianceTexts[0] = "DVB";
|
standardComplianceTexts[0] = "DVB";
|
||||||
standardComplianceTexts[1] = "ANSI/SCTE";
|
standardComplianceTexts[1] = "ANSI/SCTE";
|
||||||
|
standardComplianceTexts[2] = "NORDIG";
|
||||||
|
|
||||||
SetSection(tr("DVB"));
|
SetSection(tr("DVB"));
|
||||||
SetHelp(NULL, tr("Button$Audio"), tr("Button$Subtitles"), NULL);
|
SetHelp(NULL, tr("Button$Audio"), tr("Button$Subtitles"), NULL);
|
||||||
@ -3241,7 +3242,7 @@ void cMenuSetupDVB::Setup(void)
|
|||||||
Clear();
|
Clear();
|
||||||
|
|
||||||
Add(new cMenuEditIntItem( tr("Setup.DVB$Primary DVB interface"), &data.PrimaryDVB, 1, cDevice::NumDevices()));
|
Add(new cMenuEditIntItem( tr("Setup.DVB$Primary DVB interface"), &data.PrimaryDVB, 1, cDevice::NumDevices()));
|
||||||
Add(new cMenuEditStraItem(tr("Setup.DVB$Standard compliance"), &data.StandardCompliance, 2, standardComplianceTexts));
|
Add(new cMenuEditStraItem(tr("Setup.DVB$Standard compliance"), &data.StandardCompliance, 3, standardComplianceTexts));
|
||||||
Add(new cMenuEditBoolItem(tr("Setup.DVB$Video format"), &data.VideoFormat, "4:3", "16:9"));
|
Add(new cMenuEditBoolItem(tr("Setup.DVB$Video format"), &data.VideoFormat, "4:3", "16:9"));
|
||||||
if (data.VideoFormat == 0)
|
if (data.VideoFormat == 0)
|
||||||
Add(new cMenuEditStraItem(tr("Setup.DVB$Video display format"), &data.VideoDisplayFormat, 3, videoDisplayFormatTexts));
|
Add(new cMenuEditStraItem(tr("Setup.DVB$Video display format"), &data.VideoDisplayFormat, 3, videoDisplayFormatTexts));
|
||||||
|
60
nit.c
60
nit.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* 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"
|
#include "nit.h"
|
||||||
@ -357,39 +357,41 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SI::LogicalChannelDescriptorTag: {
|
case SI::LogicalChannelDescriptorTag:
|
||||||
SI::LogicalChannelDescriptor *lcd = (SI::LogicalChannelDescriptor *)d;
|
if (Setup.StandardCompliance == STANDARD_NORDIG) {
|
||||||
SI::LogicalChannelDescriptor::LogicalChannel LogicalChannel;
|
SI::LogicalChannelDescriptor *lcd = (SI::LogicalChannelDescriptor *)d;
|
||||||
for (SI::Loop::Iterator it4; lcd->logicalChannelLoop.getNext(LogicalChannel, it4); ) {
|
SI::LogicalChannelDescriptor::LogicalChannel LogicalChannel;
|
||||||
int lcn = LogicalChannel.getLogicalChannelNumber();
|
for (SI::Loop::Iterator it4; lcd->logicalChannelLoop.getNext(LogicalChannel, it4); ) {
|
||||||
int sid = LogicalChannel.getServiceId();
|
int lcn = LogicalChannel.getLogicalChannelNumber();
|
||||||
if (LogicalChannel.getVisibleServiceFlag()) {
|
int sid = LogicalChannel.getServiceId();
|
||||||
for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
|
if (LogicalChannel.getVisibleServiceFlag()) {
|
||||||
if (!Channel->GroupSep() && Channel->Sid() == sid && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
|
for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
|
||||||
Channel->SetLcn(lcn);
|
if (!Channel->GroupSep() && Channel->Sid() == sid && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
|
||||||
break;
|
Channel->SetLcn(lcn);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case SI::HdSimulcastLogicalChannelDescriptorTag: {
|
case SI::HdSimulcastLogicalChannelDescriptorTag:
|
||||||
SI::HdSimulcastLogicalChannelDescriptor *lcd = (SI::HdSimulcastLogicalChannelDescriptor *)d;
|
if (Setup.StandardCompliance == STANDARD_NORDIG) {
|
||||||
SI::HdSimulcastLogicalChannelDescriptor::HdSimulcastLogicalChannel HdSimulcastLogicalChannel;
|
SI::HdSimulcastLogicalChannelDescriptor *lcd = (SI::HdSimulcastLogicalChannelDescriptor *)d;
|
||||||
for (SI::Loop::Iterator it4; lcd->hdSimulcastLogicalChannelLoop.getNext(HdSimulcastLogicalChannel, it4); ) {
|
SI::HdSimulcastLogicalChannelDescriptor::HdSimulcastLogicalChannel HdSimulcastLogicalChannel;
|
||||||
int lcn = HdSimulcastLogicalChannel.getLogicalChannelNumber();
|
for (SI::Loop::Iterator it4; lcd->hdSimulcastLogicalChannelLoop.getNext(HdSimulcastLogicalChannel, it4); ) {
|
||||||
int sid = HdSimulcastLogicalChannel.getServiceId();
|
int lcn = HdSimulcastLogicalChannel.getLogicalChannelNumber();
|
||||||
if (HdSimulcastLogicalChannel.getVisibleServiceFlag()) {
|
int sid = HdSimulcastLogicalChannel.getServiceId();
|
||||||
for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
|
if (HdSimulcastLogicalChannel.getVisibleServiceFlag()) {
|
||||||
if (!Channel->GroupSep() && Channel->Sid() == sid && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
|
for (cChannel *Channel = Channels.First(); Channel; Channel = Channels.Next(Channel)) {
|
||||||
Channel->SetLcn(lcn);
|
if (!Channel->GroupSep() && Channel->Sid() == sid && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
|
||||||
break;
|
Channel->SetLcn(lcn);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
default: ;
|
default: ;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user