Subtitle PIDs are now also decrypted

This commit is contained in:
Klaus Schmidinger 2011-05-21 15:24:10 +02:00
parent 8cb8e6333a
commit 80e3c06fa7
3 changed files with 13 additions and 7 deletions

View File

@ -1269,6 +1269,7 @@ Reinhard Nissl <rnissl@gmx.de>
for fixing a buffer overflow in cFont::Bidi()
for avoiding an unecessary call to Recordings.ResetResume()
for debugging a problem in handling the bitmap color depth for scaled subtitles
for making subtitle PIDs be decrypted
Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the

View File

@ -6607,7 +6607,7 @@ Video Disk Recorder Revision History
- Avoiding an unecessary call to Recordings.ResetResume() (thanks to Reinhard
Nissl).
2011-05-15: Version 1.7.19
2011-05-21: Version 1.7.19
- Fixed cString's operator=(const char *String) in case the given string is the
same as the existing one (thanks to Dirk Leber).
@ -6620,3 +6620,4 @@ Video Disk Recorder Revision History
Makefile accordingly by changing "$^" to "`ls $^`".
- The primary device is now only avoided for recording if it is an old SD full
featured card. This is done through the new function cDevice::AvoidRecording().
- Subtitle PIDs are now also decrypted (thanks to Reinhard Nissl).

16
ci.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: ci.c 2.6 2010/01/02 10:39:50 kls Exp $
* $Id: ci.c 2.7 2011/05/21 15:21:33 kls Exp $
*/
#include "ci.h"
@ -1894,9 +1894,9 @@ void cCamSlot::SetPid(int Pid, bool Active)
}
// see ISO/IEC 13818-1
#define STREAM_TYPE_VIDEO 0x02
#define STREAM_TYPE_AUDIO 0x04
#define STREAM_TYPE_DOLBY 0x06
#define STREAM_TYPE_VIDEO 0x02
#define STREAM_TYPE_AUDIO 0x04
#define STREAM_TYPE_PRIVATE 0x06
void cCamSlot::AddChannel(const cChannel *Channel)
{
@ -1910,7 +1910,9 @@ void cCamSlot::AddChannel(const cChannel *Channel)
for (const int *Apid = Channel->Apids(); *Apid; Apid++)
AddPid(Channel->Sid(), *Apid, STREAM_TYPE_AUDIO);
for (const int *Dpid = Channel->Dpids(); *Dpid; Dpid++)
AddPid(Channel->Sid(), *Dpid, STREAM_TYPE_DOLBY);
AddPid(Channel->Sid(), *Dpid, STREAM_TYPE_PRIVATE);
for (const int *Spid = Channel->Spids(); *Spid; Spid++)
AddPid(Channel->Sid(), *Spid, STREAM_TYPE_PRIVATE);
}
}
@ -1931,7 +1933,9 @@ bool cCamSlot::CanDecrypt(const cChannel *Channel)
for (const int *Apid = Channel->Apids(); *Apid; Apid++)
CaPmt.AddPid(*Apid, STREAM_TYPE_AUDIO);
for (const int *Dpid = Channel->Dpids(); *Dpid; Dpid++)
CaPmt.AddPid(*Dpid, STREAM_TYPE_DOLBY);
CaPmt.AddPid(*Dpid, STREAM_TYPE_PRIVATE);
for (const int *Spid = Channel->Spids(); *Spid; Spid++)
CaPmt.AddPid(*Spid, STREAM_TYPE_PRIVATE);
cas->SendPMT(&CaPmt);
cTimeMs Timeout(QUERY_REPLY_TIMEOUT);
do {