summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY4
-rw-r--r--README20
-rw-r--r--VDR.1.1.25.patch250
-rw-r--r--VDR.patch80
-rw-r--r--VDR.upgrade-patch23
-rw-r--r--ttxtsubs.c4
-rw-r--r--ttxtsubsdisplay.c1
7 files changed, 53 insertions, 329 deletions
diff --git a/HISTORY b/HISTORY
index b2001f6..fab4efd 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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
diff --git a/README b/README
index 8411165..5b58dee 100644
--- a/README
+++ b/README
@@ -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();
diff --git a/VDR.patch b/VDR.patch
index dfe7a1e..7ef6fd9 100644
--- a/VDR.patch
+++ b/VDR.patch
@@ -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!)
diff --git a/ttxtsubs.c b/ttxtsubs.c
index 4eef502..ae1ca63 100644
--- a/ttxtsubs.c
+++ b/ttxtsubs.c
@@ -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);