diff options
Diffstat (limited to 'patches/patch-set.1.7.20/0005-Capture-teletext-subtitle-pages-from-PMT.patch')
-rw-r--r-- | patches/patch-set.1.7.20/0005-Capture-teletext-subtitle-pages-from-PMT.patch | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/patches/patch-set.1.7.20/0005-Capture-teletext-subtitle-pages-from-PMT.patch b/patches/patch-set.1.7.20/0005-Capture-teletext-subtitle-pages-from-PMT.patch deleted file mode 100644 index acb5725..0000000 --- a/patches/patch-set.1.7.20/0005-Capture-teletext-subtitle-pages-from-PMT.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 8ffcf9b992ec861604034b312ddb8dd14358bc60 Mon Sep 17 00:00:00 2001 -From: etobi <git@e-tobi.net> -Date: Fri, 12 Feb 2010 22:06:19 +0100 -Subject: [PATCH 5/6] Capture teletext subtitle pages from PMT - ---- - remux.c | 24 ++++++++++++++++++++++++ - remux.h | 5 +++++ - 2 files changed, 29 insertions(+), 0 deletions(-) - -diff --git a/remux.c b/remux.c -index 11e34c7..0c1b361 100644 ---- a/remux.c -+++ b/remux.c -@@ -439,6 +439,7 @@ void cPatPmtParser::Reset(void) - pmtPid = -1; - vpid = vtype = 0; - ppid = 0; -+ tpid = 0; - } - - void cPatPmtParser::ParsePat(const uchar *Data, int Length) -@@ -524,6 +525,7 @@ void cPatPmtParser::ParsePmt(const uchar *Data, int Length) - int NumSpids = 0; - vpid = vtype = 0; - ppid = 0; -+ tpid = 0; - apids[0] = 0; - dpids[0] = 0; - spids[0] = 0; -@@ -628,6 +630,28 @@ void cPatPmtParser::ParsePmt(const uchar *Data, int Length) - spids[NumSpids]= 0; - } - break; -+ case SI::TeletextDescriptorTag: { -+ dbgpatpmt(" teletext"); -+ tpid = stream.getPid(); -+ SI::TeletextDescriptor *sd = (SI::TeletextDescriptor *)d; -+ SI::TeletextDescriptor::Teletext ttxt; -+ if (totalTtxtSubtitlePages < MAXTXTPAGES) { -+ for (SI::Loop::Iterator it; sd->teletextLoop.getNext(ttxt, it); ) { -+ bool isSubtitlePage = (ttxt.getTeletextType() == 0x02) || (ttxt.getTeletextType() == 0x05); -+ if (isSubtitlePage && ttxt.languageCode[0]) { -+ dbgpatpmt(" '%s:%x.%x'", ttxt.languageCode, ttxt.getTeletextMagazineNumber(), ttxt.getTeletextPageNumber()); -+ strn0cpy(teletextSubtitlePages[totalTtxtSubtitlePages].ttxtLanguage, I18nNormalizeLanguageCode(ttxt.languageCode), MAXLANGCODE1); -+ teletextSubtitlePages[totalTtxtSubtitlePages].ttxtPage = ttxt.getTeletextPageNumber(); -+ teletextSubtitlePages[totalTtxtSubtitlePages].ttxtMagazine = ttxt.getTeletextMagazineNumber(); -+ teletextSubtitlePages[totalTtxtSubtitlePages].ttxtType = ttxt.getTeletextType(); -+ totalTtxtSubtitlePages++; -+ if (totalTtxtSubtitlePages >= MAXTXTPAGES) -+ break; -+ } -+ } -+ } -+ } -+ break; - case SI::ISO639LanguageDescriptorTag: { - SI::ISO639LanguageDescriptor *ld = (SI::ISO639LanguageDescriptor *)d; - dbgpatpmt(" '%s'", ld->languageCode); -diff --git a/remux.h b/remux.h -index 492044c..23fb645 100644 ---- a/remux.h -+++ b/remux.h -@@ -220,6 +220,7 @@ private: - int vpid; - int ppid; - int vtype; -+ int tpid; - int apids[MAXAPIDS + 1]; // list is zero-terminated - int atypes[MAXAPIDS + 1]; // list is zero-terminated - char alangs[MAXAPIDS][MAXLANGCODE2]; -@@ -266,6 +267,9 @@ public: - int Vtype(void) const { return vtype; } - ///< Returns the video stream type as defined by the current PMT, or 0 if no video - ///< stream type has been detected, yet. -+ int Tpid(void) { return tpid; } -+ ///< Returns the teletext pid as defined by the current PMT, or 0 if no teletext -+ ///< pid has been detected, yet. - const int *Apids(void) const { return apids; } - const int *Dpids(void) const { return dpids; } - const int *Spids(void) const { return spids; } -@@ -280,6 +284,7 @@ public: - uchar SubtitlingType(int i) const { return (0 <= i && i < MAXSPIDS) ? subtitlingTypes[i] : uchar(0); } - uint16_t CompositionPageId(int i) const { return (0 <= i && i < MAXSPIDS) ? compositionPageIds[i] : uint16_t(0); } - uint16_t AncillaryPageId(int i) const { return (0 <= i && i < MAXSPIDS) ? ancillaryPageIds[i] : uint16_t(0); } -+ const tTeletextSubtitlePage* TeletextSubtitlePages() const { return teletextSubtitlePages; } - }; - - // TS to PES converter: --- -1.7.5.4 - |