1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

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 fixing a buffer overflow in cFont::Bidi()
for avoiding an unecessary call to Recordings.ResetResume() for avoiding an unecessary call to Recordings.ResetResume()
for debugging a problem in handling the bitmap color depth for scaled subtitles 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> Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the 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 - Avoiding an unecessary call to Recordings.ResetResume() (thanks to Reinhard
Nissl). 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 - Fixed cString's operator=(const char *String) in case the given string is the
same as the existing one (thanks to Dirk Leber). same as the existing one (thanks to Dirk Leber).
@ -6620,3 +6620,4 @@ Video Disk Recorder Revision History
Makefile accordingly by changing "$^" to "`ls $^`". Makefile accordingly by changing "$^" to "`ls $^`".
- The primary device is now only avoided for recording if it is an old SD full - 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(). 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 * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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" #include "ci.h"
@ -1894,9 +1894,9 @@ void cCamSlot::SetPid(int Pid, bool Active)
} }
// see ISO/IEC 13818-1 // see ISO/IEC 13818-1
#define STREAM_TYPE_VIDEO 0x02 #define STREAM_TYPE_VIDEO 0x02
#define STREAM_TYPE_AUDIO 0x04 #define STREAM_TYPE_AUDIO 0x04
#define STREAM_TYPE_DOLBY 0x06 #define STREAM_TYPE_PRIVATE 0x06
void cCamSlot::AddChannel(const cChannel *Channel) void cCamSlot::AddChannel(const cChannel *Channel)
{ {
@ -1910,7 +1910,9 @@ void cCamSlot::AddChannel(const cChannel *Channel)
for (const int *Apid = Channel->Apids(); *Apid; Apid++) for (const int *Apid = Channel->Apids(); *Apid; Apid++)
AddPid(Channel->Sid(), *Apid, STREAM_TYPE_AUDIO); AddPid(Channel->Sid(), *Apid, STREAM_TYPE_AUDIO);
for (const int *Dpid = Channel->Dpids(); *Dpid; Dpid++) 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++) for (const int *Apid = Channel->Apids(); *Apid; Apid++)
CaPmt.AddPid(*Apid, STREAM_TYPE_AUDIO); CaPmt.AddPid(*Apid, STREAM_TYPE_AUDIO);
for (const int *Dpid = Channel->Dpids(); *Dpid; Dpid++) 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); cas->SendPMT(&CaPmt);
cTimeMs Timeout(QUERY_REPLY_TIMEOUT); cTimeMs Timeout(QUERY_REPLY_TIMEOUT);
do { do {