diff options
7 files changed, 62 insertions, 34 deletions
diff --git a/patches/patch-set/0001-Record-teletext-subtitles.patch b/patches/patch-set/0001-Record-teletext-subtitles.patch index 93f1d9c..3a44135 100644 --- a/patches/patch-set/0001-Record-teletext-subtitles.patch +++ b/patches/patch-set/0001-Record-teletext-subtitles.patch @@ -1,29 +1,43 @@ -From 16f2ef39cd891a2333d9127c279d06d5e7204577 Mon Sep 17 00:00:00 2001 +From f10d7d8469b1c50f32e884743034c14dd16fae76 Mon Sep 17 00:00:00 2001 From: etobi <git@e-tobi.net> Date: Fri, 12 Feb 2010 21:55:04 +0100 Subject: [PATCH 1/6] Record teletext subtitles --- - channels.c | 6 ++++++ + channels.c | 20 ++++++++++++++++++++ channels.h | 16 ++++++++++++++++ pat.c | 18 +++++++++++++++++- receiver.c | 2 +- remux.c | 29 +++++++++++++++++++++++++++++ remux.h | 3 +++ - 6 files changed, 72 insertions(+), 2 deletions(-) + 6 files changed, 86 insertions(+), 2 deletions(-) diff --git a/channels.c b/channels.c -index c14df19..08ddf3e 100644 +index c14df19..863eab0 100644 --- a/channels.c +++ b/channels.c -@@ -551,6 +551,12 @@ void cChannel::SetSubtitlingDescriptors(uchar *SubtitlingTypes, uint16_t *Compos +@@ -551,6 +551,26 @@ void cChannel::SetSubtitlingDescriptors(uchar *SubtitlingTypes, uint16_t *Compos } } +void cChannel::SetTeletextSubtitlePages(tTeletextSubtitlePage pages[], int numberOfPages) +{ -+ for (int i = 0; (i < numberOfPages) && (totalTtxtSubtitlePages < MAXTXTPAGES); i++) -+ teletextSubtitlePages[totalTtxtSubtitlePages++] = pages[i]; ++ int mod = CHANNELMOD_NONE; ++ if (totalTtxtSubtitlePages != numberOfPages) ++ mod |= CHANNELMOD_PIDS; ++ totalTtxtSubtitlePages = 0; ++ for (int i = 0; (i < numberOfPages) && (totalTtxtSubtitlePages < MAXTXTPAGES); i++) { ++ if (teletextSubtitlePages[totalTtxtSubtitlePages].ttxtMagazine != pages[i].ttxtMagazine || ++ teletextSubtitlePages[totalTtxtSubtitlePages].ttxtPage != pages[i].ttxtPage || ++ teletextSubtitlePages[totalTtxtSubtitlePages].ttxtType != pages[i].ttxtType || ++ strcmp(teletextSubtitlePages[totalTtxtSubtitlePages].ttxtLanguage, pages[i].ttxtLanguage)) { ++ mod |= CHANNELMOD_PIDS; ++ teletextSubtitlePages[totalTtxtSubtitlePages] = pages[i]; ++ } ++ totalTtxtSubtitlePages++; ++ } ++ modification |= mod; ++ Channels.SetModified(); +} + void cChannel::SetCaIds(const int *CaIds) diff --git a/patches/patch-set/0002-Added-setup-option-to-enable-teletext-subtitle-recor.patch b/patches/patch-set/0002-Added-setup-option-to-enable-teletext-subtitle-recor.patch index 61bad9b..eec38ad 100644 --- a/patches/patch-set/0002-Added-setup-option-to-enable-teletext-subtitle-recor.patch +++ b/patches/patch-set/0002-Added-setup-option-to-enable-teletext-subtitle-recor.patch @@ -1,4 +1,4 @@ -From 1bb47964b00e093abfb8690f26a287b5656cf5b2 Mon Sep 17 00:00:00 2001 +From 6a6936e383c7f77353cf3e0a8205972e706920b8 Mon Sep 17 00:00:00 2001 From: etobi <git@e-tobi.net> Date: Sat, 13 Feb 2010 14:42:30 +0100 Subject: [PATCH 2/6] Added setup option to enable teletext subtitle recording diff --git a/patches/patch-set/0003-Allow-manual-configuration-of-teletetxt-subtitle-pag.patch b/patches/patch-set/0003-Allow-manual-configuration-of-teletetxt-subtitle-pag.patch index 3ec3df4..2734f9a 100644 --- a/patches/patch-set/0003-Allow-manual-configuration-of-teletetxt-subtitle-pag.patch +++ b/patches/patch-set/0003-Allow-manual-configuration-of-teletetxt-subtitle-pag.patch @@ -1,27 +1,28 @@ -From de029cbbb03a024966fcf28dc21984485253ff39 Mon Sep 17 00:00:00 2001 +From f73da362d10a468e46da395428ad91eac758eea2 Mon Sep 17 00:00:00 2001 From: etobi <git@e-tobi.net> Date: Fri, 12 Feb 2010 21:56:41 +0100 Subject: [PATCH 3/6] Allow manual configuration of teletetxt subtitle pages in channels.conf --- - channels.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++--- + channels.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++---- channels.h | 1 + vdr.5 | 7 +++++++ - 3 files changed, 55 insertions(+), 3 deletions(-) + 3 files changed, 55 insertions(+), 4 deletions(-) diff --git a/channels.c b/channels.c -index 08ddf3e..7fb726e 100644 +index 863eab0..197588c 100644 --- a/channels.c +++ b/channels.c -@@ -553,6 +553,7 @@ void cChannel::SetSubtitlingDescriptors(uchar *SubtitlingTypes, uint16_t *Compos - - void cChannel::SetTeletextSubtitlePages(tTeletextSubtitlePage pages[], int numberOfPages) - { +@@ -556,7 +556,7 @@ void cChannel::SetTeletextSubtitlePages(tTeletextSubtitlePage pages[], int numbe + int mod = CHANNELMOD_NONE; + if (totalTtxtSubtitlePages != numberOfPages) + mod |= CHANNELMOD_PIDS; +- totalTtxtSubtitlePages = 0; + totalTtxtSubtitlePages = fixedTtxtSubtitlePages; - for (int i = 0; (i < numberOfPages) && (totalTtxtSubtitlePages < MAXTXTPAGES); i++) - teletextSubtitlePages[totalTtxtSubtitlePages++] = pages[i]; - } -@@ -764,11 +765,22 @@ cString cChannel::ToText(const cChannel *Channel) + for (int i = 0; (i < numberOfPages) && (totalTtxtSubtitlePages < MAXTXTPAGES); i++) { + if (teletextSubtitlePages[totalTtxtSubtitlePages].ttxtMagazine != pages[i].ttxtMagazine || + teletextSubtitlePages[totalTtxtSubtitlePages].ttxtPage != pages[i].ttxtPage || +@@ -778,11 +778,22 @@ cString cChannel::ToText(const cChannel *Channel) q += IntArrayToString(q, Channel->dpids, 10, Channel->dlangs); } *q = 0; @@ -45,7 +46,7 @@ index 08ddf3e..7fb726e 100644 } return buffer; } -@@ -802,8 +814,9 @@ bool cChannel::Parse(const char *s) +@@ -816,8 +827,9 @@ bool cChannel::Parse(const char *s) char *parambuf = NULL; char *vpidbuf = NULL; char *apidbuf = NULL; @@ -56,7 +57,7 @@ index 08ddf3e..7fb726e 100644 if (fields >= 9) { if (fields == 9) { // allow reading of old format -@@ -885,7 +898,37 @@ bool cChannel::Parse(const char *s) +@@ -899,7 +911,37 @@ bool cChannel::Parse(const char *s) } dpids[NumDpids] = 0; } @@ -95,7 +96,7 @@ index 08ddf3e..7fb726e 100644 if (caidbuf) { char *p = caidbuf; char *q; -@@ -922,6 +965,7 @@ bool cChannel::Parse(const char *s) +@@ -936,6 +978,7 @@ bool cChannel::Parse(const char *s) free(sourcebuf); free(vpidbuf); free(apidbuf); diff --git a/patches/patch-set/0004-Decrypt-teletext-stream.patch b/patches/patch-set/0004-Decrypt-teletext-stream.patch index fa32a71..c5c61da 100644 --- a/patches/patch-set/0004-Decrypt-teletext-stream.patch +++ b/patches/patch-set/0004-Decrypt-teletext-stream.patch @@ -1,4 +1,4 @@ -From 90b6894757afbbb2c42ba646b1603ce961750bd6 Mon Sep 17 00:00:00 2001 +From 1a66ece8a494d6205411f2aa266a7f02c1dc1205 Mon Sep 17 00:00:00 2001 From: etobi <git@e-tobi.net> Date: Sun, 14 Feb 2010 01:30:34 +0100 Subject: [PATCH 4/6] Decrypt teletext stream diff --git a/patches/patch-set/0005-Capture-teletext-subtitle-pages-from-PMT.patch b/patches/patch-set/0005-Capture-teletext-subtitle-pages-from-PMT.patch index 9f9b5b2..2f60564 100644 --- a/patches/patch-set/0005-Capture-teletext-subtitle-pages-from-PMT.patch +++ b/patches/patch-set/0005-Capture-teletext-subtitle-pages-from-PMT.patch @@ -1,4 +1,4 @@ -From 272acd168ae543146b1dd89553642b921e2cd443 Mon Sep 17 00:00:00 2001 +From d97e9b73e0de4c35242d1fffdd878173aeacbdda 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 diff --git a/patches/patch-set/0006-Ttxtsubs-plugin-hook.patch b/patches/patch-set/0006-Ttxtsubs-plugin-hook.patch index cbccdcd..2382144 100644 --- a/patches/patch-set/0006-Ttxtsubs-plugin-hook.patch +++ b/patches/patch-set/0006-Ttxtsubs-plugin-hook.patch @@ -1,4 +1,4 @@ -From 97b7829b83f2dbcd41d7deab106b59a4448b2eb0 Mon Sep 17 00:00:00 2001 +From edc638e1d66e20b5e8d7f2157c3f1b462f130f90 Mon Sep 17 00:00:00 2001 From: etobi <git@e-tobi.net> Date: Sat, 13 Feb 2010 00:28:21 +0100 Subject: [PATCH 6/6] Ttxtsubs plugin hook diff --git a/patches/vdr-1.7.12-ttxtsubs.patch b/patches/vdr-1.7.12-ttxtsubs.patch index 652ea73..2b32645 100644 --- a/patches/vdr-1.7.12-ttxtsubs.patch +++ b/patches/vdr-1.7.12-ttxtsubs.patch @@ -26,24 +26,37 @@ index 01408cb..b280030 100644 DEFINES += -DREMOTE_KBD endif diff --git a/channels.c b/channels.c -index c14df19..7fb726e 100644 +index c14df19..197588c 100644 --- a/channels.c +++ b/channels.c -@@ -551,6 +551,13 @@ void cChannel::SetSubtitlingDescriptors(uchar *SubtitlingTypes, uint16_t *Compos +@@ -551,6 +551,26 @@ void cChannel::SetSubtitlingDescriptors(uchar *SubtitlingTypes, uint16_t *Compos } } +void cChannel::SetTeletextSubtitlePages(tTeletextSubtitlePage pages[], int numberOfPages) +{ ++ int mod = CHANNELMOD_NONE; ++ if (totalTtxtSubtitlePages != numberOfPages) ++ mod |= CHANNELMOD_PIDS; + totalTtxtSubtitlePages = fixedTtxtSubtitlePages; -+ for (int i = 0; (i < numberOfPages) && (totalTtxtSubtitlePages < MAXTXTPAGES); i++) -+ teletextSubtitlePages[totalTtxtSubtitlePages++] = pages[i]; ++ for (int i = 0; (i < numberOfPages) && (totalTtxtSubtitlePages < MAXTXTPAGES); i++) { ++ if (teletextSubtitlePages[totalTtxtSubtitlePages].ttxtMagazine != pages[i].ttxtMagazine || ++ teletextSubtitlePages[totalTtxtSubtitlePages].ttxtPage != pages[i].ttxtPage || ++ teletextSubtitlePages[totalTtxtSubtitlePages].ttxtType != pages[i].ttxtType || ++ strcmp(teletextSubtitlePages[totalTtxtSubtitlePages].ttxtLanguage, pages[i].ttxtLanguage)) { ++ mod |= CHANNELMOD_PIDS; ++ teletextSubtitlePages[totalTtxtSubtitlePages] = pages[i]; ++ } ++ totalTtxtSubtitlePages++; ++ } ++ modification |= mod; ++ Channels.SetModified(); +} + void cChannel::SetCaIds(const int *CaIds) { if (caids[0] && caids[0] <= CA_USER_MAX) -@@ -758,11 +765,22 @@ cString cChannel::ToText(const cChannel *Channel) +@@ -758,11 +778,22 @@ cString cChannel::ToText(const cChannel *Channel) q += IntArrayToString(q, Channel->dpids, 10, Channel->dlangs); } *q = 0; @@ -67,7 +80,7 @@ index c14df19..7fb726e 100644 } return buffer; } -@@ -796,8 +814,9 @@ bool cChannel::Parse(const char *s) +@@ -796,8 +827,9 @@ bool cChannel::Parse(const char *s) char *parambuf = NULL; char *vpidbuf = NULL; char *apidbuf = NULL; @@ -78,7 +91,7 @@ index c14df19..7fb726e 100644 if (fields >= 9) { if (fields == 9) { // allow reading of old format -@@ -879,7 +898,37 @@ bool cChannel::Parse(const char *s) +@@ -879,7 +911,37 @@ bool cChannel::Parse(const char *s) } dpids[NumDpids] = 0; } @@ -117,7 +130,7 @@ index c14df19..7fb726e 100644 if (caidbuf) { char *p = caidbuf; char *q; -@@ -916,6 +965,7 @@ bool cChannel::Parse(const char *s) +@@ -916,6 +978,7 @@ bool cChannel::Parse(const char *s) free(sourcebuf); free(vpidbuf); free(apidbuf); |