diff options
author | Tobias Grimm <tobias@e-tobi.loc> | 2008-12-13 10:57:06 +0100 |
---|---|---|
committer | Tobias Grimm <tobias@e-tobi.loc> | 2008-12-13 10:57:06 +0100 |
commit | 88012c106b8310507e872c72544f423433bac5d2 (patch) | |
tree | cf4f58d87b296cf7ed2d269725ae83f8e9db68f0 | |
parent | 00bd2927feef683ce1630c0614fbe91cd0ea4e93 (diff) | |
download | vdr-plugin-ttxtsubs-0.0.4b.tar.gz vdr-plugin-ttxtsubs-0.0.4b.tar.bz2 |
- Fix patch for VDR 1.2.5v0.0.4b
- Minor bug fix for dxr3 display
-rw-r--r-- | HISTORY | 4 | ||||
-rw-r--r-- | README | 20 | ||||
-rw-r--r-- | VDR.1.1.25.patch | 250 | ||||
-rw-r--r-- | VDR.patch | 80 | ||||
-rw-r--r-- | VDR.upgrade-patch | 23 | ||||
-rw-r--r-- | ttxtsubs.c | 4 | ||||
-rw-r--r-- | ttxtsubsdisplay.c | 1 |
7 files changed, 53 insertions, 329 deletions
@@ -1,6 +1,10 @@ VDR Plugin 'ttxtsubs' Revision History -------------------------------------- +2003-09-26: Version 0.0.4b +- Fix patch for VDR 1.2.5 +- Minor bug fix for dxr3 display + 2003-07-19: Version 0.0.4 - Release @@ -62,7 +62,7 @@ reworked a few times. Installation: -This plugin is for VDR 1.2.1. It currently needs a few hooks in, and +This plugin is for VDR 1.2.5. It currently needs a few hooks in, and changes to, VDR to work. A patch file is included. The patches should be harmless if you don't have the plugin loaded, so even if you patch VDR and later decide not to use this plugin you don't necessarily have @@ -72,14 +72,14 @@ other version of VDR, but don't count on it. Steps: As usual, unpack the plugin and make a link: - cd ..../vdr-1.2.1/PLUGINS/src - tar zxvf ..../vdr-ttxtsubs-0.0.3.tgz - ln -s ttxtsubs-0.0.3 ttxtsubs + cd ..../vdr-1.2.5/PLUGINS/src + tar zxvf ..../vdr-ttxtsubs-0.0.4b.tgz + ln -s ttxtsubs-0.0.4b ttxtsubs Go back to your VDR directory and install the patches and the new files: cd ../../ - cp PLUGINS/src/ttxtsubs-0.0.3/vdrttxtsubshooks.[ch] . - patch -b < PLUGINS/src/ttxtsubs-0.0.3/VDR.patch + cp PLUGINS/src/ttxtsubs-0.0.4b/vdrttxtsubshooks.[ch] . + patch -b < PLUGINS/src/ttxtsubs-0.0.4b/VDR.patch Rebuild VDR: make clean @@ -87,12 +87,4 @@ Rebuild VDR: make make plugins - -NOTE: If you have installed an earlier version of the patch, you -need to upgrade it. If so, do this: - cd ..../vdr-1.2.1 - patch -b < PLUGINS/src/ttxtsubs-0.0.3/VDR.upgrade-patch - make - - Now you should be able to start VDR with "-P ttxtsubs". diff --git a/VDR.1.1.25.patch b/VDR.1.1.25.patch deleted file mode 100644 index 3c825c3..0000000 --- a/VDR.1.1.25.patch +++ /dev/null @@ -1,250 +0,0 @@ -diff -upr ./DIST/vdr-1.1.25/Makefile ./Makefile ---- ./DIST/vdr-1.1.25/Makefile 2003-01-06 13:28:09.000000000 +0100 -+++ ./Makefile 2003-03-07 03:19:33.000000000 +0100 -@@ -36,7 +36,8 @@ OBJS = audio.o channels.o ci.o config.o - dvbplayer.o dvbspu.o eit.o eitscan.o font.o i18n.o interface.o keys.o\ - lirc.o menu.o menuitems.o osdbase.o osd.o player.o plugin.o rcu.o\ - receiver.o recorder.o recording.o remote.o remux.o ringbuffer.o sources.o\ -- spu.o status.o svdrp.o thread.o timers.o tools.o transfer.o vdr.o videodir.o -+ spu.o status.o svdrp.o thread.o timers.o tools.o transfer.o vdr.o videodir.o\ -+ vdrttxtsubshooks.o - - OSDFONT = -adobe-helvetica-medium-r-normal--23-*-100-100-p-*-iso8859-1 - FIXFONT = -adobe-courier-bold-r-normal--25-*-100-100-m-*-iso8859-1 -diff -upr ./DIST/vdr-1.1.25/dvbplayer.c ./dvbplayer.c ---- ./DIST/vdr-1.1.25/dvbplayer.c 2003-02-15 11:38:59.000000000 +0100 -+++ ./dvbplayer.c 2003-03-07 03:52:55.000000000 +0100 -@@ -13,6 +13,7 @@ - #include "ringbuffer.h" - #include "thread.h" - #include "tools.h" -+#include "vdrttxtsubshooks.h" - - // --- cBackTrace ---------------------------------------------------------- - -@@ -318,6 +319,12 @@ void cDvbPlayer::StripAudioPackets(uchar - int l = b[i + 4] * 256 + b[i + 5] + 6; - switch (c) { - case 0xBD: // dolby -+#ifdef VDRTTXTSUBSHOOKS -+ if (b[i + 8] == 0x24 && b[i + 45] >= 0x10 && b[i + 45] < 0x20) { -+ break; // run these through the ring buffer to get somewhat correct -+ // timing for the subtitles -+ } else -+#endif - if (Except) - PlayAudio(&b[i], l); - // continue with deleting the data - otherwise it disturbs DVB replay -@@ -347,6 +354,40 @@ void cDvbPlayer::StripAudioPackets(uchar - } - } - -+#ifdef VDRTTXTSUBSHOOKS -+static void StripTtxtPackets(uchar *b, int Length) -+{ -+ for (int i = 0; i < Length - 6; i++) { -+ if (b[i] == 0x00 && b[i + 1] == 0x00 && b[i + 2] == 0x01) { -+ uchar c = b[i + 3]; -+ int l = b[i + 4] * 256 + b[i + 5] + 6; -+ switch (c) { -+ case 0xBD: // dolby -+ { -+ if (b[i + 8] == 0x24 && b[i + 45] >= 0x10 && b[i + 45] < 0x20) { -+ // EBU Teletext data, ETSI EN 300 472 -+ cVDRTtxtsubsHookListener::Hook()->PlayerTeletextData(&b[i], l); -+ } -+ // continue with deleting the data - otherwise it disturbs DVB replay -+ int n = l; -+ for (int j = i; j < Length && n--; j++) -+ b[j] = 0x00; -+ break; -+ } -+ default: -+ break; -+ } -+ if (l) -+ i += l - 1; // the loop increments, too! -+ } -+ /*XXX -+ else -+ esyslog("ERROR: broken packet header"); -+ XXX*/ -+ } -+} -+#endif -+ - bool cDvbPlayer::NextFile(uchar FileNumber, int FileOffset) - { - if (FileNumber > 0) -@@ -514,6 +555,11 @@ void cDvbPlayer::Action(void) - p = playFrame->Data(); - pc = playFrame->Count(); - } -+#ifdef VDRTTXTSUBSHOOKS -+ // pick out the teletext packets here -+ if(p) -+ StripTtxtPackets((uchar *) p, pc); -+#endif - if (p) { - int w = PlayVideo(p, pc); - if (w > 0) { -diff -upr ./DIST/vdr-1.1.25/menu.c ./menu.c ---- ./DIST/vdr-1.1.25/menu.c 2003-02-09 13:55:38.000000000 +0100 -+++ ./menu.c 2003-03-07 03:38:14.000000000 +0100 -@@ -2931,8 +2931,18 @@ cRecordControl::cRecordControl(cDevice * - fileName = strdup(Recording.FileName()); - cRecordingUserCommand::InvokeCommand(RUC_BEFORERECORDING, fileName); - const cChannel *ch = timer->Channel(); -+#ifdef VDRTTXTSUBSHOOKS -+ cTtxtSubsRecorderBase *subsRecorder = cVDRTtxtsubsHookListener::Hook() -+ ->NewTtxtSubsRecorder(device, ch); -+ recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2(), subsRecorder); -+#else - recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2()); -+#endif - if (device->AttachReceiver(recorder)) { -+#ifdef VDRTTXTSUBSHOOKS -+ if(subsRecorder) -+ subsRecorder->DeviceAttach(); -+#endif - Recording.WriteSummary(); - cStatus::MsgRecording(device, Recording.Name()); - } -diff -upr ./DIST/vdr-1.1.25/menu.h ./menu.h ---- ./DIST/vdr-1.1.25/menu.h 2003-01-12 15:54:05.000000000 +0100 -+++ ./menu.h 2003-03-07 03:33:28.000000000 +0100 -@@ -14,6 +14,7 @@ - #include "device.h" - #include "osd.h" - #include "dvbplayer.h" -+#include "vdrttxtsubshooks.h" - #include "recorder.h" - #include "recording.h" - -diff -upr ./DIST/vdr-1.1.25/osd.c ./osd.c ---- ./DIST/vdr-1.1.25/osd.c 2002-12-08 14:17:13.000000000 +0100 -+++ ./osd.c 2003-03-07 03:55:32.000000000 +0100 -@@ -12,6 +12,7 @@ - #include "device.h" - #include "i18n.h" - #include "status.h" -+#include "vdrttxtsubshooks.h" - - // --- cOsd ------------------------------------------------------------------ - -@@ -96,6 +97,9 @@ void cOsd::Open(int w, int h) - d *= lineHeight; - int x = (720 - w + charWidth) / 2; //TODO PAL vs. NTSC??? - int y = (576 - Setup.OSDheight * lineHeight) / 2 + d; -+#ifdef VDRTTXTSUBSHOOKS -+ cVDRTtxtsubsHookListener::Hook()->HideOSD(); -+#endif - //XXX - osd = OpenRaw(x, y); - //XXX TODO this should be transferred to the places where the individual windows are requested (there's too much detailed knowledge here!) -@@ -136,6 +140,9 @@ void cOsd::Close(void) - delete osd; - osd = NULL; - #endif -+#ifdef VDRTTXTSUBSHOOKS -+ cVDRTtxtsubsHookListener::Hook()->ShowOSD(); -+#endif - } - - void cOsd::Clear(void) -diff -upr ./DIST/vdr-1.1.25/recorder.c ./recorder.c ---- ./DIST/vdr-1.1.25/recorder.c 2003-01-25 17:23:36.000000000 +0100 -+++ ./recorder.c 2003-03-07 03:54:10.000000000 +0100 -@@ -10,6 +10,8 @@ - #include <stdarg.h> - #include <stdio.h> - #include <unistd.h> -+#include <stdint.h> -+#include "vdrttxtsubshooks.h" - #include "recorder.h" - - // The size of the array used to buffer video data: -@@ -19,7 +21,11 @@ - #define MINFREEDISKSPACE (512) // MB - #define DISKCHECKINTERVAL 100 // seconds - -+#ifdef VDRTTXTSUBSHOOKS -+cRecorder::cRecorder(const char *FileName, int Ca, int Priority, int VPid, int APid1, int APid2, int DPid1, int DPid2, cTtxtSubsRecorderBase *tsr) -+#else - cRecorder::cRecorder(const char *FileName, int Ca, int Priority, int VPid, int APid1, int APid2, int DPid1, int DPid2) -+#endif - :cReceiver(Ca, Priority, 5, VPid, APid1, APid2, DPid1, DPid2) - { - ringBuffer = NULL; -@@ -30,6 +36,9 @@ cRecorder::cRecorder(const char *FileNam - fileSize = 0; - active = false; - lastDiskSpaceCheck = time(NULL); -+#ifdef VDRTTXTSUBSHOOKS -+ ttxtSubsRecorder = tsr; -+#endif - isyslog("record %s", FileName); - - // Create directories if necessary: -@@ -57,6 +66,10 @@ cRecorder::cRecorder(const char *FileNam - cRecorder::~cRecorder() - { - Detach(); -+#ifdef VDRTTXTSUBSHOOKS -+ if(ttxtSubsRecorder) -+ delete ttxtSubsRecorder; -+#endif - delete index; - delete fileName; - delete remux; -@@ -130,6 +143,19 @@ void cRecorder::Action(void) - break; - } - fileSize += Result; -+#ifdef VDRTTXTSUBSHOOKS -+ // not sure if the pictureType test is needed, but it seems we can get -+ // incomplete pes packets from remux if we are not getting pictures? -+ if (ttxtSubsRecorder && pictureType != NO_PICTURE) { -+ uint8_t *subsp; -+ size_t len; -+ if(ttxtSubsRecorder->GetPacket(&subsp, &len)) { -+ safe_write(recordFile, subsp, len); -+ fileSize += len; -+ // fprintf(stderr, "cRecorder::Action: Wrote ttxtsubs data len %d\n", len); // XXX -+ } -+ } -+#endif - } - else - break; -diff -upr ./DIST/vdr-1.1.25/recorder.h ./recorder.h ---- ./DIST/vdr-1.1.25/recorder.h 2002-06-08 11:35:03.000000000 +0200 -+++ ./recorder.h 2003-03-07 03:50:33.000000000 +0100 -@@ -15,6 +15,7 @@ - #include "remux.h" - #include "ringbuffer.h" - #include "thread.h" -+#include "vdrttxtsubshooks.h" - - class cRecorder : public cReceiver, cThread { - private: -@@ -29,12 +30,19 @@ private: - time_t lastDiskSpaceCheck; - bool RunningLowOnDiskSpace(void); - bool NextFile(void); -+#ifdef VDRTTXTSUBSHOOKS -+ cTtxtSubsRecorderBase *ttxtSubsRecorder; -+#endif - protected: - virtual void Activate(bool On); - virtual void Receive(uchar *Data, int Length); - virtual void Action(void); - public: -+#ifdef VDRTTXTSUBSHOOKS -+ cRecorder(const char *FileName, int Ca, int Priority, int VPid, int APid1, int APid2, int DPid1, int DPid2, cTtxtSubsRecorderBase *tsr); -+#else - cRecorder(const char *FileName, int Ca, int Priority, int VPid, int APid1, int APid2, int DPid1, int DPid2); -+#endif - // Creates a new recorder that requires conditional access Ca, has - // the given Priority and will record the given PIDs into the file FileName. - virtual ~cRecorder(); @@ -1,7 +1,7 @@ -diff -upr ./DIST/vdr-1.2.1/Makefile ./Makefile ---- ./DIST/vdr-1.2.1/Makefile 2003-01-06 13:28:09.000000000 +0100 -+++ ./Makefile 2003-07-16 05:39:36.000000000 +0200 -@@ -36,7 +36,8 @@ OBJS = audio.o channels.o ci.o config.o +diff -upr ./DIST/vdr-1.2.5/Makefile ./Makefile +--- ./DIST/vdr-1.2.5/Makefile 2003-08-09 13:09:45.000000000 +0200 ++++ ./Makefile 2003-09-26 01:49:20.000000000 +0200 +@@ -37,7 +37,8 @@ OBJS = audio.o channels.o ci.o config.o dvbplayer.o dvbspu.o eit.o eitscan.o font.o i18n.o interface.o keys.o\ lirc.o menu.o menuitems.o osdbase.o osd.o player.o plugin.o rcu.o\ receiver.o recorder.o recording.o remote.o remux.o ringbuffer.o sources.o\ @@ -11,9 +11,9 @@ diff -upr ./DIST/vdr-1.2.1/Makefile ./Makefile OSDFONT = -adobe-helvetica-medium-r-normal--23-*-100-100-p-*-iso8859-1 FIXFONT = -adobe-courier-bold-r-normal--25-*-100-100-m-*-iso8859-1 -diff -upr ./DIST/vdr-1.2.1/dvbplayer.c ./dvbplayer.c ---- ./DIST/vdr-1.2.1/dvbplayer.c 2003-05-24 11:04:26.000000000 +0200 -+++ ./dvbplayer.c 2003-07-16 05:39:36.000000000 +0200 +diff -upr ./DIST/vdr-1.2.5/dvbplayer.c ./dvbplayer.c +--- ./DIST/vdr-1.2.5/dvbplayer.c 2003-05-24 11:04:26.000000000 +0200 ++++ ./dvbplayer.c 2003-09-26 01:49:20.000000000 +0200 @@ -14,6 +14,7 @@ #include "ringbuffer.h" #include "thread.h" @@ -88,31 +88,31 @@ diff -upr ./DIST/vdr-1.2.1/dvbplayer.c ./dvbplayer.c if (p) { int w = PlayVideo(p, pc); if (w > 0) { -diff -upr ./DIST/vdr-1.2.1/menu.c ./menu.c ---- ./DIST/vdr-1.2.1/menu.c 2003-06-07 14:31:57.000000000 +0200 -+++ ./menu.c 2003-07-16 05:39:36.000000000 +0200 -@@ -2969,8 +2969,18 @@ cRecordControl::cRecordControl(cDevice * - - cRecordingUserCommand::InvokeCommand(RUC_BEFORERECORDING, fileName); - const cChannel *ch = timer->Channel(); +diff -upr ./DIST/vdr-1.2.5/menu.c ./menu.c +--- ./DIST/vdr-1.2.5/menu.c 2003-09-14 12:49:28.000000000 +0200 ++++ ./menu.c 2003-09-26 01:50:59.000000000 +0200 +@@ -3014,8 +3014,18 @@ cRecordControl::cRecordControl(cDevice * + isyslog("record %s", fileName); + if (MakeDirs(fileName, true)) { + const cChannel *ch = timer->Channel(); +#ifdef VDRTTXTSUBSHOOKS -+ cTtxtSubsRecorderBase *subsRecorder = cVDRTtxtsubsHookListener::Hook() -+ ->NewTtxtSubsRecorder(device, ch); -+ recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2(), subsRecorder); ++ cTtxtSubsRecorderBase *subsRecorder = cVDRTtxtsubsHookListener::Hook() ++ ->NewTtxtSubsRecorder(device, ch); ++ recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2(), subsRecorder); +#else - recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2()); + recorder = new cRecorder(fileName, ch->Ca(), timer->Priority(), ch->Vpid(), ch->Apid1(), ch->Apid2(), ch->Dpid1(), ch->Dpid2()); +#endif - if (device->AttachReceiver(recorder)) { + if (device->AttachReceiver(recorder)) { +#ifdef VDRTTXTSUBSHOOKS -+ if(subsRecorder) -+ subsRecorder->DeviceAttach(); ++ if(subsRecorder) ++ subsRecorder->DeviceAttach(); +#endif - Recording.WriteSummary(); - cStatus::MsgRecording(device, Recording.Name()); - if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo() -diff -upr ./DIST/vdr-1.2.1/menu.h ./menu.h ---- ./DIST/vdr-1.2.1/menu.h 2003-05-24 18:35:52.000000000 +0200 -+++ ./menu.h 2003-07-16 05:39:36.000000000 +0200 + Recording.WriteSummary(); + cStatus::MsgRecording(device, Recording.Name()); + if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo() +diff -upr ./DIST/vdr-1.2.5/menu.h ./menu.h +--- ./DIST/vdr-1.2.5/menu.h 2003-08-03 11:37:18.000000000 +0200 ++++ ./menu.h 2003-09-26 01:49:20.000000000 +0200 @@ -14,6 +14,7 @@ #include "device.h" #include "osd.h" @@ -121,9 +121,9 @@ diff -upr ./DIST/vdr-1.2.1/menu.h ./menu.h #include "recorder.h" #include "recording.h" -diff -upr ./DIST/vdr-1.2.1/osd.c ./osd.c ---- ./DIST/vdr-1.2.1/osd.c 2003-06-04 18:13:00.000000000 +0200 -+++ ./osd.c 2003-07-16 05:43:06.000000000 +0200 +diff -upr ./DIST/vdr-1.2.5/osd.c ./osd.c +--- ./DIST/vdr-1.2.5/osd.c 2003-06-04 18:13:00.000000000 +0200 ++++ ./osd.c 2003-09-26 01:49:20.000000000 +0200 @@ -12,6 +12,7 @@ #include "device.h" #include "i18n.h" @@ -153,9 +153,9 @@ diff -upr ./DIST/vdr-1.2.1/osd.c ./osd.c } void cOsd::Clear(void) -diff -upr ./DIST/vdr-1.2.1/recorder.c ./recorder.c ---- ./DIST/vdr-1.2.1/recorder.c 2003-05-16 15:33:04.000000000 +0200 -+++ ./recorder.c 2003-07-16 05:39:36.000000000 +0200 +diff -upr ./DIST/vdr-1.2.5/recorder.c ./recorder.c +--- ./DIST/vdr-1.2.5/recorder.c 2003-08-02 15:01:19.000000000 +0200 ++++ ./recorder.c 2003-09-26 01:52:35.000000000 +0200 @@ -10,6 +10,8 @@ #include <stdarg.h> #include <stdio.h> @@ -184,10 +184,10 @@ diff -upr ./DIST/vdr-1.2.1/recorder.c ./recorder.c +#ifdef VDRTTXTSUBSHOOKS + ttxtSubsRecorder = tsr; +#endif - isyslog("record %s", FileName); - // Create directories if necessary: -@@ -61,6 +70,10 @@ cRecorder::cRecorder(const char *FileNam + // Make sure the disk is up and running: + +@@ -55,6 +64,10 @@ cRecorder::cRecorder(const char *FileNam cRecorder::~cRecorder() { Detach(); @@ -198,7 +198,7 @@ diff -upr ./DIST/vdr-1.2.1/recorder.c ./recorder.c delete index; delete fileName; delete remux; -@@ -135,6 +148,19 @@ void cRecorder::Action(void) +@@ -129,6 +142,19 @@ void cRecorder::Action(void) break; } fileSize += Result; @@ -218,9 +218,9 @@ diff -upr ./DIST/vdr-1.2.1/recorder.c ./recorder.c } else break; -diff -upr ./DIST/vdr-1.2.1/recorder.h ./recorder.h ---- ./DIST/vdr-1.2.1/recorder.h 2002-06-08 11:35:03.000000000 +0200 -+++ ./recorder.h 2003-07-16 05:39:36.000000000 +0200 +diff -upr ./DIST/vdr-1.2.5/recorder.h ./recorder.h +--- ./DIST/vdr-1.2.5/recorder.h 2002-06-08 11:35:03.000000000 +0200 ++++ ./recorder.h 2003-09-26 01:49:20.000000000 +0200 @@ -15,6 +15,7 @@ #include "remux.h" #include "ringbuffer.h" diff --git a/VDR.upgrade-patch b/VDR.upgrade-patch deleted file mode 100644 index 1f4bd96..0000000 --- a/VDR.upgrade-patch +++ /dev/null @@ -1,23 +0,0 @@ ---- old-osd.c 2003-07-16 05:39:36.000000000 +0200 -+++ osd.c 2003-07-16 05:38:35.000000000 +0200 -@@ -63,6 +63,10 @@ void cOsd::SetColor(eDvbColor colorFg, e - - cOsdBase *cOsd::OpenRaw(int x, int y) - { -+#ifdef VDRTTXTSUBSHOOKS -+ // OSD_HOOK_2 - Information to Checkpatch.sh -+ cVDRTtxtsubsHookListener::Hook()->HideOSD(); -+#endif - #ifdef DEBUG_OSD - return NULL; - #else -@@ -97,9 +101,6 @@ void cOsd::Open(int w, int h) - d *= lineHeight; - int x = (720 - w + charWidth) / 2; //TODO PAL vs. NTSC??? - int y = (576 - Setup.OSDheight * lineHeight) / 2 + d; --#ifdef VDRTTXTSUBSHOOKS -- cVDRTtxtsubsHookListener::Hook()->HideOSD(); --#endif - //XXX - osd = OpenRaw(x, y); - //XXX TODO this should be transferred to the places where the individual windows are requested (there's too much detailed knowledge here!) @@ -3,7 +3,7 @@ * * See the README file for copyright information and how to reach the author. * - * $Id: ttxtsubs.c,v 1.20 2003/07/19 02:03:15 ragge Exp $ + * $Id: ttxtsubs.c,v 1.20 2003/07/19 02:03:15 ragge Exp ragge $ */ #include <vdr/plugin.h> @@ -18,7 +18,7 @@ #include "siinfo.h" #include "ttxtsubs.h" -static const char *VERSION = "0.0.4"; +static const char *VERSION = "0.0.4b"; static const char *DESCRIPTION = "Teletext subtitles"; //static const char *MAINMENUENTRY = "Ttxtsubs"; diff --git a/ttxtsubsdisplay.c b/ttxtsubsdisplay.c index 60802d7..a108919 100644 --- a/ttxtsubsdisplay.c +++ b/ttxtsubsdisplay.c @@ -367,6 +367,7 @@ void cTtxtSubsDisplay::ShowOSD(void) wind = mOsd->Create(0, y, w, ROWH, 2); //dprint("W: %d\n", w); + mOsd->Fill(0, y, w, y + ROWH, clrWhite, wind); // needed for dxr3s... mOsd->Fill(0, y, w, y + ROWH, clrBackground, wind); mOsd->Text(TEXTX, y + TEXTY, buf[i], clrWhite, clrBackground, wind); |