summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2014-01-04 11:17:24 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2014-01-04 11:17:24 +0100
commit7cbced0c124a2d03290d82953c09f199602b1f7f (patch)
tree52ef4733bed92cf9d834f359ecb769e97d14ae69
parenta84defe86f2331d42c06abeba17fd4aebe359d94 (diff)
downloadvdr-7cbced0c124a2d03290d82953c09f199602b1f7f.tar.gz
vdr-7cbced0c124a2d03290d82953c09f199602b1f7f.tar.bz2
Made GetCaDescriptors() and GetCaPids() return all values if CaSystemIds is 0xFFFF
-rw-r--r--pat.c6
-rw-r--r--pat.h8
2 files changed, 8 insertions, 6 deletions
diff --git a/pat.c b/pat.c
index 9f5f12de..5246e074 100644
--- a/pat.c
+++ b/pat.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: pat.c 3.1 2014/01/01 12:02:39 kls Exp $
+ * $Id: pat.c 3.2 2014/01/04 11:17:24 kls Exp $
*/
#include "pat.h"
@@ -167,7 +167,7 @@ int cCaDescriptors::GetCaDescriptors(const int *CaSystemIds, int BufSize, uchar
if (EsPid < 0 || d->EsPid() == EsPid) {
const int *caids = CaSystemIds;
do {
- if (d->CaSystem() == *caids) {
+ if (*caids == 0xFFFF || d->CaSystem() == *caids) {
if (length + d->Length() <= BufSize) {
memcpy(Data + length, d->Data(), d->Length());
length += d->Length();
@@ -192,7 +192,7 @@ int cCaDescriptors::GetCaPids(const int *CaSystemIds, int BufSize, int *Pids)
for (cCaDescriptor *d = caDescriptors.First(); d; d = caDescriptors.Next(d)) {
const int *caids = CaSystemIds;
do {
- if (d->CaSystem() == *caids) {
+ if (*caids == 0xFFFF || d->CaSystem() == *caids) {
if (numPids + 1 < BufSize) {
Pids[numPids++] = d->CaPid();
Pids[numPids] = 0;
diff --git a/pat.h b/pat.h
index b45e720e..7f04575e 100644
--- a/pat.h
+++ b/pat.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: pat.h 3.1 2013/12/30 11:32:40 kls Exp $
+ * $Id: pat.h 3.2 2014/01/04 11:16:48 kls Exp $
*/
#ifndef __PAT_H
@@ -36,7 +36,8 @@ int GetCaDescriptors(int Source, int Transponder, int ServiceId, const int *CaSy
///< Gets all CA descriptors for a given channel.
///< Copies all available CA descriptors for the given Source, Transponder and ServiceId
///< into the provided buffer at Data (at most BufSize bytes). Only those CA descriptors
- ///< are copied that match one of the given CA system IDs.
+ ///< are copied that match one of the given CA system IDs (or all of them, if CaSystemIds
+ ///< is 0xFFFF).
///< Returns the number of bytes copied into Data (0 if no CA descriptors are
///< available), or -1 if BufSize was too small to hold all CA descriptors.
@@ -44,7 +45,8 @@ int GetCaPids(int Source, int Transponder, int ServiceId, const int *CaSystemIds
///< Gets all CA pids for a given channel.
///< Copies all available CA pids from the CA descriptors for the given Source, Transponder and ServiceId
///< into the provided buffer at Pids (at most BufSize - 1 entries, the list will be zero-terminated).
- ///< Only the CA pids of those CA descriptors are copied that match one of the given CA system IDs.
+ ///< Only the CA pids of those CA descriptors are copied that match one of the given CA system IDs
+ ///< (or all of them, if CaSystemIds is 0xFFFF).
///< Returns the number of pids copied into Pids (0 if no CA descriptors are
///< available), or -1 if BufSize was too small to hold all CA pids.