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:
Klaus Schmidinger 2002-04-07 18:00:00 +02:00
parent 262327908d
commit c9a5d8ea53
12 changed files with 287 additions and 126 deletions

View File

@ -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
View File

@ -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).

View File

@ -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
}

View File

@ -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

View File

@ -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
View File

@ -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;

View File

@ -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))) {

203
i18n.c

File diff suppressed because it is too large Load Diff

12
menu.c
View File

@ -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());

View File

@ -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
View File

@ -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
View File

@ -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