mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Fixed handling 'Transfer Mode' on single device systems when recording an encrypted channel
This commit is contained in:
		| @@ -156,6 +156,8 @@ Stefan Huelswitt <huels@iname.com> | ||||
|  for improving skipping channels that are (currently) not available | ||||
|  for fixing checking the Ca() status of a cDevice | ||||
|  for helping to fix switching audio tracks in 'Transfer Mode' on the primary DVB device | ||||
|  for fixing handling 'Transfer Mode' on single device systems when recording an | ||||
|  encrypted channel | ||||
|  | ||||
| Ulrich R<>der <roeder@efr-net.de> | ||||
|  for pointing out that there are channels that have a symbol rate higher than | ||||
|   | ||||
							
								
								
									
										4
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -1611,7 +1611,7 @@ Video Disk Recorder Revision History | ||||
|   shall be executed from the "Recordings" menu; see MANUAL and 'man vdr(5)' for | ||||
|   details (suggested by Gerhard Steiner). | ||||
|  | ||||
| 2002-10-20: Version 1.1.14 | ||||
| 2002-10-26: Version 1.1.14 | ||||
|  | ||||
| - Fixed some faulty default parameter initializations (thanks to Robert Schiele). | ||||
| - Added further satellites to 'sources.conf' (thanks to Reinhard Walter Buchner | ||||
| @@ -1640,3 +1640,5 @@ Video Disk Recorder Revision History | ||||
| - Fixed channel switching in case of an active 'Transfer Mode' on the primary | ||||
|   device ('Transfer Mode' is now launched with priority '-1'). | ||||
| - Fixed a ternary expression in dvbspu.c. | ||||
| - Fixed handling 'Transfer Mode' on single device systems when recording an | ||||
|   encrypted channel (thanks to Stefan Huelswitt). | ||||
|   | ||||
							
								
								
									
										10
									
								
								dvbdevice.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								dvbdevice.c
									
									
									
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: dvbdevice.c 1.27 2002/10/26 09:44:49 kls Exp $ | ||||
|  * $Id: dvbdevice.c 1.28 2002/10/26 10:53:20 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #include "dvbdevice.h" | ||||
| @@ -442,24 +442,26 @@ bool cDvbDevice::SetChannelDevice(const cChannel *Channel, bool LiveView) | ||||
|      LiveView = true; | ||||
| #endif | ||||
|  | ||||
|   bool IsEncrypted = Channel->Ca() > CACONFBASE; | ||||
|  | ||||
|   bool DoTune = !IsTunedTo(Channel); | ||||
|  | ||||
|   bool TurnOffLivePIDs = HasDecoder() | ||||
|                          && (DoTune | ||||
|                             || Channel->Ca() > CACONFBASE && pidHandles[ptVideo].pid != Channel->Vpid() // CA channels can only be decrypted in "live" mode | ||||
|                             || IsEncrypted && pidHandles[ptVideo].pid != Channel->Vpid() // CA channels can only be decrypted in "live" mode | ||||
|                             || IsPrimaryDevice() | ||||
|                                && (LiveView // for a new live view the old PIDs need to be turned off | ||||
|                                   || pidHandles[ptVideo].pid == Channel->Vpid() // for recording the PIDs must be shifted from DMX_PES_AUDIO/VIDEO to DMX_PES_OTHER | ||||
|                                   ) | ||||
|                             ); | ||||
|  | ||||
|   bool StartTransferMode = IsPrimaryDevice() && !DoTune | ||||
|   bool StartTransferMode = IsPrimaryDevice() && !IsEncrypted && !DoTune | ||||
|                            && (LiveView && HasPid(Channel->Vpid()) && pidHandles[ptVideo].pid != Channel->Vpid() // the PID is already set as DMX_PES_OTHER | ||||
|                               || !LiveView && pidHandles[ptVideo].pid == Channel->Vpid() // a recording is going to shift the PIDs from DMX_PES_AUDIO/VIDEO to DMX_PES_OTHER | ||||
|                               ); | ||||
|  | ||||
|   bool TurnOnLivePIDs = HasDecoder() && !StartTransferMode | ||||
|                         && (Channel->Ca() > CACONFBASE // CA channels can only be decrypted in "live" mode | ||||
|                         && (IsEncrypted // CA channels can only be decrypted in "live" mode | ||||
|                            || LiveView | ||||
|                            ); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user