From 3d7338de5a2e93431296ecfed30821e007d3419b Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Thu, 31 Dec 2009 15:35:37 +0100 Subject: cPatPmtParser now also stores the audio stream types --- HISTORY | 1 + remux.c | 6 +++++- remux.h | 6 +++++- 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] : ""; } -- cgit v1.2.3