mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Version 1.2.5pre1
- Now explicitly handling exit value 0 and 2 in 'runvdr'. - Added a missing 'w' to the allowed characters for Finnish and Swedish (thanks to Lauri Tischler and Ragnar Sundblad). - Added channels for DVB-T Hannover (Germany) to channels.cont.terr (thanks to Peter Waechtler). - Fixed a hangup in SVDRP when the client disappears without sending QUIT (thanks to Robert Bartl for reporting this one). The problem was introduced in version 1.2.2 through the fix for an occasional "Broken pipe" error in SVDRP connections. - Updated 'channels.conf.terr' for Berlin. - Fixed displaying still pictures, now using the driver's VIDEO_STILLPICTURE call directly (thanks to Oliver Endriss). This also improves navigating through DVD menus with the DVD plugin. If this causes problems with your particular system (maybe because you are using the 'analogtv' plugin) you can reactivate the previous behaviour by commenting out the line #define VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES in VDR/dvbdevice.c. Note that you need driver version 2003-08-23 or later for this to work! - Fixed handling extra blanks in plugin command lines. - Actually implemented the SVDRP command DELC. - Now clearing the player device if there are too many poll timeouts in 'Transfer Mode', which avoids buffer overflows and black screens in such cases.
This commit is contained in:
parent
fc9c149eb9
commit
e4b016980b
@ -489,6 +489,8 @@ Oliver Endriss <o.endriss@gmx.de>
|
||||
the remote control keys
|
||||
for reporting a bug in reading 'epg.data' for channels with non-zero RID
|
||||
for fixing I/O handling in case an explicit controlling terminal is given
|
||||
for fixing displaying still pictures, now using the driver's VIDEO_STILLPICTURE call
|
||||
directly
|
||||
|
||||
Reinhard Walter Buchner <rw.buchner@freenet.de>
|
||||
for adding some satellites to 'sources.conf'
|
||||
@ -774,3 +776,9 @@ Manfred Schmidt-Voigt <manfred.schmidt-voigt@mannitec.de>
|
||||
Javier Marcet <lists@marcet.info>
|
||||
for reporting a problem when starting a recording on the primary device if there
|
||||
is a replay session active
|
||||
|
||||
Peter Waechtler <pwaechtler@mac.com>
|
||||
for adding channels for DVB-T Hannover (Germany) to channels.cont.terr
|
||||
|
||||
Robert Bartl <robert@bartl.priv.at>
|
||||
for reporting a hangup in SVDRP when the client disappears without sending QUIT
|
||||
|
25
HISTORY
25
HISTORY
@ -2315,7 +2315,7 @@ Video Disk Recorder Revision History
|
||||
- Removing deleted recordings faster than normal when cutting, to avoid running
|
||||
out of disk space (thanks to Manfred Schmidt-Voigt for reporting this one).
|
||||
|
||||
2003-08-24: Version 1.2.4
|
||||
2003-08-26: Version 1.2.4 (not officially released)
|
||||
|
||||
- Fixed 'runvdr' to stay in the loop only if VDR returns an exit status of '1'.
|
||||
- Completed the Finnish OSD texts (thanks to Rolf Ahrenberg).
|
||||
@ -2329,3 +2329,26 @@ Video Disk Recorder Revision History
|
||||
active (thanks to Javier Marcet for reporting this one).
|
||||
- Avoiding an unnecessary stop of an ongoing Transfer Mode when starting a
|
||||
recording on the primary device.
|
||||
|
||||
2003-08-31: Version 1.2.5pre1
|
||||
|
||||
- Now explicitly handling exit value 0 and 2 in 'runvdr'.
|
||||
- Added a missing 'w' to the allowed characters for Finnish and Swedish (thanks
|
||||
to Lauri Tischler and Ragnar Sundblad).
|
||||
- Added channels for DVB-T Hannover (Germany) to channels.cont.terr (thanks to
|
||||
Peter Waechtler).
|
||||
- Fixed a hangup in SVDRP when the client disappears without sending QUIT (thanks
|
||||
to Robert Bartl for reporting this one). The problem was introduced in version
|
||||
1.2.2 through the fix for an occasional "Broken pipe" error in SVDRP connections.
|
||||
- Updated 'channels.conf.terr' for Berlin.
|
||||
- Fixed displaying still pictures, now using the driver's VIDEO_STILLPICTURE call
|
||||
directly (thanks to Oliver Endriss). This also improves navigating through DVD
|
||||
menus with the DVD plugin. If this causes problems with your particular system
|
||||
(maybe because you are using the 'analogtv' plugin) you can reactivate the
|
||||
previous behaviour by commenting out the line
|
||||
#define VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES
|
||||
in VDR/dvbdevice.c.
|
||||
- Fixed handling extra blanks in plugin command lines.
|
||||
- Actually implemented the SVDRP command DELC.
|
||||
- Now clearing the player device if there are too many poll timeouts in 'Transfer
|
||||
Mode', which avoids buffer overflows and black screens in such cases.
|
||||
|
@ -45,7 +45,14 @@ Kerrang! (RADIO):537833:I0C34D0M16B8T2G32Y0:T:27500:0:1301:0:0:26304:0:0:0
|
||||
KISS (RADIO):537833:I0C34D0M16B8T2G32Y0:T:27500:0:1101:0:0:26176:0:0:0
|
||||
oneword (RADIO):537833:I0C34D0M16B8T2G32Y0:T:27500:0:1501:0:0:26432:0:0:0
|
||||
Smash Hits! (RADIO):537833:I0C34D0M16B8T2G32Y0:T:27500:0:1201:0:0:26240:0:0:0
|
||||
: DVB-T Berlin Germany
|
||||
: DVB-T Berlin, Germany
|
||||
BBC World:177500:I0C23D0M16B8T8G8Y0:T:27500:49:50:55:0:16387:0:0:0
|
||||
FAB:177500:I0C23D0M16B8T8G8Y0:T:27500:3073:3074:3079:0:16576:0:0:0
|
||||
WDR:177500:I0C23D0M16B8T8G8Y0:T:27500:241:242:247:0:15:0:0:0
|
||||
SWR BW:177500:I0C23D0M16B8T8G8Y0:T:27500:257:258:263:0:16:0:0:0
|
||||
MDR Fernsehen:191500:I0C23D0M16B8T8G8Y0:T:27500:101:102:104:0:1:0:0:0
|
||||
arte:191500:I0C23D0M16B8T8G8Y0:T:27500:201:202,203:204:0:2:0:0:0
|
||||
NDR Fernsehen:191500:I0C23D0M16B8T8G8Y0:T:27500:301:302:304:0:3:0:0:0
|
||||
RTL:506000:I0C23D0M16B8T8G8Y0:T:27500:337:338:343:0:16405:0:0:0
|
||||
RTL2:506000:I0C23D0M16B8T8G8Y0:T:27500:353:354:359:0:16406:0:0:0
|
||||
Super RTL:506000:I0C23D0M16B8T8G8Y0:T:27500:433:434:439:0:16411:0:0:0
|
||||
@ -61,6 +68,15 @@ Kabel 1:658000:I0C23D0M16B8T8G8Y0:T:27500:161:162:167:0:16394:0:0:0
|
||||
N24:658000:I0C23D0M16B8T8G8Y0:T:27500:225:226:231:0:16398:0:0:0
|
||||
ProSieben:658000:I0C23D0M16B8T8G8Y0:T:27500:305:306;307:311:0:16403:0:0:0
|
||||
SAT.1:658000:I0C23D0M16B8T8G8Y0:T:27500:385:386:391:0:16408:0:0:0
|
||||
MTV:778000:I0C23D0M16B8T8G8Y0:T:27500:193:194:199:0:16396:0:0:0
|
||||
n-tv:778000:I0C23D0M16B8T8G8Y0:T:27500:273:274:279:0:16401:0:0:0
|
||||
Eurosport:778000:I0C23D0M16B8T8G8Y0:T:27500:577:578:583:0:16420:0:0:0
|
||||
Testkanal 9live:754000:I0C23D0M16B8T8G8Y0:T:27500:273:274:279:0:16401:0:0:0
|
||||
Eurosport:754000:I0C23D0M16B8T8G8Y0:T:27500:577:578:583:0:16420:0:0:0
|
||||
DSF:754000:I0C23D0M16B8T8G8Y0:T:27500:129:130:135:0:16392:0:0:0
|
||||
VIVA Plus:754000:I0C23D0M16B8T8G8Y0:T:27500:529:530:535:0:16417:0:0:0
|
||||
Testkanal Pro7:778000:I0C23D0M16B8T8G8Y0:T:27500:305:306:311:0:16403:0:0:0
|
||||
: DVB-T Hannover, Germany
|
||||
ARD:554000:I0C12D0M16B8T8G32Y0:T:27500:512:650:513:0:28156:0:0:0
|
||||
ZDF:554000:I0C12D0M16B8T8G32Y0:T:27500:513:651:513:0:28160:0:0:0
|
||||
NDR:554000:I0C12D0M16B8T8G32Y0:T:27500:514:652:513:0:28162:0:0:0
|
||||
RTL:530500:I0C12D0M16B8T8G32Y0:T:27500:512:650:513:0:1:0:0:0
|
||||
SAT1:530500:I0C12D0M16B8T8G32Y0:T:27500:513:651:513:0:2:0:0:0
|
||||
9Live:530500:I0C12D0M16B8T8G32Y0:T:27500:514:652:513:0:3:0:0:0
|
||||
|
6
config.h
6
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.169 2003/08/24 10:52:20 kls Exp $
|
||||
* $Id: config.h 1.170 2003/08/30 08:39:37 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __CONFIG_H
|
||||
@ -19,8 +19,8 @@
|
||||
#include "device.h"
|
||||
#include "tools.h"
|
||||
|
||||
#define VDRVERSION "1.2.4"
|
||||
#define VDRVERSNUM 10204 // Version * 10000 + Major * 100 + Minor
|
||||
#define VDRVERSION "1.2.5pre1"
|
||||
#define VDRVERSNUM 10205 // Version * 10000 + Major * 100 + Minor
|
||||
|
||||
#define MAXPRIORITY 99
|
||||
#define MAXLIFETIME 99
|
||||
|
42
dvbdevice.c
42
dvbdevice.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: dvbdevice.c 1.62 2003/08/24 14:23:12 kls Exp $
|
||||
* $Id: dvbdevice.c 1.63 2003/08/30 11:40:41 kls Exp $
|
||||
*/
|
||||
|
||||
#include "dvbdevice.h"
|
||||
@ -896,11 +896,49 @@ void cDvbDevice::StillPicture(const uchar *Data, int Length)
|
||||
If anybody ever finds out what could be changed so that VIDEO_STILLPICTURE
|
||||
could be used, please let me know!
|
||||
kls 2002-03-23
|
||||
2003-08-30: apparently the driver can't handle PES data, so Oliver Endriss
|
||||
<o.endriss@gmx.de> has changed this to strip all PES headers
|
||||
and send pure ES data to the driver. Seems to work just fine!
|
||||
Let's drop the VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES stuff
|
||||
once this has proven to work in all cases.
|
||||
*/
|
||||
//#define VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES
|
||||
#define VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES
|
||||
#ifdef VIDEO_STILLPICTURE_WORKS_WITH_VDR_FRAMES
|
||||
if (Data[0] == 0x00 && Data[1] == 0x00 && Data[2] == 0x01 && (Data[3] & 0xF0) == 0xE0) {
|
||||
// PES data
|
||||
char *buf = MALLOC(char, Length);
|
||||
if (!buf)
|
||||
return;
|
||||
int i = 0;
|
||||
int blen = 0;
|
||||
while (i < Length - 4) {
|
||||
if (Data[i] == 0x00 && Data[i + 1] == 0x00 && Data[i + 2] == 0x01 && (Data[i + 3] & 0xF0) == 0xE0) {
|
||||
// skip PES header
|
||||
int offs = i + 6;
|
||||
int len = Data[i + 4] * 256 + Data[i + 5];
|
||||
// skip header extension
|
||||
if ((Data[i + 6] & 0xC0) == 0x80) {
|
||||
offs += 3;
|
||||
offs += Data[i + 8];
|
||||
len -= 3;
|
||||
len -= Data[i + 8];
|
||||
}
|
||||
memcpy(&buf[blen], &Data[offs], len);
|
||||
i = offs + len;
|
||||
blen += len;
|
||||
}
|
||||
else
|
||||
i++;
|
||||
}
|
||||
video_still_picture sp = { buf, blen };
|
||||
CHECK(ioctl(fd_video, VIDEO_STILLPICTURE, &sp));
|
||||
free(buf);
|
||||
}
|
||||
else {
|
||||
// non-PES data
|
||||
video_still_picture sp = { (char *)Data, Length };
|
||||
CHECK(ioctl(fd_video, VIDEO_STILLPICTURE, &sp));
|
||||
}
|
||||
#else
|
||||
#define MIN_IFRAME 400000
|
||||
for (int i = MIN_IFRAME / Length + 1; i > 0; i--) {
|
||||
|
8
i18n.c
8
i18n.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: i18n.c 1.131 2003/08/24 10:52:08 kls Exp $
|
||||
* $Id: i18n.c 1.133 2003/08/26 15:27:25 kls Exp $
|
||||
*
|
||||
* Translations provided by:
|
||||
*
|
||||
@ -79,7 +79,7 @@ const tI18nPhrase Phrases[] = {
|
||||
"Português",
|
||||
"Français",
|
||||
"Norsk",
|
||||
"Suomi",
|
||||
"suomi", // this is not a typo - it's really lowercase!
|
||||
"Polski",
|
||||
"Español",
|
||||
"Ellinika",
|
||||
@ -2724,11 +2724,11 @@ const tI18nPhrase Phrases[] = {
|
||||
"",// TODO
|
||||
" aàbcçdeéèêfghiîjklmnoôpqrstuùûvwxyz0123456789-.#~",
|
||||
"",// TODO
|
||||
" abcdefghijklmnopqrstuvxyzåäö0123456789-.#~",
|
||||
" abcdefghijklmnopqrstuvwxyzåäö0123456789-.#~",
|
||||
" abcdefghijklmnopqrstuvwxyz0123456789-.#~",
|
||||
" aábcdeéfghiíjklmnñoópqrstuúvwxyz0123456789-.#~",
|
||||
"",// TODO
|
||||
" abcdefghijklmnopqrstuvxyzåäö0123456789-.#~",
|
||||
" abcdefghijklmnopqrstuvwxyzåäö0123456789-.#~",
|
||||
" abcdefghijklmnopqrstuvwxyz0123456789-.#~",
|
||||
" aábcdeéfghiíjklmnoóöpqrstuúüvwxyz0123456789-.,#~",
|
||||
" aàbcçdeéèfghiíjklmnoòpqrstuúvwxyz0123456789-.,#~_·",
|
||||
|
8
plugin.c
8
plugin.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: plugin.c 1.9 2003/05/09 15:01:26 kls Exp $
|
||||
* $Id: plugin.c 1.10 2003/08/30 14:52:58 kls Exp $
|
||||
*/
|
||||
|
||||
#include "plugin.h"
|
||||
@ -170,7 +170,7 @@ bool cDll::Load(bool Log)
|
||||
if (plugin && args) {
|
||||
int argc = 0;
|
||||
char *argv[MAXPLUGINARGS];
|
||||
char *p = args;
|
||||
char *p = skipspace(stripspace(args));
|
||||
char *q = NULL;
|
||||
bool done = false;
|
||||
while (!done) {
|
||||
@ -205,7 +205,7 @@ bool cDll::Load(bool Log)
|
||||
}
|
||||
}
|
||||
if (!done)
|
||||
p++;
|
||||
p = *p ? p + 1 : skipspace(p + 1);
|
||||
}
|
||||
}
|
||||
argv[argc] = NULL;
|
||||
@ -278,7 +278,7 @@ void cPluginManager::AddPlugin(const char *Args)
|
||||
}
|
||||
return;
|
||||
}
|
||||
char *s = strdup(Args);
|
||||
char *s = strdup(skipspace(Args));
|
||||
char *p = strchr(s, ' ');
|
||||
if (p)
|
||||
*p = 0;
|
||||
|
4
runvdr
4
runvdr
@ -18,7 +18,7 @@
|
||||
# See the main source file 'vdr.c' for copyright information and
|
||||
# how to reach the author.
|
||||
#
|
||||
# $Id: runvdr 1.10 2003/08/17 14:27:31 kls Exp $
|
||||
# $Id: runvdr 1.11 2003/08/26 16:15:41 kls Exp $
|
||||
|
||||
DVBDIR="../DVB/driver"
|
||||
VDRPRG="./vdr"
|
||||
@ -34,7 +34,7 @@ if [ $LSMOD -eq 0 ] ; then
|
||||
|
||||
while (true) do
|
||||
su -c "$VDRCMD" $VDRUSR
|
||||
if test $? -ne 1; then exit; fi
|
||||
if test $? -eq 0 -o $? -eq 2; then exit; fi
|
||||
date
|
||||
echo "restarting VDR"
|
||||
$KILL $VDRPRG
|
||||
|
30
svdrp.c
30
svdrp.c
@ -10,7 +10,7 @@
|
||||
* and interact with the Video Disk Recorder - or write a full featured
|
||||
* graphical interface that sits on top of an SVDRP connection.
|
||||
*
|
||||
* $Id: svdrp.c 1.53 2003/07/26 10:57:33 kls Exp $
|
||||
* $Id: svdrp.c 1.55 2003/08/31 11:24:47 kls Exp $
|
||||
*/
|
||||
|
||||
#include "svdrp.h"
|
||||
@ -464,8 +464,30 @@ void cSVDRP::CmdCLRE(const char *Option)
|
||||
|
||||
void cSVDRP::CmdDELC(const char *Option)
|
||||
{
|
||||
//TODO combine this with menu action (timers must be updated)
|
||||
Reply(502, "DELC not yet implemented");
|
||||
if (*Option) {
|
||||
if (isnumber(Option)) {
|
||||
cChannel *channel = Channels.GetByNumber(strtol(Option, NULL, 10));
|
||||
if (channel) {
|
||||
for (cTimer *timer = Timers.First(); timer; timer = Timers.Next(timer)) {
|
||||
if (timer->Channel() == channel) {
|
||||
Reply(550, "Channel \"%s\" is in use by timer %d", Option, timer->Index() + 1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
Channels.Del(channel);
|
||||
Channels.ReNumber();
|
||||
Channels.Save();
|
||||
isyslog("channel %s deleted", Option);
|
||||
Reply(250, "Channel \"%s\" deleted", Option);
|
||||
}
|
||||
else
|
||||
Reply(501, "Channel \"%s\" not defined", Option);
|
||||
}
|
||||
else
|
||||
Reply(501, "Error in channel number \"%s\"", Option);
|
||||
}
|
||||
else
|
||||
Reply(501, "Missing channel number");
|
||||
}
|
||||
|
||||
void cSVDRP::CmdDELR(const char *Option)
|
||||
@ -1104,6 +1126,8 @@ bool cSVDRP::Process(void)
|
||||
isyslog("lost connection to SVDRP client");
|
||||
Close();
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
if (Setup.SVDRPTimeout && time(NULL) - lastActivity > Setup.SVDRPTimeout) {
|
||||
isyslog("timeout on SVDRP connection");
|
||||
|
12
transfer.c
12
transfer.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: transfer.c 1.13 2003/05/18 15:22:09 kls Exp $
|
||||
* $Id: transfer.c 1.14 2003/08/31 12:19:16 kls Exp $
|
||||
*/
|
||||
|
||||
#include "transfer.h"
|
||||
@ -13,6 +13,7 @@
|
||||
// The size of the array used to buffer video data:
|
||||
// (must be larger than MINVIDEODATA - see remux.h)
|
||||
#define VIDEOBUFSIZE MEGABYTE(1)
|
||||
#define POLLTIMEOUTS_BEFORE_DEVICECLEAR 3
|
||||
|
||||
// --- cTransfer -------------------------------------------------------------
|
||||
|
||||
@ -67,6 +68,7 @@ void cTransfer::Action(void)
|
||||
{
|
||||
dsyslog("transfer thread started (pid=%d)", getpid());
|
||||
|
||||
int PollTimeouts = 0;
|
||||
active = true;
|
||||
while (active) {
|
||||
|
||||
@ -99,6 +101,7 @@ void cTransfer::Action(void)
|
||||
while (Result > 0 && active) {
|
||||
cPoller Poller;
|
||||
if (DevicePoll(Poller, 100)) {
|
||||
PollTimeouts = 0;
|
||||
int w = PlayVideo(p, Result);
|
||||
if (w > 0) {
|
||||
p += w;
|
||||
@ -109,6 +112,13 @@ void cTransfer::Action(void)
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
PollTimeouts++;
|
||||
if (PollTimeouts == POLLTIMEOUTS_BEFORE_DEVICECLEAR) {
|
||||
dsyslog("clearing device because of consecutive poll timeouts");
|
||||
DeviceClear();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user