summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2009-12-31 15:35:37 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2009-12-31 15:35:37 +0100
commit3d7338de5a2e93431296ecfed30821e007d3419b (patch)
tree6c658162ac3b3dd0b1d6777efc0598a670cba5a9
parenta8260204c3e66fe12173f7232feb90ece61a59e8 (diff)
downloadvdr-3d7338de5a2e93431296ecfed30821e007d3419b.tar.gz
vdr-3d7338de5a2e93431296ecfed30821e007d3419b.tar.bz2
cPatPmtParser now also stores the audio stream types
-rw-r--r--HISTORY1
-rw-r--r--remux.c6
-rw-r--r--remux.h6
3 files changed, 11 insertions, 2 deletions
diff --git a/HISTORY b/HISTORY
index 56004cd1..72df81f5 100644
--- a/HISTORY
+++ b/HISTORY
@@ -6233,3 +6233,4 @@ Video Disk Recorder Revision History
- cDevice::AddPid() now stores the stream type of the given pid (thanks to Andreas
Regel).
- Added cFont::FontName() and cFont::Size() (thanks to Andreas Regel).
+- cPatPmtParser now also stores the audio stream types.
diff --git a/remux.c b/remux.c
index 712ce3b7..c8610327 100644
--- a/remux.c
+++ b/remux.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: remux.c 2.36 2009/12/29 15:46:12 kls Exp $
+ * $Id: remux.c 2.37 2009/12/31 15:35:37 kls Exp $
*/
#include "remux.h"
@@ -489,6 +489,8 @@ void cPatPmtParser::ParsePmt(const uchar *Data, int Length)
apids[0] = 0;
dpids[0] = 0;
spids[0] = 0;
+ atypes[0] = 0;
+ dtypes[0] = 0;
SI::PMT::Stream stream;
for (SI::Loop::Iterator it; Pmt.streamLoop.getNext(stream, it); ) {
dbgpatpmt(" stream type = %02X, pid = %d", stream.getStreamType(), stream.getPid());
@@ -504,6 +506,7 @@ void cPatPmtParser::ParsePmt(const uchar *Data, int Length)
{
if (NumApids < MAXAPIDS) {
apids[NumApids] = stream.getPid();
+ atypes[NumApids] = stream.getStreamType();
*alangs[NumApids] = 0;
SI::Descriptor *d;
for (SI::Loop::Iterator it; (d = stream.streamDescriptors.getNext(it)); ) {
@@ -593,6 +596,7 @@ void cPatPmtParser::ParsePmt(const uchar *Data, int Length)
if (dpid) {
if (NumDpids < MAXDPIDS) {
dpids[NumDpids] = dpid;
+ dtypes[NumDpids] = stream.getStreamType();
strn0cpy(dlangs[NumDpids], lang, sizeof(dlangs[NumDpids]));
if (updatePrimaryDevice)
cDevice::PrimaryDevice()->SetAvailableTrack(ttDolby, NumDpids, dpid, lang);
diff --git a/remux.h b/remux.h
index eee7d9ec..492395a1 100644
--- a/remux.h
+++ b/remux.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: remux.h 2.22 2009/12/24 12:04:47 kls Exp $
+ * $Id: remux.h 2.23 2009/12/31 15:35:37 kls Exp $
*/
#ifndef __REMUX_H
@@ -215,8 +215,10 @@ private:
int vpid;
int vtype;
int apids[MAXAPIDS + 1]; // list is zero-terminated
+ int atypes[MAXAPIDS + 1]; // list is zero-terminated
char alangs[MAXAPIDS][MAXLANGCODE2];
int dpids[MAXDPIDS + 1]; // list is zero-terminated
+ int dtypes[MAXDPIDS + 1]; // list is zero-terminated
char dlangs[MAXDPIDS][MAXLANGCODE2];
int spids[MAXSPIDS + 1]; // list is zero-terminated
char slangs[MAXSPIDS][MAXLANGCODE2];
@@ -259,6 +261,8 @@ public:
int Apid(int i) const { return (0 <= i && i < MAXAPIDS) ? apids[i] : 0; }
int Dpid(int i) const { return (0 <= i && i < MAXDPIDS) ? dpids[i] : 0; }
int Spid(int i) const { return (0 <= i && i < MAXSPIDS) ? spids[i] : 0; }
+ int Atype(int i) const { return (0 <= i && i < MAXAPIDS) ? atypes[i] : 0; }
+ int Dtype(int i) const { return (0 <= i && i < MAXDPIDS) ? dtypes[i] : 0; }
const char *Alang(int i) const { return (0 <= i && i < MAXAPIDS) ? alangs[i] : ""; }
const char *Dlang(int i) const { return (0 <= i && i < MAXDPIDS) ? dlangs[i] : ""; }
const char *Slang(int i) const { return (0 <= i && i < MAXSPIDS) ? slangs[i] : ""; }