mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Fixed handling parameters in the S2SatelliteDeliverySystemDescriptor and T2DeliverySystemDescriptor
This commit is contained in:
		
							
								
								
									
										5
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								HISTORY
									
									
									
									
									
								
							@@ -9162,7 +9162,7 @@ Video Disk Recorder Revision History
 | 
			
		||||
  a subdirectory.
 | 
			
		||||
- 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 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
 | 
			
		||||
  J<>rg Wendel). You can activate this line again for debugging if necessary.
 | 
			
		||||
- 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
 | 
			
		||||
 * 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"
 | 
			
		||||
@@ -120,6 +120,10 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
 | 
			
		||||
                    bool forceTransponderUpdate = 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()) {
 | 
			
		||||
                           // Preserve parameters set separately in S2SatelliteDeliverySystemDescriptor:
 | 
			
		||||
                           cDvbTransponderParameters dtpc(Channel->Parameters());
 | 
			
		||||
                           dtp.SetStreamId(dtpc.StreamId());
 | 
			
		||||
                           //
 | 
			
		||||
                           int transponder = Channel->Transponder();
 | 
			
		||||
                           found = true;
 | 
			
		||||
                           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()) {
 | 
			
		||||
                           SI::S2SatelliteDeliverySystemDescriptor *sd = (SI::S2SatelliteDeliverySystemDescriptor *)d;
 | 
			
		||||
                           cDvbTransponderParameters dtp(Channel->Parameters());
 | 
			
		||||
                           dtp.SetSystem(DVB_SYSTEM_2);
 | 
			
		||||
                           dtp.SetStreamId(sd->getInputStreamIdentifier());
 | 
			
		||||
                           dbgnit("    stream id = %d\n", dtp.StreamId());
 | 
			
		||||
                           ChannelsModified |= Channel->SetTransponderData(Channel->Source(), Channel->Frequency(), Channel->Srate(), dtp.ToString('S'));
 | 
			
		||||
                           break;
 | 
			
		||||
                           }
 | 
			
		||||
@@ -239,6 +243,16 @@ void cNitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length
 | 
			
		||||
                    bool forceTransponderUpdate = 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()) {
 | 
			
		||||
                           // 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();
 | 
			
		||||
                           found = true;
 | 
			
		||||
                           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()]);
 | 
			
		||||
                                     //TODO add parsing of frequencies
 | 
			
		||||
                                     }
 | 
			
		||||
                                  dbgnit("    stream id = %d\n", dtp.StreamId());
 | 
			
		||||
                                  ChannelsModified |= Channel->SetTransponderData(Source, Frequency, SymbolRate, dtp.ToString('T'));
 | 
			
		||||
                                  }
 | 
			
		||||
                               }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user