diff options
Diffstat (limited to 'VDR-1.3.5.patch')
-rw-r--r-- | VDR-1.3.5.patch | 251 |
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(); |