summaryrefslogtreecommitdiff
path: root/VDR-1.3.5.patch
diff options
context:
space:
mode:
Diffstat (limited to 'VDR-1.3.5.patch')
-rw-r--r--VDR-1.3.5.patch251
1 files changed, 0 insertions, 251 deletions
diff --git a/VDR-1.3.5.patch b/VDR-1.3.5.patch
deleted file mode 100644
index 8a1a32c..0000000
--- a/VDR-1.3.5.patch
+++ /dev/null
@@ -1,251 +0,0 @@
-diff -upr ./DIST/Makefile ./Makefile
---- ./DIST/Makefile 2004-01-18 15:16:53.000000000 +0100
-+++ ./Makefile 2004-03-01 05:19:59.000000000 +0100
-@@ -37,7 +37,8 @@ OBJS = audio.o channels.o ci.o config.o
- dvbplayer.o dvbspu.o eit.o eitscan.o epg.o filter.o font.o i18n.o interface.o keys.o\
- lirc.o menu.o menuitems.o nit.o osdbase.o osd.o pat.o player.o plugin.o rcu.o\
- receiver.o recorder.o recording.o remote.o remux.o ringbuffer.o sdt.o sections.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
-
- FIXFONT_ISO8859_1 = -adobe-courier-bold-r-normal--25-*-100-100-m-*-iso8859-1
- OSDFONT_ISO8859_1 = -adobe-helvetica-medium-r-normal--23-*-100-100-p-*-iso8859-1
-diff -upr ./DIST/dvbplayer.c ./dvbplayer.c
---- ./DIST/dvbplayer.c 2003-10-18 13:31:54.000000000 +0200
-+++ ./dvbplayer.c 2004-03-01 05:18:15.000000000 +0100
-@@ -14,6 +14,7 @@
- #include "ringbuffer.h"
- #include "thread.h"
- #include "tools.h"
-+#include "vdrttxtsubshooks.h"
-
- // --- cBackTrace ----------------------------------------------------------
-
-@@ -323,6 +324,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
-@@ -349,6 +356,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)
-@@ -522,6 +563,11 @@ void cDvbPlayer::Action(void)
- StripAudioPackets(p, pc, AudioTrack);
- }
- }
-+#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/menu.c ./menu.c
---- ./DIST/menu.c 2004-02-29 15:11:16.000000000 +0100
-+++ ./menu.c 2004-03-01 05:18:15.000000000 +0100
-@@ -3104,8 +3104,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);
-+#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());
- if (!Timer && !cReplayControl::LastReplayed()) // an instant recording, maybe from cRecordControls::PauseLiveVideo()
-diff -upr ./DIST/menu.h ./menu.h
---- ./DIST/menu.h 2004-02-15 15:11:28.000000000 +0100
-+++ ./menu.h 2004-03-01 05:18:15.000000000 +0100
-@@ -15,6 +15,7 @@
- #include "epg.h"
- #include "osd.h"
- #include "dvbplayer.h"
-+#include "vdrttxtsubshooks.h"
- #include "recorder.h"
- #include "recording.h"
-
-diff -upr ./DIST/osd.c ./osd.c
---- ./DIST/osd.c 2003-06-04 18:13:00.000000000 +0200
-+++ ./osd.c 2004-03-01 05:18:15.000000000 +0100
-@@ -12,6 +12,7 @@
- #include "device.h"
- #include "i18n.h"
- #include "status.h"
-+#include "vdrttxtsubshooks.h"
-
- // --- cOsd ------------------------------------------------------------------
-
-@@ -62,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
-@@ -138,6 +143,9 @@ void cOsd::Close(void)
- delete osd;
- osd = NULL;
- #endif
-+#ifdef VDRTTXTSUBSHOOKS
-+ cVDRTtxtsubsHookListener::Hook()->ShowOSD();
-+#endif
- }
-
- void cOsd::Clear(void)
-diff -upr ./DIST/recorder.c ./recorder.c
---- ./DIST/recorder.c 2003-10-18 13:35:02.000000000 +0200
-+++ ./recorder.c 2004-03-01 05:18:15.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:
-@@ -23,7 +25,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)
- ,cThread("recording")
- {
-@@ -35,6 +41,9 @@ cRecorder::cRecorder(const char *FileNam
- fileSize = 0;
- active = false;
- lastDiskSpaceCheck = time(NULL);
-+#ifdef VDRTTXTSUBSHOOKS
-+ ttxtSubsRecorder = tsr;
-+#endif
-
- // Make sure the disk is up and running:
-
-@@ -56,6 +65,10 @@ cRecorder::cRecorder(const char *FileNam
- cRecorder::~cRecorder()
- {
- Detach();
-+#ifdef VDRTTXTSUBSHOOKS
-+ if(ttxtSubsRecorder)
-+ delete ttxtSubsRecorder;
-+#endif
- delete index;
- delete fileName;
- delete remux;
-@@ -128,6 +141,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/recorder.h ./recorder.h
---- ./DIST/recorder.h 2002-06-08 11:35:03.000000000 +0200
-+++ ./recorder.h 2004-03-01 05:18:15.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();