mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed handling parameters in the S2SatelliteDeliverySystemDescriptor and T2DeliverySystemDescriptor
This commit is contained in:
parent
f4b60f0b68
commit
55408b73ca
5
HISTORY
5
HISTORY
@ -9162,7 +9162,7 @@ Video Disk Recorder Revision History
|
|||||||
a subdirectory.
|
a subdirectory.
|
||||||
- SVDRP peering can now be limited to the default SVDRP host (see MANUAL for details).
|
- SVDRP peering can now be limited to the default SVDRP host (see MANUAL for details).
|
||||||
|
|
||||||
2018-03-17: Version 2.3.9
|
2018-03-18: Version 2.3.9
|
||||||
|
|
||||||
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
- Updated the Italian OSD texts (thanks to Diego Pierotto).
|
||||||
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||||||
@ -9311,3 +9311,6 @@ Video Disk Recorder Revision History
|
|||||||
marks that are not generated by VDR itself, and thus may be a little off (suggested by
|
marks that are not generated by VDR itself, and thus may be a little off (suggested by
|
||||||
Jörg Wendel). You can activate this line again for debugging if necessary.
|
Jörg Wendel). You can activate this line again for debugging if necessary.
|
||||||
- Made the input buffer in cSVDRPClient dynamic.
|
- Made the input buffer in cSVDRPClient dynamic.
|
||||||
|
- Fixed handling parameters in the S2SatelliteDeliverySystemDescriptor and
|
||||||
|
T2DeliverySystemDescriptor that were overwritten when parsing the
|
||||||
|
SatelliteDeliverySystemDescriptor or TerrestrialDeliverySystemDescriptor, respectively.
|
||||||
|
19
nit.c
19
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 4.4 2016/12/23 14:16:59 kls Exp $
|
* $Id: nit.c 4.5 2018/03/18 10:52:21 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "nit.h"
|
#include "nit.h"
|
||||||
@ -120,6 +120,10 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
|
|||||||
bool forceTransponderUpdate = false;
|
bool forceTransponderUpdate = false;
|
||||||
for (cChannel *Channel = Channels->First(); Channel; Channel = Channels->Next(Channel)) {
|
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 (!Channel->GroupSep() && Channel->Source() == Source && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
|
||||||
|
// Preserve parameters set separately in S2SatelliteDeliverySystemDescriptor:
|
||||||
|
cDvbTransponderParameters dtpc(Channel->Parameters());
|
||||||
|
dtp.SetStreamId(dtpc.StreamId());
|
||||||
|
//
|
||||||
int transponder = Channel->Transponder();
|
int transponder = Channel->Transponder();
|
||||||
found = true;
|
found = true;
|
||||||
if (!ISTRANSPONDER(cChannel::Transponder(Frequency, dtp.Polarization()), transponder)) {
|
if (!ISTRANSPONDER(cChannel::Transponder(Frequency, dtp.Polarization()), transponder)) {
|
||||||
@ -157,8 +161,8 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
|
|||||||
if (!Channel->GroupSep() && cSource::IsSat(Channel->Source()) && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
|
if (!Channel->GroupSep() && cSource::IsSat(Channel->Source()) && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
|
||||||
SI::S2SatelliteDeliverySystemDescriptor *sd = (SI::S2SatelliteDeliverySystemDescriptor *)d;
|
SI::S2SatelliteDeliverySystemDescriptor *sd = (SI::S2SatelliteDeliverySystemDescriptor *)d;
|
||||||
cDvbTransponderParameters dtp(Channel->Parameters());
|
cDvbTransponderParameters dtp(Channel->Parameters());
|
||||||
dtp.SetSystem(DVB_SYSTEM_2);
|
|
||||||
dtp.SetStreamId(sd->getInputStreamIdentifier());
|
dtp.SetStreamId(sd->getInputStreamIdentifier());
|
||||||
|
dbgnit(" stream id = %d\n", dtp.StreamId());
|
||||||
ChannelsModified |= Channel->SetTransponderData(Channel->Source(), Channel->Frequency(), Channel->Srate(), dtp.ToString('S'));
|
ChannelsModified |= Channel->SetTransponderData(Channel->Source(), Channel->Frequency(), Channel->Srate(), dtp.ToString('S'));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -239,6 +243,16 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
|
|||||||
bool forceTransponderUpdate = false;
|
bool forceTransponderUpdate = false;
|
||||||
for (cChannel *Channel = Channels->First(); Channel; Channel = Channels->Next(Channel)) {
|
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 (!Channel->GroupSep() && Channel->Source() == Source && Channel->Nid() == ts.getOriginalNetworkId() && Channel->Tid() == ts.getTransportStreamId()) {
|
||||||
|
// Preserve parameters set separately in T2DeliverySystemDescripto:
|
||||||
|
cDvbTransponderParameters dtpc(Channel->Parameters());
|
||||||
|
dtp.SetSystem(dtpc.System());
|
||||||
|
dtp.SetStreamId(dtpc.StreamId());
|
||||||
|
dtp.SetT2SystemId(dtp.T2SystemId());
|
||||||
|
dtp.SetSisoMiso(dtpc.SisoMiso());
|
||||||
|
dtp.SetBandwidth(dtpc.Bandwidth());
|
||||||
|
dtp.SetGuard(dtpc.Guard());
|
||||||
|
dtp.SetTransmission(dtpc.Transmission());
|
||||||
|
//
|
||||||
int transponder = Channel->Transponder();
|
int transponder = Channel->Transponder();
|
||||||
found = true;
|
found = true;
|
||||||
if (!ISTRANSPONDER(Frequency / 1000000, transponder)) {
|
if (!ISTRANSPONDER(Frequency / 1000000, transponder)) {
|
||||||
@ -295,6 +309,7 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
|
|||||||
dtp.SetTransmission(T2TransmissionModes[td->getTransmissionMode()]);
|
dtp.SetTransmission(T2TransmissionModes[td->getTransmissionMode()]);
|
||||||
//TODO add parsing of frequencies
|
//TODO add parsing of frequencies
|
||||||
}
|
}
|
||||||
|
dbgnit(" stream id = %d\n", dtp.StreamId());
|
||||||
ChannelsModified |= Channel->SetTransponderData(Source, Frequency, SymbolRate, dtp.ToString('T'));
|
ChannelsModified |= Channel->SetTransponderData(Source, Frequency, SymbolRate, dtp.ToString('T'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user