r1401 - in vdr/vdr/trunk/debian: . patches
Thomas Schmidt
tschmidt at costa.debian.org
Tue Nov 1 20:58:27 UTC 2005
Author: tschmidt
Date: 2005-11-01 20:58:26 +0000 (Tue, 01 Nov 2005)
New Revision: 1401
Removed:
vdr/vdr/trunk/debian/patches/16_avoidTrashing.dpatch
vdr/vdr/trunk/debian/patches/18_vdr-1.3.33-recordingsmenu.dpatch
vdr/vdr/trunk/debian/patches/19_vdr-1.3.33-recordingsupdate.dpatch
Modified:
vdr/vdr/trunk/debian/changelog
vdr/vdr/trunk/debian/patches/00list
Log:
vdr: new upstream release (1.3.35)
Modified: vdr/vdr/trunk/debian/changelog
===================================================================
--- vdr/vdr/trunk/debian/changelog 2005-11-01 17:33:27 UTC (rev 1400)
+++ vdr/vdr/trunk/debian/changelog 2005-11-01 20:58:26 UTC (rev 1401)
@@ -1,9 +1,19 @@
-vdr (1.3.33-1) unstable; urgency=low
+vdr (1.3.35-1) unstable; urgency=low
* NOT RELEASED YET
* Thomas Schmidt <tschmidt at debian.org>
- New upstream release
+ + Removed 16_avoidTrashing.dpatch
+ + Removed 18_vdr-1.3.33-recordingsmenu.dpatch
+ + Removed 19_vdr-1.3.33-recordingsupdate.dpatch
+
+ -- Debian VDR Team <pkg-vdr-dvb-devel at lists.alioth.debian.org> Tue, 1 Nov 2005 21:43:03 +0100
+
+vdr (1.3.33-1) unstable; urgency=low
+
+ * Thomas Schmidt <tschmidt at debian.org>
+ - New upstream release
+ Removed 14_update-resume.dpatch
+ Removed 18_vdr-plugin-sky-fix
- Added initial Swedish translation (sv.po) of the debconf template
Modified: vdr/vdr/trunk/debian/patches/00list
===================================================================
--- vdr/vdr/trunk/debian/patches/00list 2005-11-01 17:33:27 UTC (rev 1400)
+++ vdr/vdr/trunk/debian/patches/00list 2005-11-01 20:58:26 UTC (rev 1401)
@@ -12,10 +12,7 @@
12_osdbase-maxitems
13_epgfix
15_dvbplayer
-16_avoidTrashing
17_replay
-18_vdr-1.3.33-recordingsmenu
-19_vdr-1.3.33-recordingsupdate
22_vdr-playerepg
# Patch needed for DVB subtitles or ttxtsubs (does not work with AC3-patch)
Deleted: vdr/vdr/trunk/debian/patches/16_avoidTrashing.dpatch
===================================================================
--- vdr/vdr/trunk/debian/patches/16_avoidTrashing.dpatch 2005-11-01 17:33:27 UTC (rev 1400)
+++ vdr/vdr/trunk/debian/patches/16_avoidTrashing.dpatch 2005-11-01 20:58:26 UTC (rev 1401)
@@ -1,407 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-
-## 16_avoidTrashing.dpatch by Ralf Müller <rmvdr at bj-ig.de>
-## http://vdr.unetz.com/download/patches/vdr-avoidTrashing-0.2.2-plain-1.3.31.diff.gz
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: prevents vdr to trash the file system buffers
-
- at DPATCH@
-diff -urNad vdr-1.3.31/cutter.c /tmp/dpep.cLVvp8/vdr-1.3.31/cutter.c
---- vdr-1.3.31/cutter.c 2005-08-14 12:51:54.000000000 +0200
-+++ /tmp/dpep.cLVvp8/vdr-1.3.31/cutter.c 2005-08-31 21:04:17.153931440 +0200
-@@ -131,7 +131,11 @@
- cutIn = false;
- }
- }
-+#ifdef AVOID_TRASHING
-+ if (WriteStream(toFile, buffer, Length) < 0) {
-+#else
- if (safe_write(toFile, buffer, Length) < 0) {
-+#endif // AVOID_TRASHING
- error = "safe_write";
- break;
- }
-diff -urNad vdr-1.3.31/dvbplayer.c /tmp/dpep.cLVvp8/vdr-1.3.31/dvbplayer.c
---- vdr-1.3.31/dvbplayer.c 2005-08-31 21:03:49.573124360 +0200
-+++ /tmp/dpep.cLVvp8/vdr-1.3.31/dvbplayer.c 2005-08-31 21:04:17.153931440 +0200
-@@ -147,7 +147,11 @@
- while (Running()) {
- Lock();
- if (!hasData && f >= 0 && buffer) {
-+#ifdef AVOID_TRASHING
-+ int r = ReadStream(f, buffer + length, wanted - length);
-+#else
- int r = safe_read(f, buffer + length, wanted - length);
-+#endif // AVOID_TRASHING
- if (r >= 0) {
- length += r;
- if (!r || length == wanted) // r == 0 means EOF
-diff -urNad vdr-1.3.31/Makefile /tmp/dpep.cLVvp8/vdr-1.3.31/Makefile
---- vdr-1.3.31/Makefile 2005-08-31 21:03:49.100196256 +0200
-+++ /tmp/dpep.cLVvp8/vdr-1.3.31/Makefile 2005-08-31 21:04:17.154931288 +0200
-@@ -30,6 +30,8 @@
- DOXYGEN = /usr/bin/doxygen
- DOXYFILE = Doxyfile
-
-+AVOID_TRASHING=1
-+
- -include Make.config
-
- INCLUDES += -I$(DVBDIR)/include
-@@ -91,6 +93,10 @@
- DEFINES += -DVFAT
- endif
-
-+ifdef AVOID_TRASHING
-+DEFINES += -DAVOID_TRASHING
-+endif
-+
- all: vdr
- font: genfontfile\
- fontfix-iso8859-1.c fontosd-iso8859-1.c fontsml-iso8859-1.c\
-diff -urNad vdr-1.3.31/recorder.c /tmp/dpep.cLVvp8/vdr-1.3.31/recorder.c
---- vdr-1.3.31/recorder.c 2005-08-31 21:03:49.369155368 +0200
-+++ /tmp/dpep.cLVvp8/vdr-1.3.31/recorder.c 2005-08-31 21:04:17.154931288 +0200
-@@ -102,7 +102,11 @@
- if (NextFile()) {
- if (index && pictureType != NO_PICTURE)
- index->Write(pictureType, fileName->Number(), fileSize);
-+#ifdef AVOID_TRASHING
-+ if (WriteStream(recordFile, p, Count) < 0) {
-+#else
- if (safe_write(recordFile, p, Count) < 0) {
-+#endif // AVOID_TRASHING
- LOG_ERROR_STR(fileName->Name());
- break;
- }
-diff -urNad vdr-1.3.31/recording.c /tmp/dpep.cLVvp8/vdr-1.3.31/recording.c
---- vdr-1.3.31/recording.c 2005-08-31 21:03:49.532130592 +0200
-+++ /tmp/dpep.cLVvp8/vdr-1.3.31/recording.c 2005-08-31 21:04:17.162930072 +0200
-@@ -964,6 +964,15 @@
- size = last + 1;
- index = MALLOC(tIndex, size);
- if (index) {
-+#ifdef AVOID_TRASHING
-+ f = OpenStream(fileName, O_RDONLY);
-+ if (f >= 0) {
-+ if ((int)ReadStream(f, index, buf.st_size) != buf.st_size) {
-+ esyslog("ERROR: can't read from file '%s'", fileName);
-+ free(index);
-+ index = NULL;
-+ CloseStream(f);
-+#else
- f = open(fileName, O_RDONLY);
- if (f >= 0) {
- if ((int)safe_read(f, index, buf.st_size) != buf.st_size) {
-@@ -971,6 +980,7 @@
- free(index);
- index = NULL;
- close(f);
-+#endif // AVOID_TRASHING
- f = -1;
- }
- // we don't close f here, see CatchUp()!
-@@ -988,7 +998,11 @@
- else if (!Record)
- isyslog("missing index file %s", fileName);
- if (Record) {
-+#ifdef AVOID_TRASHING
-+ if ((f = OpenStream(fileName, O_WRONLY | O_CREAT | O_APPEND, DEFFILEMODE)) >= 0) {
-+#else
- if ((f = open(fileName, O_WRONLY | O_CREAT | O_APPEND, DEFFILEMODE)) >= 0) {
-+#endif // AVOID_TRASHING
- if (delta) {
- esyslog("ERROR: padding index file with %d '0' bytes", delta);
- while (delta--)
-@@ -1007,7 +1021,11 @@
- cIndexFile::~cIndexFile()
- {
- if (f >= 0)
-+#ifdef AVOID_TRASHING
-+ CloseStream(f);
-+#else
- close(f);
-+#endif // AVOID_TRASHING
- free(fileName);
- free(index);
- }
-@@ -1022,7 +1040,11 @@
- if (fstat(f, &buf) == 0) {
- if (time(NULL) - buf.st_mtime > MININDEXAGE) {
- // apparently the index file is not being written any more
-+#ifdef AVOID_TRASHING
-+ CloseStream(f);
-+#else
- close(f);
-+#endif // AVOID_TRASHING
- f = -1;
- break;
- }
-@@ -1038,11 +1060,19 @@
- int offset = (last + 1) * sizeof(tIndex);
- int delta = (newLast - last) * sizeof(tIndex);
- if (lseek(f, offset, SEEK_SET) == offset) {
-+#ifdef AVOID_TRASHING
-+ if (ReadStream(f, &index[last + 1], delta) != delta) {
-+ esyslog("ERROR: can't read from index");
-+ free(index);
-+ index = NULL;
-+ CloseStream(f);
-+#else
- if (safe_read(f, &index[last + 1], delta) != delta) {
- esyslog("ERROR: can't read from index");
- free(index);
- index = NULL;
- close(f);
-+#endif // AVOID_TRASHING
- f = -1;
- break;
- }
-@@ -1069,9 +1099,17 @@
- {
- if (f >= 0) {
- tIndex i = { FileOffset, PictureType, FileNumber, 0 };
-+#ifdef AVOID_TRASHING
-+ if (WriteStream(f, &i, sizeof(i)) < 0) {
-+#else
- if (safe_write(f, &i, sizeof(i)) < 0) {
-+#endif // AVOID_TRASHING
- LOG_ERROR_STR(fileName);
-+#ifdef AVOID_TRASHING
-+ CloseStream(f);
-+#else
- close(f);
-+#endif // AVOID_TRASHING
- f = -1;
- return false;
- }
-@@ -1199,7 +1237,11 @@
- else {
- if (access(fileName, R_OK) == 0) {
- dsyslog("playing '%s'", fileName);
-+#ifdef AVOID_TRASHING
-+ file = OpenStream(fileName, O_RDONLY | BlockingFlag);
-+#else
- file = open(fileName, O_RDONLY | BlockingFlag);
-+#endif // AVOID_TRASHING
- if (file < 0)
- LOG_ERROR_STR(fileName);
- }
-@@ -1302,7 +1344,11 @@
- esyslog("ERROR: frame larger than buffer (%d > %d)", Length, Max);
- Length = Max;
- }
-+#ifdef AVOID_TRASHING
-+ int r = ReadStream(f, b, Length);
-+#else
- int r = safe_read(f, b, Length);
-+#endif
- if (r < 0)
- LOG_ERROR;
- return r;
-diff -urNad vdr-1.3.31/tools.c /tmp/dpep.cLVvp8/vdr-1.3.31/tools.c
---- vdr-1.3.31/tools.c 2005-08-27 16:43:55.000000000 +0200
-+++ /tmp/dpep.cLVvp8/vdr-1.3.31/tools.c 2005-08-31 21:04:17.163929920 +0200
-@@ -29,6 +29,156 @@
- BCDCHARTOINT( x & 0xFF));
- }
-
-+#ifdef AVOID_TRASHING
-+
-+struct tUsageRange {
-+ off_t begin;
-+ off_t end;
-+ off_t ahead;
-+ ssize_t written;
-+};
-+
-+#define MAX_STREAM_FD (256)
-+struct tUsageRange StreamRanges[MAX_STREAM_FD];
-+
-+#define READ_AHEAD MEGABYTE(2)
-+#define WRITE_BUFFER MEGABYTE(10)
-+
-+void RegisterStream(int fd)
-+{
-+ if (fd < 0 || fd >= MAX_STREAM_FD) {
-+ return;
-+ }
-+ dsyslog("Open stream: %d", fd);
-+ StreamRanges[fd].begin = -1;
-+ StreamRanges[fd].end = -1;
-+ StreamRanges[fd].ahead = -1;
-+ StreamRanges[fd].written = 0;
-+}
-+
-+int OpenStream(const char* PathName, int Flags, mode_t Mode)
-+{
-+ int retVal=open(PathName, Flags, Mode);
-+ RegisterStream(retVal);
-+ return retVal;
-+}
-+
-+int OpenStream(const char* PathName, int Flags)
-+{
-+ int retVal=open(PathName, Flags);
-+ RegisterStream(retVal);
-+ return retVal;
-+}
-+
-+ssize_t ReadStream(int fd, void* Buffer, size_t Size)
-+{
-+ if (fd >=0 && fd < MAX_STREAM_FD) {
-+ off_t pos=lseek(fd, 0, SEEK_CUR);
-+ off_t begin=StreamRanges[fd].begin;
-+ off_t end=StreamRanges[fd].end;
-+ off_t ahead=StreamRanges[fd].ahead;
-+ // jump forward - adjust end position
-+ if (pos > end) {
-+ end = pos;
-+ }
-+ // after adjusting end - don't clear more then previously requested
-+ if (end > ahead) {
-+ end = ahead;
-+ }
-+ // jump backward - drop read ahead of previous run
-+ if (pos < begin) {
-+ end = ahead;
-+ }
-+ if (begin >= 0 && end > begin) {
-+ posix_fadvise(fd, begin-KILOBYTE(200), end-begin+KILOBYTE(200), POSIX_FADV_DONTNEED);
-+ }
-+ StreamRanges[fd].begin = pos;
-+ ssize_t bytesRead = safe_read(fd, Buffer, Size);
-+ if (bytesRead > 0) {
-+ pos += bytesRead;
-+ StreamRanges[fd].end = pos;
-+ // this seems to trigger a non blocking read - this
-+ // may or may not have been finished when we will be called next time.
-+ // If it is not finished we can't release the not yet filled buffers.
-+ // So this is commented out till we find a better solution.
-+// posix_fadvise(fd, pos, READ_AHEAD, POSIX_FADV_WILLNEED);
-+ StreamRanges[fd].ahead = pos + READ_AHEAD;
-+ }
-+ else {
-+ StreamRanges[fd].end = pos;
-+ }
-+ return bytesRead;
-+ }
-+ return safe_read(fd, Buffer, Size);
-+}
-+
-+ssize_t WriteStream(int fd, const void* Buffer, size_t Size)
-+{
-+ if (fd >=0 && fd < MAX_STREAM_FD) {
-+ off_t pos=lseek(fd, 0, SEEK_CUR);
-+ ssize_t bytesWritten = safe_write(fd, Buffer, Size);
-+ if (bytesWritten >= 0) {
-+ StreamRanges[fd].written += bytesWritten;
-+ off_t begin=StreamRanges[fd].begin;
-+ off_t end=StreamRanges[fd].end;
-+ ssize_t written=StreamRanges[fd].written;
-+ if (begin >= 0) {
-+ if (pos < begin) {
-+ begin = pos;
-+ }
-+ }
-+ else {
-+ begin = pos;
-+ }
-+ if (pos + bytesWritten > end) {
-+ end = pos + bytesWritten;
-+ }
-+ if (written > WRITE_BUFFER) {
-+// dsyslog("flush buffer: %d (%d bytes, %ld-%ld)", fd, written, begin, end);
-+ fdatasync(fd);
-+ if (begin >= 0 && end > begin) {
-+ posix_fadvise(fd, begin, end-begin, POSIX_FADV_DONTNEED);
-+ }
-+ begin = -1;
-+ end = -1;
-+ written = 0;
-+ }
-+ StreamRanges[fd].begin = begin;
-+ StreamRanges[fd].end = end;
-+ StreamRanges[fd].written = written;
-+ }
-+ return bytesWritten;
-+ }
-+ return safe_write(fd, Buffer, Size);
-+}
-+
-+int CloseStream(int fd)
-+{
-+ if (fd >=0 && fd < MAX_STREAM_FD) {
-+ off_t begin=StreamRanges[fd].begin;
-+ off_t end=StreamRanges[fd].end;
-+ off_t ahead=StreamRanges[fd].ahead;
-+ if (ahead > end) {
-+ end = ahead;
-+ }
-+ if (begin >= 0 && end > begin) {
-+ ssize_t written=StreamRanges[fd].written;
-+ dsyslog("close buffer: %d (flush: %d bytes, %ld-%ld)", fd, written, begin, end);
-+ if (written) {
-+ fdatasync(fd);
-+ }
-+ posix_fadvise(fd, begin, end-begin, POSIX_FADV_DONTNEED);
-+ }
-+ StreamRanges[fd].begin = -1;
-+ StreamRanges[fd].end = -1;
-+ StreamRanges[fd].ahead = -1;
-+ StreamRanges[fd].written = 0;
-+ }
-+ return close(fd);
-+}
-+
-+#endif // AVOID_TRASHING
-+
- ssize_t safe_read(int filedes, void *buffer, size_t size)
- {
- for (;;) {
-diff -urNad vdr-1.3.31/tools.h /tmp/dpep.cLVvp8/vdr-1.3.31/tools.h
---- vdr-1.3.31/tools.h 2005-08-27 16:40:08.000000000 +0200
-+++ /tmp/dpep.cLVvp8/vdr-1.3.31/tools.h 2005-08-31 21:04:17.164929768 +0200
-@@ -84,6 +84,14 @@
- static cString sprintf(const char *fmt, ...);
- };
-
-+#ifdef AVOID_TRASHING
-+int OpenStream(const char* PathName, int Flags, mode_t Mode);
-+int OpenStream(const char* PathName, int Flags);
-+ssize_t ReadStream(int fd, void* Buffer, size_t Size);
-+ssize_t WriteStream(int fd, const void* Buffer, size_t Size);
-+int CloseStream(int fd);
-+#endif // AVOID_TRASHING
-+
- ssize_t safe_read(int filedes, void *buffer, size_t size);
- ssize_t safe_write(int filedes, const void *buffer, size_t size);
- void writechar(int filedes, char c);
-diff -urNad vdr-1.3.31/videodir.c /tmp/dpep.cLVvp8/vdr-1.3.31/videodir.c
---- vdr-1.3.31/videodir.c 2005-08-06 11:53:21.000000000 +0200
-+++ /tmp/dpep.cLVvp8/vdr-1.3.31/videodir.c 2005-08-31 21:04:17.164929768 +0200
-@@ -137,7 +137,11 @@
- }
- }
- }
-+#ifdef AVOID_TRASHING
-+ int Result = OpenStream(ActualFileName, Flags, DEFFILEMODE);
-+#else
- int Result = open(ActualFileName, Flags, DEFFILEMODE);
-+#endif // AVOID_TRASHING
- if (ActualFileName != FileName)
- free((char *)ActualFileName);
- return Result;
-@@ -146,7 +150,11 @@
- int CloseVideoFile(int FileHandle)
- {
- // just in case we ever decide to do something special when closing the file!
-+#ifdef AVOID_TRASHING
-+ return CloseStream(FileHandle);
-+#else
- return close(FileHandle);
-+#endif // AVOID_TRASHING
- }
-
- bool RenameVideoFile(const char *OldName, const char *NewName)
Deleted: vdr/vdr/trunk/debian/patches/18_vdr-1.3.33-recordingsmenu.dpatch
===================================================================
--- vdr/vdr/trunk/debian/patches/18_vdr-1.3.33-recordingsmenu.dpatch 2005-11-01 17:33:27 UTC (rev 1400)
+++ vdr/vdr/trunk/debian/patches/18_vdr-1.3.33-recordingsmenu.dpatch 2005-11-01 20:58:26 UTC (rev 1401)
@@ -1,39 +0,0 @@
-#!/bin/sh /usr/share/dpatch/dpatch-run
-
-## 18_vdr-1.3.33-recordingsmenu.dpatch by Klaus Schmidinger <kls at cadsoft.de>
-## from vdr at linuxtv.org mailinglist (Sat, 01 Oct 2005 12:16:44 +0200)
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Fixes an error after deleting a recording from a subfolder.
-
- at DPATCH@
---- vdr-1.3.33/menu.c 2005/09/25 13:37:21 1.362
-+++ vdr-1.3.33/menu.c 2005/10/01 10:12:32
-@@ -1513,6 +1513,7 @@
- SetCurrent(First());
- else if (OpenSubMenus && cReplayControl::LastReplayed() && Open(true))
- return;
-+ Display();
- SetHelpKeys();
- }
-
-@@ -1556,7 +1557,7 @@
- if (Refresh) {
- cMenuRecordingItem *ri = (cMenuRecordingItem *)Get(Current());
- if (ri) {
-- cRecording *Recording = GetRecording(ri);
-+ cRecording *Recording = Recordings.GetByName(ri->FileName());
- if (Recording)
- CurrentRecording = Recording->FileName();
- }
-@@ -1583,7 +1584,8 @@
- }
- }
- free(LastItemText);
-- Display();
-+ if (Refresh)
-+ Display();
- }
-
- cRecording *cMenuRecordings::GetRecording(cMenuRecordingItem *Item)
-
Deleted: vdr/vdr/trunk/debian/patches/19_vdr-1.3.33-recordingsupdate.dpatch
===================================================================
--- vdr/vdr/trunk/debian/patches/19_vdr-1.3.33-recordingsupdate.dpatch 2005-11-01 17:33:27 UTC (rev 1400)
+++ vdr/vdr/trunk/debian/patches/19_vdr-1.3.33-recordingsupdate.dpatch 2005-11-01 20:58:26 UTC (rev 1401)
@@ -1,78 +0,0 @@
-#!/bin/sh /usr/share/dpatch/dpatch-run
-
-## 19_vdr-1.3.33-recordingsupdate.dpatch by Klaus Schmidinger <kls at cadsoft.de>
-## from vdr at linuxtv.org mailinglist (Sat, 01 Oct 2005 12:35:30 +0200)
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Fixes .update detection if recording dir != /video.
-
- at DPATCH@
---- vdr-1.3.33/recording.h 2005/09/25 14:30:13 1.44
-+++ vdr-1.3.33/recording.h 2005/10/01 10:24:41
-@@ -93,10 +93,11 @@
-
- class cRecordings : public cList<cRecording>, public cThread {
- private:
-- char *updateFileName;
-+ static char *updateFileName;
- bool deleted;
- time_t lastUpdate;
- int state;
-+ const char *UpdateFileName(void);
- void Refresh(bool Foreground = false);
- void ScanVideoDir(const char *DirName, bool Foreground = false);
- protected:
---- vdr-1.3.33/recording.c 2005/09/25 14:29:49 1.119
-+++ vdr-1.3.33/recording.c 2005/10/01 10:29:02
-@@ -743,10 +743,11 @@
-
- cRecordings Recordings;
-
-+char *cRecordings::updateFileName = NULL;
-+
- cRecordings::cRecordings(bool Deleted)
- :cThread("video directory scanner")
- {
-- updateFileName = strdup(AddDirectory(VideoDirectory, ".update"));
- deleted = Deleted;
- lastUpdate = 0;
- state = 0;
-@@ -755,7 +756,6 @@
- cRecordings::~cRecordings()
- {
- Cancel(3);
-- free(updateFileName);
- }
-
- void cRecordings::Action(void)
-@@ -763,6 +763,13 @@
- Refresh();
- }
-
-+const char *cRecordings::UpdateFileName(void)
-+{
-+ if (!updateFileName)
-+ updateFileName = strdup(AddDirectory(VideoDirectory, ".update"));
-+ return updateFileName;
-+}
-+
- void cRecordings::Refresh(bool Foreground)
- {
- lastUpdate = time(NULL); // doing this first to make sure we don't miss anything
-@@ -825,13 +832,13 @@
-
- void cRecordings::TouchUpdate(void)
- {
-- TouchFile(updateFileName);
-+ TouchFile(UpdateFileName());
- lastUpdate = time(NULL); // make sure we don't tigger ourselves
- }
-
- bool cRecordings::NeedsUpdate(void)
- {
-- return lastUpdate < LastModifiedTime(updateFileName);
-+ return lastUpdate < LastModifiedTime(UpdateFileName());
- }
-
- bool cRecordings::Update(bool Wait)
-
More information about the pkg-vdr-dvb-changes
mailing list