mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Dropped CA support for the old '-icam' firmware
This commit is contained in:
parent
8e37778946
commit
dc20f0f8cf
1
HISTORY
1
HISTORY
@ -3449,3 +3449,4 @@ Video Disk Recorder Revision History
|
|||||||
- The setup option "DVB/Video display format" is now only available if "Video format"
|
- The setup option "DVB/Video display format" is now only available if "Video format"
|
||||||
is set to "4:3" (suggested by Mikko Salo).
|
is set to "4:3" (suggested by Mikko Salo).
|
||||||
- Updated the Russian OSD texts (thanks to Vyacheslav Dikonov).
|
- Updated the Russian OSD texts (thanks to Vyacheslav Dikonov).
|
||||||
|
- Dropped CA support for the old '-icam' firmware.
|
||||||
|
17
dvbdevice.c
17
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.124 2005/02/20 13:35:28 kls Exp $
|
* $Id: dvbdevice.c 1.125 2005/03/05 16:12:59 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "dvbdevice.h"
|
#include "dvbdevice.h"
|
||||||
@ -757,8 +757,7 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne
|
|||||||
if (Channel->Vpid() && !HasPid(Channel->Vpid()) || Channel->Apid(0) && !HasPid(Channel->Apid(0))) {
|
if (Channel->Vpid() && !HasPid(Channel->Vpid()) || Channel->Apid(0) && !HasPid(Channel->Apid(0))) {
|
||||||
#ifdef DO_MULTIPLE_RECORDINGS
|
#ifdef DO_MULTIPLE_RECORDINGS
|
||||||
if (Ca() > CACONFBASE || Channel->Ca() > CACONFBASE)
|
if (Ca() > CACONFBASE || Channel->Ca() > CACONFBASE)
|
||||||
needsDetachReceivers = !ciHandler // only LL-firmware can do non-live CA channels
|
needsDetachReceivers = Ca() != Channel->Ca();
|
||||||
|| Ca() != Channel->Ca();
|
|
||||||
else if (!IsPrimaryDevice())
|
else if (!IsPrimaryDevice())
|
||||||
result = true;
|
result = true;
|
||||||
#ifdef DO_REC_AND_PLAY_ON_PRIMARY_DEVICE
|
#ifdef DO_REC_AND_PLAY_ON_PRIMARY_DEVICE
|
||||||
@ -781,27 +780,21 @@ bool cDvbDevice::ProvidesChannel(const cChannel *Channel, int Priority, bool *Ne
|
|||||||
|
|
||||||
bool cDvbDevice::SetChannelDevice(const cChannel *Channel, bool LiveView)
|
bool cDvbDevice::SetChannelDevice(const cChannel *Channel, bool LiveView)
|
||||||
{
|
{
|
||||||
bool IsEncrypted = Channel->Ca() > CACONFBASE && !ciHandler; // only LL-firmware can do non-live CA channels
|
|
||||||
|
|
||||||
bool DoTune = !dvbTuner->IsTunedTo(Channel);
|
bool DoTune = !dvbTuner->IsTunedTo(Channel);
|
||||||
|
|
||||||
bool TurnOffLivePIDs = HasDecoder()
|
bool TurnOffLivePIDs = HasDecoder()
|
||||||
&& (DoTune
|
&& (DoTune
|
||||||
|| 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() && !IsEncrypted && !DoTune
|
bool StartTransferMode = IsPrimaryDevice() && !DoTune
|
||||||
&& (LiveView && HasPid(Channel->Vpid() ? Channel->Vpid() : Channel->Apid(0)) && (pidHandles[ptVideo].pid != Channel->Vpid() || pidHandles[ptAudio].pid != Channel->Apid(0))// the PID is already set as DMX_PES_OTHER
|
&& (LiveView && HasPid(Channel->Vpid() ? Channel->Vpid() : Channel->Apid(0)) && (pidHandles[ptVideo].pid != Channel->Vpid() || pidHandles[ptAudio].pid != Channel->Apid(0))// the PID is already set as DMX_PES_OTHER
|
||||||
|| !LiveView && (pidHandles[ptVideo].pid == Channel->Vpid() || pidHandles[ptAudio].pid == Channel->Apid(0)) // a recording is going to shift the PIDs from DMX_PES_AUDIO/VIDEO to DMX_PES_OTHER
|
|| !LiveView && (pidHandles[ptVideo].pid == Channel->Vpid() || pidHandles[ptAudio].pid == Channel->Apid(0)) // 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 && LiveView;
|
||||||
&& (IsEncrypted // CA channels can only be decrypted in "live" mode
|
|
||||||
|| LiveView
|
|
||||||
);
|
|
||||||
|
|
||||||
#ifndef DO_MULTIPLE_RECORDINGS
|
#ifndef DO_MULTIPLE_RECORDINGS
|
||||||
TurnOffLivePIDs = TurnOnLivePIDs = true;
|
TurnOffLivePIDs = TurnOnLivePIDs = true;
|
||||||
@ -919,7 +912,7 @@ bool cDvbDevice::CanReplay(void) const
|
|||||||
if (Receiving())
|
if (Receiving())
|
||||||
return false;
|
return false;
|
||||||
#endif
|
#endif
|
||||||
return cDevice::CanReplay() && (Ca() <= MAXDEVICES || ciHandler); // with non-LL-firmware we can only replay if there is no CA recording going on
|
return cDevice::CanReplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cDvbDevice::SetPlayMode(ePlayMode PlayMode)
|
bool cDvbDevice::SetPlayMode(ePlayMode PlayMode)
|
||||||
|
Loading…
Reference in New Issue
Block a user