mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Version 1.0.0
- Fixed a problem with wrong EPG data in the Schedules menu (thanks to Tobias Kerner, problem was initially reported by Michel Moster, but somehow I had misplaced his message...). - Added Spanish language texts (thanks to Ruben Nunez Francisco). - Fixed resetting the "First day" timer parameter once the timer actually starts recording. - Fixed the still picture workaround in case the progress display is active (thanks to Gerald Raaf). - Fixed a problem with accessing the epg.data file before it is fully written (thanks to Thilo Wunderlich for reporting this one). - Now the EPG scan skips channels that have their 'Ca' parameter explicitly set to an other DVB card (suggested by Sergei Haller). - Fixed a possible hangup when reading a broken epg.data file (thanks to Henning Holtschneider for pointing this one out). - Fixed a bug in the editing process in case a previously edited file with the same name was manually deleted on a system with more than one video directory (thanks to Dirk Wiebel for reporting this one).
This commit is contained in:
parent
262327908d
commit
c9a5d8ea53
25
CONTRIBUTORS
25
CONTRIBUTORS
@ -88,6 +88,7 @@ Benjamin Reichardt <reichard@math.uni-goettingen.de>
|
||||
Henning Holtschneider <hh@holtschneider.com>
|
||||
for patching 'runvdr' to check whether the driver is already loaded
|
||||
for reporting a bug in parsing group separators in channels.conf
|
||||
for pointing out a possible hangup when reading a broken epg.data file
|
||||
|
||||
Paulo Lopes <pmml@netvita.pt>
|
||||
for translating OSD texts to the Portugese language
|
||||
@ -186,6 +187,7 @@ Norbert Schmidt <nschmidt-nrw@t-online.de>
|
||||
|
||||
Thilo Wunderlich <tw@ubcom.net>
|
||||
for his help in keeping 'channels.conf' up to date
|
||||
for reporting a problem with accessing the epg.data file before it is fully written
|
||||
|
||||
Stephan Schreiber <stephan@sschreiber.de>
|
||||
for his support in keeping the Premiere World channels up to date in 'channels.conf.cable'
|
||||
@ -198,6 +200,8 @@ Sergei Haller <Sergei.Haller@math.uni-giessen.de>
|
||||
for fixing the LastActivity timestamp after a shutdown prompt
|
||||
for fixing the "Low disk space!" message
|
||||
for adding the TPID to Hessen-3 in 'channels.conf'
|
||||
for suggesting that the EPG scan should skip channels with their 'Ca' parameter
|
||||
explicitly set to an other DVB card
|
||||
|
||||
Andreas Gebel <andreas@xcapenet.de>
|
||||
for his help in keeping 'channels.conf' up to date
|
||||
@ -252,6 +256,27 @@ Truls Slevigen <truls@slevigen.no>
|
||||
|
||||
Ruben Nunez Francisco <ruben.nunez@tang-it.com>
|
||||
for implementing FreeDiskSpaceMB() without external 'df' command
|
||||
for translating OSD texts to the Spanish language
|
||||
|
||||
Mirko Dölle <mdoelle@linux-user.de>
|
||||
for reporting a bug when a timer records over midnight of a day that had a
|
||||
change in Daylight Saving Time
|
||||
|
||||
Michael Rakowski <mrak@gmx.de>
|
||||
for translating OSD texts to the Polish language
|
||||
|
||||
Michael Moster <dvb@juelich-gmbh.de>
|
||||
for initally reporting the problem with wrong EPG data in the Schedules menu
|
||||
(somehow I had misplaced his message...)
|
||||
|
||||
Tobias Kerner <tobschle@gmx.de>
|
||||
for helping to debug a problem with wrong EPG data in the Schedules menu
|
||||
|
||||
Dirk Wiebel <dirk@wiebel.de>
|
||||
for reporting a bug in the editing process in case a previously edited file
|
||||
with the same name was manually deleted on a system with more than one video
|
||||
directory
|
||||
|
||||
Gerald Raaf <graaf@attglobal.net>
|
||||
for helping to fix the still picture workaround in case the progress display
|
||||
is active
|
||||
|
24
HISTORY
24
HISTORY
@ -1151,7 +1151,7 @@ Video Disk Recorder Revision History
|
||||
commands.conf starts with a digit in the range '1'...'9', followed by a blank.
|
||||
- Fixed a bug in switching back the replay mode display in time shift mode
|
||||
(thanks to Achim Lange for reporting this one).
|
||||
- Fixed a bug in the 'First day' timer parameter for timers that record over
|
||||
- Fixed a bug in the "First day" timer parameter for timers that record over
|
||||
midnight.
|
||||
- Added units to Setup parameters.
|
||||
- Changed time entry in the 'Jump' command during replay, so that it is filled
|
||||
@ -1161,7 +1161,7 @@ Video Disk Recorder Revision History
|
||||
- Fixed skipping the next hit of a repeating timer (thanks to Rainer Zocholl
|
||||
for reporting this one).
|
||||
- Fixed a bug when a timer records over midnight of a day that had a change in
|
||||
Daylight Saving Time.
|
||||
Daylight Saving Time (thanks to Mirko Dölle for reporting this one).
|
||||
- Added Polish language texts (thanks to Michael Rakowski).
|
||||
- Fixed a bug in parsing group separators in channels.conf (thanks to Henning
|
||||
Holtschneider for reporting this one).
|
||||
@ -1170,3 +1170,23 @@ Video Disk Recorder Revision History
|
||||
the F-keys on top.
|
||||
- Fixed a bug in the EPG bugfix mechanism if the extended description is shorter
|
||||
than 3 characters (thanks to Andreas Schultz).
|
||||
|
||||
2002-04-07: Version 1.0.0
|
||||
|
||||
- Fixed a problem with wrong EPG data in the Schedules menu (thanks to Tobias
|
||||
Kerner, problem was initially reported by Michel Moster, but somehow I had
|
||||
misplaced his message...).
|
||||
- Added Spanish language texts (thanks to Ruben Nunez Francisco).
|
||||
- Fixed resetting the "First day" timer parameter once the timer actually starts
|
||||
recording.
|
||||
- Fixed the still picture workaround in case the progress display is active
|
||||
(thanks to Gerald Raaf).
|
||||
- Fixed a problem with accessing the epg.data file before it is fully written
|
||||
(thanks to Thilo Wunderlich for reporting this one).
|
||||
- Now the EPG scan skips channels that have their 'Ca' parameter explicitly set
|
||||
to an other DVB card (suggested by Sergei Haller).
|
||||
- Fixed a possible hangup when reading a broken epg.data file (thanks to Henning
|
||||
Holtschneider for pointing this one out).
|
||||
- Fixed a bug in the editing process in case a previously edited file with the
|
||||
same name was manually deleted on a system with more than one video directory
|
||||
(thanks to Dirk Wiebel for reporting this one).
|
||||
|
6
config.c
6
config.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: config.c 1.96 2002/04/01 11:54:05 kls Exp $
|
||||
* $Id: config.c 1.97 2002/04/02 21:56:51 kls Exp $
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
@ -606,14 +606,14 @@ bool cTimer::Matches(time_t t)
|
||||
if ((!firstday || a >= firstday) && t <= b) {
|
||||
startTime = a;
|
||||
stopTime = b;
|
||||
if (t >= firstday + SECSINDAY)
|
||||
firstday = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!startTime)
|
||||
startTime = firstday; // just to have something that's more than a week in the future
|
||||
else if (t > startTime || t > firstday + SECSINDAY + 3600) // +3600 in case of DST change
|
||||
firstday = 0;
|
||||
return active && startTime <= t && t < stopTime; // must stop *before* stopTime to allow adjacent timers
|
||||
}
|
||||
|
||||
|
4
config.h
4
config.h
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: config.h 1.107 2002/03/31 21:17:30 kls Exp $
|
||||
* $Id: config.h 1.109 2002/04/07 13:08:12 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
@ -19,7 +19,7 @@
|
||||
#include "eit.h"
|
||||
#include "tools.h"
|
||||
|
||||
#define VDRVERSION "1.0.0pre5"
|
||||
#define VDRVERSION "1.0.0"
|
||||
|
||||
#define MAXPRIORITY 99
|
||||
#define MAXLIFETIME 99
|
||||
|
34
dvbapi.c
34
dvbapi.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: dvbapi.c 1.166 2002/03/29 11:32:47 kls Exp $
|
||||
* $Id: dvbapi.c 1.170 2002/04/07 09:35:51 kls Exp $
|
||||
*/
|
||||
|
||||
#include "dvbapi.h"
|
||||
@ -1194,8 +1194,10 @@ void cReplayBuffer::DisplayFrame(uchar *b, int Length)
|
||||
CHECK(ioctl(videoDev, VIDEO_STILLPICTURE, &sp));
|
||||
#else
|
||||
#define MIN_IFRAME 400000
|
||||
for (int i = MIN_IFRAME / Length + 1; i > 0; i--)
|
||||
for (int i = MIN_IFRAME / Length + 1; i > 0; i--) {
|
||||
safe_write(videoDev, b, Length);
|
||||
usleep(1); // allows the buffer to be displayed in case the progress display is active
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -1612,6 +1614,18 @@ bool cVideoCutter::Start(const char *FileName)
|
||||
cRecording Recording(FileName);
|
||||
const char *evn = Recording.PrefixFileName('%');
|
||||
if (evn && RemoveVideoFile(evn) && MakeDirs(evn, true)) {
|
||||
// XXX this can be removed once RenameVideoFile() follows symlinks (see videodir.c)
|
||||
// remove a possible deleted recording with the same name to avoid symlink mixups:
|
||||
char *s = strdup(evn);
|
||||
char *e = strrchr(s, '.');
|
||||
if (e) {
|
||||
if (strcmp(e, ".rec") == 0) {
|
||||
strcpy(e, ".del");
|
||||
RemoveVideoFile(s);
|
||||
}
|
||||
}
|
||||
delete s;
|
||||
// XXX
|
||||
editedVersionName = strdup(evn);
|
||||
Recording.WriteSummary();
|
||||
cuttingBuffer = new cCuttingBuffer(FileName, editedVersionName);
|
||||
@ -2803,12 +2817,16 @@ void cEITScanner::Process(void)
|
||||
numTransponders = 0;
|
||||
}
|
||||
cChannel *Channel = Channels.GetByNumber(ch);
|
||||
if (Channel && Channel->pnr && !TransponderScanned(Channel)) {
|
||||
if (DvbApi == cDvbApi::PrimaryDvbApi && !currentChannel)
|
||||
currentChannel = DvbApi->Channel();
|
||||
Channel->Switch(DvbApi, false);
|
||||
lastChannel = ch;
|
||||
break;
|
||||
if (Channel) {
|
||||
if (Channel->ca <= MAXDVBAPI && !DvbApi->ProvidesCa(Channel->ca))
|
||||
break; // the channel says it explicitly needs a different card
|
||||
if (Channel->pnr && !TransponderScanned(Channel)) {
|
||||
if (DvbApi == cDvbApi::PrimaryDvbApi && !currentChannel)
|
||||
currentChannel = DvbApi->Channel();
|
||||
Channel->Switch(DvbApi, false);
|
||||
lastChannel = ch;
|
||||
break;
|
||||
}
|
||||
}
|
||||
ch++;
|
||||
}
|
||||
|
16
eit.c
16
eit.c
@ -16,7 +16,7 @@
|
||||
* the Free Software Foundation; either version 2 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* $Id: eit.c 1.42 2002/04/01 12:58:20 kls Exp $
|
||||
* $Id: eit.c 1.44 2002/04/06 13:58:59 kls Exp $
|
||||
***************************************************************************/
|
||||
|
||||
#include "eit.h"
|
||||
@ -390,12 +390,12 @@ bool cEventInfo::Read(FILE *f, cSchedule *Schedule)
|
||||
case 'e': pEvent = NULL;
|
||||
break;
|
||||
case 'c': // to keep things simple we react on 'c' here
|
||||
return false;
|
||||
return true;
|
||||
default: esyslog(LOG_ERR, "ERROR: unexpected tag while reading EPG data: %s", s);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
esyslog(LOG_ERR, "ERROR: unexpected end of file while reading EPG data");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@ -754,8 +754,8 @@ bool cSchedule::Read(FILE *f, cSchedules *Schedules)
|
||||
if (1 == sscanf(s + 1, "%u", &uServiceID)) {
|
||||
cSchedule *p = (cSchedule *)Schedules->SetCurrentServiceID(uServiceID);
|
||||
if (p) {
|
||||
while (cEventInfo::Read(f, p))
|
||||
; // loop stops after having read the closing 'c'
|
||||
if (!cEventInfo::Read(f, p))
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1090,10 +1090,10 @@ void cSIProcessor::Action()
|
||||
if (epgDataFileName && now - lastDump > 600)
|
||||
{
|
||||
cMutexLock MutexLock(&schedulesMutex);
|
||||
FILE *f = fopen(GetEpgDataFileName(), "w");
|
||||
if (f) {
|
||||
cSafeFile f(GetEpgDataFileName());
|
||||
if (f.Open()) {
|
||||
schedules->Dump(f);
|
||||
fclose(f);
|
||||
f.Close();
|
||||
}
|
||||
else
|
||||
LOG_ERROR;
|
||||
|
25
eit.diff
25
eit.diff
@ -1,25 +0,0 @@
|
||||
# This is a BitKeeper generated patch for the following project:
|
||||
# Project Name: Linux VDR
|
||||
# This patch format is intended for GNU patch command version 2.5 or higher.
|
||||
# This patch includes the following deltas:
|
||||
# ChangeSet 1.21 -> 1.22
|
||||
# eit.c 1.6 -> 1.7
|
||||
#
|
||||
# The following is the BitKeeper ChangeSet Log
|
||||
# --------------------------------------------
|
||||
# 02/04/01 aschultz@warp10.net 1.22
|
||||
# fix segfault in eit.c
|
||||
# --------------------------------------------
|
||||
#
|
||||
diff -Nru a/eit.c b/eit.c
|
||||
--- a/eit.c Mon Apr 1 14:38:00 2002
|
||||
+++ b/eit.c Mon Apr 1 14:38:00 2002
|
||||
@@ -559,7 +559,7 @@
|
||||
pSubtitle = compactspace(pSubtitle);
|
||||
pExtendedDescription = compactspace(pExtendedDescription);
|
||||
// Remove superfluous hyphens:
|
||||
- if (pExtendedDescription) {
|
||||
+ if (pExtendedDescription && strlen(pExtendedDescription) >= 3) {
|
||||
char *p = pExtendedDescription + 1;
|
||||
while (*p) {
|
||||
if (*p == '-' && *(p + 1) == ' ' && *(p + 2) && islower(*(p - 1)) && islower(*(p + 2))) {
|
12
menu.c
12
menu.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: menu.c 1.180 2002/03/31 21:17:42 kls Exp $
|
||||
* $Id: menu.c 1.182 2002/04/06 09:41:59 kls Exp $
|
||||
*/
|
||||
|
||||
#include "menu.h"
|
||||
@ -694,7 +694,7 @@ public:
|
||||
};
|
||||
|
||||
cMenuEditChannel::cMenuEditChannel(int Index)
|
||||
:cOsdMenu(tr("Edit Channel"), 14)
|
||||
:cOsdMenu(tr("Edit channel"), 14)
|
||||
{
|
||||
channel = Channels.Get(Index);
|
||||
if (channel) {
|
||||
@ -1070,7 +1070,7 @@ public:
|
||||
};
|
||||
|
||||
cMenuEditTimer::cMenuEditTimer(int Index, bool New)
|
||||
:cOsdMenu(tr("Edit Timer"), 12)
|
||||
:cOsdMenu(tr("Edit timer"), 12)
|
||||
{
|
||||
firstday = NULL;
|
||||
timer = Timers.Get(Index);
|
||||
@ -1539,6 +1539,7 @@ private:
|
||||
void PrepareSchedule(cChannel *Channel);
|
||||
public:
|
||||
cMenuSchedule(void);
|
||||
virtual ~cMenuSchedule();
|
||||
virtual eOSState ProcessKey(eKeys Key);
|
||||
};
|
||||
|
||||
@ -1556,6 +1557,11 @@ cMenuSchedule::cMenuSchedule(void)
|
||||
}
|
||||
}
|
||||
|
||||
cMenuSchedule::~cMenuSchedule()
|
||||
{
|
||||
cMenuWhatsOn::ScheduleEventInfo(); // makes sure any posted data is cleared
|
||||
}
|
||||
|
||||
static int CompareEventTime(const void *p1, const void *p2)
|
||||
{
|
||||
return (int)((*(cEventInfo **)p1)->GetTime() - (*(cEventInfo **)p2)->GetTime());
|
||||
|
56
mpatrol.diff
56
mpatrol.diff
@ -1,56 +0,0 @@
|
||||
# This is a BitKeeper generated patch for the following project:
|
||||
# Project Name: Linux VDR
|
||||
# This patch format is intended for GNU patch command version 2.5 or higher.
|
||||
# This patch includes the following deltas:
|
||||
# ChangeSet 1.20 -> 1.21
|
||||
# config.c 1.4 -> 1.5
|
||||
# tools.c 1.2 -> 1.3
|
||||
#
|
||||
# The following is the BitKeeper ChangeSet Log
|
||||
# --------------------------------------------
|
||||
# 02/04/01 aschultz@warp10.net 1.21
|
||||
# fix memory management due to MPatrol
|
||||
# --------------------------------------------
|
||||
#
|
||||
diff -Nru a/config.c b/config.c
|
||||
--- a/config.c Mon Apr 1 14:37:48 2002
|
||||
+++ b/config.c Mon Apr 1 14:37:48 2002
|
||||
@@ -265,7 +265,7 @@
|
||||
sscanf(apidbuf, "%d ,%d ", &apid1, &apid2);
|
||||
if (p)
|
||||
sscanf(p, "%d ,%d ", &dpid1, &dpid2);
|
||||
- delete apidbuf;
|
||||
+ free(apidbuf);
|
||||
}
|
||||
else
|
||||
return false;
|
||||
@@ -277,7 +277,7 @@
|
||||
tpid = 0;
|
||||
}
|
||||
strn0cpy(name, buffer, MaxChannelName);
|
||||
- delete buffer;
|
||||
+ free(buffer);
|
||||
}
|
||||
else
|
||||
return false;
|
||||
diff -Nru a/tools.c b/tools.c
|
||||
--- a/tools.c Mon Apr 1 14:37:48 2002
|
||||
+++ b/tools.c Mon Apr 1 14:37:48 2002
|
||||
@@ -71,7 +71,7 @@
|
||||
esyslog(LOG_ERR, "ERROR: out of memory");
|
||||
}
|
||||
else {
|
||||
- delete dest;
|
||||
+ free(dest);
|
||||
dest = NULL;
|
||||
}
|
||||
return dest;
|
||||
@@ -230,7 +230,7 @@
|
||||
const char *AddDirectory(const char *DirName, const char *FileName)
|
||||
{
|
||||
static char *buf = NULL;
|
||||
- delete buf;
|
||||
+ free(buf);
|
||||
asprintf(&buf, "%s/%s", DirName && *DirName ? DirName : ".", FileName);
|
||||
return buf;
|
||||
}
|
4
vdr.1
4
vdr.1
@ -8,9 +8,9 @@
|
||||
.\" License as specified in the file COPYING that comes with the
|
||||
.\" vdr distribution.
|
||||
.\"
|
||||
.\" $Id: vdr.1 1.2 2002/03/29 10:10:04 kls Exp $
|
||||
.\" $Id: vdr.1 1.3 2002/04/07 13:11:43 kls Exp $
|
||||
.\"
|
||||
.TH vdr 1 "29 Mar 2002" "1.0.0" "Video Disk Recorder"
|
||||
.TH vdr 1 "7 Apr 2002" "1.0.0" "Video Disk Recorder"
|
||||
.SH NAME
|
||||
vdr - the Video Disk Recorder
|
||||
.SH SYNOPSIS
|
||||
|
4
vdr.5
4
vdr.5
@ -8,9 +8,9 @@
|
||||
.\" License as specified in the file COPYING that comes with the
|
||||
.\" vdr distribution.
|
||||
.\"
|
||||
.\" $Id: vdr.5 1.3 2002/04/01 12:32:59 kls Exp $
|
||||
.\" $Id: vdr.5 1.4 2002/04/07 13:12:04 kls Exp $
|
||||
.\"
|
||||
.TH vdr 5 "29 Mar 2002" "1.0.0" "Video Disk Recorder Files"
|
||||
.TH vdr 5 "7 Apr 2002" "1.0.0" "Video Disk Recorder Files"
|
||||
.SH NAME
|
||||
vdr file formats - the Video Disk Recorder Files
|
||||
.SH DESCRIPTION
|
||||
|
Loading…
x
Reference in New Issue
Block a user