From 80e3c06fa7fee1df093f72ef01e015ea94157094 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 21 May 2011 15:24:10 +0200 Subject: [PATCH] Subtitle PIDs are now also decrypted --- CONTRIBUTORS | 1 + HISTORY | 3 ++- ci.c | 16 ++++++++++------ 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index d51508a6..d7011f00 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -1269,6 +1269,7 @@ Reinhard Nissl 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 for reporting freezing replay if a timer starts while in Transfer Mode from the diff --git a/HISTORY b/HISTORY index 5d9796cf..74f021d1 100644 --- a/HISTORY +++ b/HISTORY @@ -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). diff --git a/ci.c b/ci.c index 6c7b0310..59d62efe 100644 --- a/ci.c +++ b/ci.c @@ -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 {