mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed handling 'Transfer Mode' on single device systems when recording an encrypted channel
This commit is contained in:
parent
294512863d
commit
2f89413ca4
@ -156,6 +156,8 @@ Stefan Huelswitt <huels@iname.com>
|
|||||||
for improving skipping channels that are (currently) not available
|
for improving skipping channels that are (currently) not available
|
||||||
for fixing checking the Ca() status of a cDevice
|
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 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>
|
Ulrich Röder <roeder@efr-net.de>
|
||||||
for pointing out that there are channels that have a symbol rate higher than
|
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
|
shall be executed from the "Recordings" menu; see MANUAL and 'man vdr(5)' for
|
||||||
details (suggested by Gerhard Steiner).
|
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).
|
- Fixed some faulty default parameter initializations (thanks to Robert Schiele).
|
||||||
- Added further satellites to 'sources.conf' (thanks to Reinhard Walter Buchner
|
- 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
|
- Fixed channel switching in case of an active 'Transfer Mode' on the primary
|
||||||
device ('Transfer Mode' is now launched with priority '-1').
|
device ('Transfer Mode' is now launched with priority '-1').
|
||||||
- Fixed a ternary expression in dvbspu.c.
|
- 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
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* 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"
|
#include "dvbdevice.h"
|
||||||
@ -442,24 +442,26 @@ bool cDvbDevice::SetChannelDevice(const cChannel *Channel, bool LiveView)
|
|||||||
LiveView = true;
|
LiveView = true;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
bool IsEncrypted = Channel->Ca() > CACONFBASE;
|
||||||
|
|
||||||
bool DoTune = !IsTunedTo(Channel);
|
bool DoTune = !IsTunedTo(Channel);
|
||||||
|
|
||||||
bool TurnOffLivePIDs = HasDecoder()
|
bool TurnOffLivePIDs = HasDecoder()
|
||||||
&& (DoTune
|
&& (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()
|
|| IsPrimaryDevice()
|
||||||
&& (LiveView // for a new live view the old PIDs need to be turned off
|
&& (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
|
|| 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 && 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
|
|| !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
|
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
|
|| LiveView
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user