Compare commits

...

18 Commits

Author SHA1 Message Date
Klaus Schmidinger
186ceaaacb Fixed cRecordings::DelByName() to avoid compilation errors with gcc 4.4 (backport from version 1.7.9) 2012-02-14 13:57:25 +01:00
Klaus Schmidinger
36b1caedc2 Modified cSVDRP::CmdGRAB() to avoid writing into const data (backport from version 1.7.8) 2012-02-14 13:55:52 +01:00
Klaus Schmidinger
6715f40484 Added some missing 'const' keywords to avoid compilation errors with gcc 4.4 (backport from version 1.7.8) 2012-02-14 13:53:38 +01:00
Klaus Schmidinger
17485ccc96 Changed cDvbDevice::GrabImage() to use V4L2 (backport from version 1.7.3) 2012-02-14 13:41:52 +01:00
Klaus Schmidinger
1857a0ca20 Removed unneeded include files <linux/dvb/dmx.h> und <time.h> from remux.h 2008-09-06 14:46:56 +02:00
Klaus Schmidinger
a5adaefb68 Version 1.6.0-2 2008-09-06 14:30:00 +02:00
Klaus Schmidinger
89bb6f57fd Fixed wrong value for TableIdBAT in libsi/si.h 2008-09-06 12:42:54 +02:00
Klaus Schmidinger
1f0776c548 Replaced the Finnish language code "smi" with "suo" 2008-09-06 12:22:46 +02:00
Klaus Schmidinger
5da044b4ae Fixed a problem with calling isyslog() from within the SignalHandler() 2008-09-06 11:10:17 +02:00
Klaus Schmidinger
da3939cb10 Fixed a possible integer overflow in GetAbsTime() 2008-09-06 09:34:49 +02:00
Klaus Schmidinger
de67eacbda Updated the sources.conf file 2008-08-16 10:08:20 +02:00
Klaus Schmidinger
7e41418615 No longer calling FcFini() to avoid problems with older (broken) versions of fontconfig 2008-05-03 10:00:10 +02:00
Klaus Schmidinger
7c924aa664 The SVDRP signon message now indicates the character encoding in use 2008-05-02 14:29:49 +02:00
Klaus Schmidinger
a8478802a3 Updated the Italian OSD texts 2008-04-19 10:04:25 +02:00
Klaus Schmidinger
6b32797180 Increased the time between checking the CAM status to 500ms to avoid problems with some CAMs 2008-04-13 13:34:03 +02:00
Klaus Schmidinger
1d417431d6 Fixed initializing the timer's flags in the cTimer copy constructor 2008-04-13 12:47:58 +02:00
Klaus Schmidinger
f933b63d1f Improved logging system time changes to avoid problems on slow systems under heavy load 2008-04-13 11:47:41 +02:00
Klaus Schmidinger
644fcc3bbe Fixed handling the counter in detection of pre 1.3.19 PS data 2008-04-13 11:16:00 +02:00
19 changed files with 271 additions and 162 deletions

View File

@ -595,6 +595,8 @@ Helmut Auer <vdr@helmutauer.de>
not two hex digits after the '#'
for suggesting to suppress the automatic shutdown if the remote control is
currently disabled
for suggesting to improve logging system time changes to avoid problems on slow
systems under heavy load
Jeremy Hall <jhall@UU.NET>
for fixing an incomplete initialization of the filter parameters in eit.c
@ -958,6 +960,7 @@ Andreas Mair <andreas@vdr-developer.org>
for making the SVDRP command LSTC list the channels with group separators if the
option ':groups' is given
for fixing handling 3 and 4 byte UTF-8 symbols in Utf8CharGet()
for fixing initializing the timer's flags in the cTimer copy constructor
Olivier Jacques <jacquesolivier@hotmail.com>)
for translating OSD texts to the French language
@ -1050,6 +1053,7 @@ Rolf Ahrenberg <rahrenbe@cc.hut.fi>
language
for fixing displaying the free disk space when entering the recordings menu where
the last replayed recording was in a subdirectory, and pressing Back
for replacing the Finnish language code "smi" with "suo"
Ralf Klueber <ralf.klueber@vodafone.com>
for reporting a bug in cutting a recording if there is only a single editing mark
@ -1174,6 +1178,7 @@ Reinhard Nissl <rnissl@gmx.de>
for reporting an invalid access in the section handler when ending VDR
for pointing out that cDevice::Transferring() doesn't return the right value in the
early stage of channel switching
for fixing handling the counter in detection of pre 1.3.19 PS data
Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the
@ -1506,6 +1511,7 @@ Arthur Konovalov <kasjas@hot.ee>
for translating OSD texts to the Estonian language
for fixing a missing ',' in the Greek OSD texts
for fixing a missing ',' in the Swedish OSD texts
for reporting problems with CAMs when checking the CAM status too frequently
Milos Kapoun <m.kapoun@cra.cz>
for suggesting to skip code table info in SI data
@ -1574,6 +1580,7 @@ Udo Richter <udo_richter@gmx.de>
for making housekeeping wait for a while after a replay has ended
for fixing error handling in cCuttingThread::Action()
for suppressing the automatic shutdown if the remote control is currently disabled
for fixing a problem with calling isyslog() from within the SignalHandler()
Sven Kreiensen <svenk@kammer.uni-hannover.de>
for his help in keeping 'channels.conf.terr' up to date
@ -1890,6 +1897,7 @@ Alexander Rieger <Alexander.Rieger@inka.de>
for fixing cTimer::operator=() in case a cTimer variable is assigned to itself
for making the list of tracks given in cStatus::SetAudioTrack() NULL terminated
for fixing handling kLeft in the calls to cStatus::MsgOsdTextItem()
for fixing a possible integer overflow in GetAbsTime()
Philip Prindeville <philipp_subx@redfish-solutions.com>
for updates to 'sources.conf'
@ -2111,6 +2119,7 @@ Tobias Grimm <tobias.grimm@e-tobi.net>
for making the non-breaking space symbol be rendered as a blank
for fixing a signed character used as index in cBase64Encoder::NextLine()
for fixing formatting the name section in the VDR man pages
for reporting unneeded include files <linux/dvb/dmx.h> und <time.h> in remux.h
Helge Lenz <h.lenz@gmx.de>
for reporting a bug in setting the 'Delta' parameter when calling the shutdown
@ -2347,3 +2356,20 @@ Adrian Caval <anrxc@sysphere.org>
Nan Feng <nfgx@21cn.com>
for translating OSD texts to the Chinese language
Edgar Toernig <froese@gmx.de>
for suggesting to not call FcFini() to avoid problems with older (broken) versions
of fontconfig
Winfried Köhler <w_koehl@gmx.de>
for fixing wrong value for TableIdBAT in libsi/si.h
Ralf Schueler <dl4mw@schueler.ws>
for backporting "Changed cDvbDevice::GrabImage() to use V4L" from version 1.7.3
to 1.6.0-3
for backporting "Added some missing 'const' keywords to avoid compilation errors
with gcc 4.4" from version 1.7.8 to 1.6.0-3
for backporting "Modified cSVDRP::CmdGRAB() to avoid writing into const data"
from version 1.7.8 to 1.6.0-3
for backporting "Fixed cRecordings::DelByName() to avoid compilation errors with
gcc 4.4" from version 1.7.9 to 1.6.0-3

40
HISTORY
View File

@ -5729,3 +5729,43 @@ Video Disk Recorder Revision History
- Added Chinese language texts (thanks to Nan Feng).
- Updated the Portuguese language texts.
- Added a note about VDR_CHARSET_OVERRIDE to the INSTALL file.
2008-04-13: Version 1.6.0-1
- Fixed handling the counter in detection of pre 1.3.19 PS data (thanks to Reinhard
Nissl).
- Improved logging system time changes to avoid problems on slow systems under
heavy load (suggested by Helmut Auer).
- Fixed initializing the timer's flags in the cTimer copy constructor (thanks to
Andreas Mair).
- Increased the time between checking the CAM status to 500ms to avoid problems
with some CAMs (reported by Arthur Konovalov).
2008-09-06: Version 1.6.0-2
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- The SVDRP signon message now indicates the character encoding in use, as in
"220 video SVDRP VideoDiskRecorder 1.7.1; Fri May 2 16:17:10 2008; ISO-8859-1".
This may be useful for instance for external tools that provide EPG data, so that
they can correctly encode the strings.
- No longer calling FcFini() to avoid problems with older (broken) versions of
fontconfig (suggested by Edgar Toernig).
- Updated the sources.conf file (thanks to Oleg Roitburd).
- Fixed a possible integer overflow in GetAbsTime() (thanks to Alexander Rieger).
- Fixed a problem with calling isyslog() from within the SignalHandler() (thanks
to Udo Richter).
- Replaced the Finnish language code "smi" with "suo" (thanks to Rolf Ahrenberg).
- Fixed wrong value for TableIdBAT in libsi/si.h (thanks to Winfried Köhler).
- Removed unneeded include files <linux/dvb/dmx.h> und <time.h> from remux.h
(reported by Tobias Grimm).
2012-02-14: Version 1.6.0-3
- Changed cDvbDevice::GrabImage() to use V4L2
(backport from version 1.7.3, thanks to Ralf Schueler).
- Added some missing 'const' keywords to avoid compilation errors with gcc 4.4
(backport from version 1.7.8, thanks to Ralf Schueler).
- Modified cSVDRP::CmdGRAB() to avoid writing into const data
(backport from version 1.7.8, thanks to Ralf Schueler).
- Fixed cRecordings::DelByName() to avoid compilation errors with gcc 4.4
(backport from version 1.7.9, thanks to Ralf Schueler).

4
ci.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: ci.c 1.48 2007/04/30 13:02:49 kls Exp $
* $Id: ci.c 1.48.1.1 2008/04/13 13:33:32 kls Exp $
*/
#include "ci.h"
@ -1525,7 +1525,7 @@ void cCiAdapter::Action(void)
cCamSlots CamSlots;
#define MODULE_CHECK_INTERVAL 100 // ms
#define MODULE_CHECK_INTERVAL 500 // ms
#define MODULE_RESET_TIMEOUT 2 // s
cCamSlot::cCamSlot(cCiAdapter *CiAdapter)

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.310 2008/03/23 10:26:10 kls Exp $
* $Id: config.h 1.310.1.3 2012/02/14 12:16:31 kls Exp $
*/
#ifndef __CONFIG_H
@ -22,7 +22,7 @@
// VDR's own version number:
#define VDRVERSION "1.6.0"
#define VDRVERSION "1.6.0-3"
#define VDRVERSNUM 10600 // Version * 10000 + Major * 100 + Minor
// The plugin API's version number:

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: device.c 1.157 2008/03/09 10:03:34 kls Exp $
* $Id: device.c 1.157.1.1 2008/04/13 11:16:00 kls Exp $
*/
#include "device.h"
@ -1273,7 +1273,7 @@ int cDevice::PlayPesPacket(const uchar *Data, int Length, bool VideoOnly)
uchar SubStreamIndex = SubStreamId & 0x1F;
// Compatibility mode for old VDR recordings, where 0xBD was only AC3:
pre_1_3_19_PrivateStreamDeteced:
pre_1_3_19_PrivateStreamDetected:
if (pre_1_3_19_PrivateStream > MIN_PRE_1_3_19_PRIVATESTREAM) {
SubStreamId = c;
SubStreamType = 0x80;
@ -1314,7 +1314,8 @@ pre_1_3_19_PrivateStreamDeteced:
if (pre_1_3_19_PrivateStream > MIN_PRE_1_3_19_PRIVATESTREAM) {
dsyslog("switching to pre 1.3.19 Dolby Digital compatibility mode - substream id = %02X", SubStreamId);
ClrAvailableTracks();
goto pre_1_3_19_PrivateStreamDeteced;
pre_1_3_19_PrivateStream = MIN_PRE_1_3_19_PRIVATESTREAM + 1;
goto pre_1_3_19_PrivateStreamDetected;
}
}
}

View File

@ -4,13 +4,13 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: dvbdevice.c 1.170 2008/02/09 16:11:44 kls Exp $
* $Id: dvbdevice.c 1.170.1.1 2012/02/14 12:36:30 kls Exp $
*/
#include "dvbdevice.h"
#include <errno.h>
#include <limits.h>
#include <linux/videodev.h>
#include <linux/videodev2.h>
#include <linux/dvb/audio.h>
#include <linux/dvb/dmx.h>
#include <linux/dvb/frontend.h>
@ -521,69 +521,103 @@ uchar *cDvbDevice::GrabImage(int &Size, bool Jpeg, int Quality, int SizeX, int S
int videoDev = open(buffer, O_RDWR);
if (videoDev >= 0) {
uchar *result = NULL;
struct video_mbuf mbuf;
if (ioctl(videoDev, VIDIOCGMBUF, &mbuf) == 0) {
int msize = mbuf.size;
unsigned char *mem = (unsigned char *)mmap(0, msize, PROT_READ | PROT_WRITE, MAP_SHARED, videoDev, 0);
if (mem && mem != (unsigned char *)-1) {
// set up the size and RGB
struct video_capability vc;
if (ioctl(videoDev, VIDIOCGCAP, &vc) == 0) {
struct video_mmap vm;
vm.frame = 0;
if ((SizeX > 0) && (SizeX <= vc.maxwidth) &&
(SizeY > 0) && (SizeY <= vc.maxheight)) {
vm.width = SizeX;
vm.height = SizeY;
}
else {
vm.width = vc.maxwidth;
vm.height = vc.maxheight;
}
vm.format = VIDEO_PALETTE_RGB24;
if (ioctl(videoDev, VIDIOCMCAPTURE, &vm) == 0 && ioctl(videoDev, VIDIOCSYNC, &vm.frame) == 0) {
// make RGB out of BGR:
int memsize = vm.width * vm.height;
unsigned char *mem1 = mem;
for (int i = 0; i < memsize; i++) {
unsigned char tmp = mem1[2];
mem1[2] = mem1[0];
mem1[0] = tmp;
mem1 += 3;
}
// set up the size and RGB
v4l2_format fmt;
memset(&fmt, 0, sizeof(fmt));
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
fmt.fmt.pix.width = SizeX;
fmt.fmt.pix.height = SizeY;
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_BGR24;
fmt.fmt.pix.field = V4L2_FIELD_ANY;
if (ioctl(videoDev, VIDIOC_S_FMT, &fmt) == 0) {
v4l2_requestbuffers reqBuf;
memset(&reqBuf, 0, sizeof(reqBuf));
reqBuf.count = 2;
reqBuf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
reqBuf.memory = V4L2_MEMORY_MMAP;
if (ioctl(videoDev, VIDIOC_REQBUFS, &reqBuf) >= 0) {
v4l2_buffer mbuf;
memset(&mbuf, 0, sizeof(mbuf));
mbuf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
mbuf.memory = V4L2_MEMORY_MMAP;
if (ioctl(videoDev, VIDIOC_QUERYBUF, &mbuf) == 0) {
int msize = mbuf.length;
unsigned char *mem = (unsigned char *)mmap(0, msize, PROT_READ | PROT_WRITE, MAP_SHARED, videoDev, 0);
if (mem && mem != (unsigned char *)-1) {
v4l2_buffer buf;
memset(&buf, 0, sizeof(buf));
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
buf.memory = V4L2_MEMORY_MMAP;
buf.index = 0;
if (ioctl(videoDev, VIDIOC_QBUF, &buf) == 0) {
v4l2_buf_type type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
if (ioctl (videoDev, VIDIOC_STREAMON, &type) == 0) {
memset(&buf, 0, sizeof(buf));
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
buf.memory = V4L2_MEMORY_MMAP;
buf.index = 0;
if (ioctl(videoDev, VIDIOC_DQBUF, &buf) == 0) {
if (ioctl(videoDev, VIDIOC_STREAMOFF, &type) == 0) {
// make RGB out of BGR:
int memsize = fmt.fmt.pix.width * fmt.fmt.pix.height;
unsigned char *mem1 = mem;
for (int i = 0; i < memsize; i++) {
unsigned char tmp = mem1[2];
mem1[2] = mem1[0];
mem1[0] = tmp;
mem1 += 3;
}
if (Quality < 0)
Quality = 100;
if (Quality < 0)
Quality = 100;
dsyslog("grabbing to %s %d %d %d", Jpeg ? "JPEG" : "PNM", Quality, vm.width, vm.height);
if (Jpeg) {
// convert to JPEG:
result = RgbToJpeg(mem, vm.width, vm.height, Size, Quality);
if (!result)
esyslog("ERROR: failed to convert image to JPEG");
}
else {
// convert to PNM:
char buf[32];
snprintf(buf, sizeof(buf), "P6\n%d\n%d\n255\n", vm.width, vm.height);
int l = strlen(buf);
int bytes = memsize * 3;
Size = l + bytes;
result = MALLOC(uchar, Size);
if (result) {
memcpy(result, buf, l);
memcpy(result + l, mem, bytes);
dsyslog("grabbing to %s %d %d %d", Jpeg ? "JPEG" : "PNM", Quality, fmt.fmt.pix.width, fmt.fmt.pix.height);
if (Jpeg) {
// convert to JPEG:
result = RgbToJpeg(mem, fmt.fmt.pix.width, fmt.fmt.pix.height, Size, Quality);
if (!result)
esyslog("ERROR: failed to convert image to JPEG");
}
else {
// convert to PNM:
char buf[32];
snprintf(buf, sizeof(buf), "P6\n%d\n%d\n255\n", fmt.fmt.pix.width, fmt.fmt.pix.height);
int l = strlen(buf);
int bytes = memsize * 3;
Size = l + bytes;
result = MALLOC(uchar, Size);
if (result) {
memcpy(result, buf, l);
memcpy(result + l, mem, bytes);
}
else
esyslog("ERROR: failed to convert image to PNM");
}
}
else
esyslog("ERROR: video device VIDIOC_STREAMOFF failed");
}
else
esyslog("ERROR: video device VIDIOC_DQBUF failed");
}
else
esyslog("ERROR: failed to convert image to PNM");
esyslog("ERROR: video device VIDIOC_STREAMON failed");
}
else
esyslog("ERROR: video device VIDIOC_QBUF failed");
munmap(mem, msize);
}
else
esyslog("ERROR: failed to memmap video device");
}
munmap(mem, msize);
else
esyslog("ERROR: video device VIDIOC_QUERYBUF failed");
}
else
esyslog("ERROR: failed to memmap video device");
esyslog("ERROR: video device VIDIOC_REQBUFS failed");
}
else
esyslog("ERROR: video device VIDIOC_S_FMT failed");
close(videoDev);
return result;
}

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: dvbdevice.h 1.47 2008/02/08 13:48:31 kls Exp $
* $Id: dvbdevice.h 1.47.1.1 2012/02/14 12:46:35 kls Exp $
*/
#ifndef __DVBDEVICE_H
@ -15,8 +15,8 @@
#include "device.h"
#include "dvbspu.h"
#if DVB_API_VERSION != 3
#error VDR requires Linux DVB driver API version 3!
#if (DVB_API_VERSION << 8 | DVB_API_VERSION_MINOR) < 0x0300
#error VDR requires Linux DVB driver API version 3.0 or higher!
#endif
#define MAXDVBDEVICES 8

8
eit.c
View File

@ -8,7 +8,7 @@
* Robert Schneider <Robert.Schneider@web.de> and Rolf Hakenes <hakenes@hippomi.de>.
* Adapted to 'libsi' for VDR 1.3.0 by Marcel Wiesweg <marcel.wiesweg@gmx.de>.
*
* $Id: eit.c 1.126 2007/09/26 10:56:33 kls Exp $
* $Id: eit.c 1.126.1.1 2008/04/13 11:46:38 kls Exp $
*/
#include "eit.h"
@ -300,9 +300,9 @@ cTDT::cTDT(const u_char *Data)
if (diff > 2) {
mutex.Lock();
if (abs(diff - lastDiff) < 3) {
isyslog("System Time = %s (%ld)", *TimeToString(loctim), loctim);
isyslog("Local Time = %s (%ld)", *TimeToString(sattim), sattim);
if (stime(&sattim) < 0)
if (stime(&sattim) == 0)
isyslog("system time changed from %s (%ld) to %s (%ld)", *TimeToString(loctim), loctim, *TimeToString(sattim), sattim);
else
esyslog("ERROR while setting system time: %m");
}
lastDiff = diff;

6
font.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: font.c 1.25 2008/03/01 10:19:41 kls Exp $
* $Id: font.c 1.25.1.1 2008/05/03 09:59:24 kls Exp $
*/
#include "font.h"
@ -395,7 +395,7 @@ bool cFont::GetAvailableFontNames(cStringList *FontNames, bool Monospaced)
FcFontSetDestroy(fontset);
FcPatternDestroy(pat);
FcObjectSetDestroy(os);
FcFini();
//FcFini(); // older versions of fontconfig are broken - and FcInit() can be called more than once
FontNames->Sort();
}
return FontNames->Size() > 0;
@ -431,7 +431,7 @@ cString cFont::GetFontFileName(const char *FontName)
esyslog("ERROR: no usable font found for '%s'", FontName);
FcPatternDestroy(pat);
free(fn);
FcFini();
//FcFini(); // older versions of fontconfig are broken - and FcInit() can be called more than once
}
return FontFileName;
}

4
i18n.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: i18n.c 1.319 2008/01/19 12:07:11 kls Exp $
* $Id: i18n.c 1.319.1.1 2008/09/06 12:21:17 kls Exp $
*
*
*/
@ -45,7 +45,7 @@ const char *LanguageCodeList[] = {
"por",
"fra,fre",
"nor",
"fin,smi",
"fin,suo",
"pol",
"esl,spa",
"ell,gre",

View File

@ -6,7 +6,7 @@
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* $Id: si.h 1.17 2007/04/22 13:32:09 kls Exp $
* $Id: si.h 1.17.1.1 2008/09/06 12:40:49 kls Exp $
* *
***************************************************************************/
@ -28,7 +28,7 @@ enum TableId { TableIdPAT = 0x00, //program association section
TableIdNIT_other = 0x41, //network information section, other network
TableIdSDT = 0x42, //service description section
TableIdSDT_other = 0x46,
TableIdBAT = 0x46, //bouquet association section
TableIdBAT = 0x4A, //bouquet association section
TableIdEIT_presentFollowing = 0x4E, //event information section
TableIdEIT_presentFollowing_other = 0x4F,
//range from 0x50 to 0x5F

View File

@ -12,9 +12,9 @@ msgstr ""
"Project-Id-Version: VDR 1.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@cadsoft.de>\n"
"POT-Creation-Date: 2008-02-10 12:22+0100\n"
"PO-Revision-Date: 2008-03-08 21:06+0100\n"
"PO-Revision-Date: 2008-04-17 01:07+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: Italian\n"
"Language-Team: Italian\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
@ -221,7 +221,7 @@ msgid "Disk"
msgstr "Disco"
msgid "free"
msgstr "liberi"
msgstr "disponibile"
msgid "Free To Air"
msgstr "in chiaro"
@ -230,7 +230,7 @@ msgid "encrypted"
msgstr "codificato"
msgid "auto"
msgstr "automatico"
msgstr "automatica"
msgid "Edit channel"
msgstr "Modifica canale"
@ -293,7 +293,7 @@ msgid "CoderateH"
msgstr "CoderateH"
msgid "none"
msgstr "nessuno"
msgstr "nessuna"
msgid "CoderateL"
msgstr "CoderateL"
@ -404,20 +404,20 @@ msgid "What's on next?"
msgstr "Prossimi programmi"
msgid "Button$Next"
msgstr "Prossimo"
msgstr "Prossimi"
msgid "Button$Now"
msgstr "Adesso"
msgid "Button$Schedule"
msgstr "Programma"
msgstr "Programmi"
msgid "Can't switch channel!"
msgstr "Impossibile cambiare canale!"
#, c-format
msgid "Schedule - %s"
msgstr "Programma - %s"
msgstr "Programmi - %s"
#, c-format
msgid "This event - %s"
@ -500,7 +500,7 @@ msgid "Setup.OSD$Height"
msgstr "Altezza OSD"
msgid "Setup.OSD$Message time (s)"
msgstr "Tempo del messaggio (s)"
msgstr "Durata del messaggio (s)"
msgid "Setup.OSD$Use small font"
msgstr "Utilizza caratteri piccoli"
@ -572,7 +572,7 @@ msgid "Setup.EPG$EPG linger time (min)"
msgstr "Mostra vecchi dati EPG (min)"
msgid "Setup.EPG$Set system time"
msgstr "Imposta orario automatico"
msgstr "Imposta orario di sistema"
msgid "Setup.EPG$Use time from transponder"
msgstr "Utilizza orario da transponder"
@ -628,7 +628,7 @@ msgid "Setup.DVB$Use Dolby Digital"
msgstr "Dolby Digital"
msgid "Setup.DVB$Update channels"
msgstr "Aggiorna i canali"
msgstr "Aggiornamento canali"
msgid "Setup.DVB$Audio languages"
msgstr "Lingue audio"
@ -739,7 +739,7 @@ msgid "Setup.Recording$Name instant recording"
msgstr "Nome reg. immediata"
msgid "Setup.Recording$Instant rec. time (min)"
msgstr "Tempo reg. immediata (min)"
msgstr "Durata reg. immediata (min)"
msgid "Setup.Recording$Max. video file size (MB)"
msgstr "Dim. massima file video (MB)"
@ -899,7 +899,7 @@ msgid "Plugin"
msgstr "Plugin"
msgid "Up/Dn for new location - OK to move"
msgstr "Su/Giù per nuova posizione - OK per muovere"
msgstr "Su/Giù per nuova posizione - OK per spostare"
msgid "Channel locked (recording)!"
msgstr "Canale bloccato (in registrazione)!"

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: recording.c 1.162 2008/02/24 10:28:53 kls Exp $
* $Id: recording.c 1.162.1.2 2012/02/14 13:57:25 kls Exp $
*/
#include "recording.h"
@ -509,8 +509,8 @@ cRecording::cRecording(cTimer *Timer, const cEvent *Event)
Utf8Strn0Cpy(SubtitleBuffer, Subtitle, MAX_SUBTITLE_LENGTH);
Subtitle = SubtitleBuffer;
}
char *macroTITLE = strstr(Timer->File(), TIMERMACRO_TITLE);
char *macroEPISODE = strstr(Timer->File(), TIMERMACRO_EPISODE);
const char *macroTITLE = strstr(Timer->File(), TIMERMACRO_TITLE);
const char *macroEPISODE = strstr(Timer->File(), TIMERMACRO_EPISODE);
if (macroTITLE || macroEPISODE) {
name = strdup(Timer->File());
name = strreplace(name, TIMERMACRO_TITLE, Title);
@ -551,7 +551,7 @@ cRecording::cRecording(const char *FileName)
sortBuffer = NULL;
fileName = strdup(FileName);
FileName += strlen(VideoDirectory) + 1;
char *p = strrchr(FileName, '/');
const char *p = strrchr(FileName, '/');
name = NULL;
info = new cRecordingInfo;
@ -1022,7 +1022,7 @@ void cRecordings::DelByName(const char *FileName)
if (recording) {
cThreadLock DeletedRecordingsLock(&DeletedRecordings);
Del(recording, false);
char *ext = strrchr(recording->FileName(), '.');
char *ext = strrchr(recording->fileName, '.');
if (ext) {
strncpy(ext, DELEXT, strlen(ext));
recording->fileSizeMB = DirSizeMB(recording->FileName());

View File

@ -4,14 +4,12 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: remux.h 1.17 2007/09/02 10:19:06 kls Exp $
* $Id: remux.h 1.17.1.1 2008/09/06 14:34:42 kls Exp $
*/
#ifndef __REMUX_H
#define __REMUX_H
#include <time.h> //XXX FIXME: DVB/linux/dvb/dmx.h should include <time.h> itself!!!
#include <linux/dvb/dmx.h>
#include "ringbuffer.h"
#include "tools.h"

View File

@ -19,29 +19,34 @@
# Europe
S5E Sirius 2/3
S3E Telecom 2C
S4E Eurobird 4
S5E Sirius 4
S7E Eutelsat W3A
S9E Eurobird 9
S10E Eutelsat W1
S13E Hotbird 1-3/6/7A
S13E Hotbird 6/7A/8
S16E Eutelsat W2
S19.2E Astra 1B/C/E/F/G/H/2C
S19.2E Astra F/G/H/KR/L
S21.0E Afristar 1
S21.6E Eutelsat W6
S23.5E Astra 1D 3A
S26E Arabsat 2D/2C/3A
S23.5E Astra 1E/3A
S25.5E Eurobird 2
S26E Badr 3/4/6
S28.2E Astra 2D/A/B
S28.5E Eurobird 1 & Astra 2A/B/D
S28.5E Eurobird 1 & Astra 2A/B/C/D
S30.5E Arabsat 2B
S31.5E Astra 1D/5A
S33E Eurobird 3 & Intelsat 802
S36E Eutelsat W4 & Sesat
S38E Paksat 1
S39E Hellas Sat 2
S40E Express AM1
S42E Turksat 1C/2A
S42E Turksat 2A/3A
S45E Intelsat 12
S49E Yamal 202
S53E Express AM 22
S55E Insat 3E & Intelsat 702
S55E Insat 3E
S56E Bonum 1
S57E NSS 703
S60E Intelsat 904
@ -54,10 +59,10 @@ S72E Intelsat 4
# Asia
S74E Insat 3C & Edusat
S75E LMI 1
S74E Insat 3C/4CR & Edusat
S75E ABS 1
S76.5E Telstar 10
S78.5E Thaicom 2/3
S78.5E Thaicom 2/5
S80E Express AM2
S83E Insat 2E/3B/4A
S85.2E Intelsat 709
@ -65,14 +70,17 @@ S87.5E Chinastar 1
S88E ST 1
S90E Yamal 201
S91.5E Measat 1
S93.5E Insat 3A
S92.2E Chinasat 9
S93.5E Insat 3A/4B
S95E NSS 6
S96.5E Express AM 11
S96.5E Express AM 33
S98.5E Protostar 1
S100.5E Asiasat 2
S103E Express A2
S105E Asiastar
S105.5E Asiasat 3S
S107.7E Cakrawarta 1
S108E Telkom 1 & AAP 1
S108E Telkom 1 & NSS 11
S110E N-Sat 110 & BSAT 1A/2A
S110.5E Sinosat 1
S113E Palapa C2 & Koreasat 2
@ -81,38 +89,38 @@ S118E Telkom 2
S120E Thaicom 1A
S122.2E Asiasat 4
S124E JCSAT 4a
S125E Sinosat 3
S128E JCSAT 3
S132E N-Star A
S132E Vinasat 1 & JCSAT5a
S134E Apstar 6
S136E N-Star B
S138E Telstar 18
S140E Express AM 3
S144E Superbird C
S146E Agila 2
S148E Measat 2
S150E JCSAT R
S152E Optus B3
S152E Optus D2
S154E JCSAT 2A
S156E Optus C1
S158E Superbird A
S160E Optus B1
S160E Optus D1
S162E Superbird B2
S164E Optus A3
S164E Optus B3
S166E Intelsat 8
S169E Intelsat 2
S172E AMC 23
S172E GE 23
S180E Intelsat 701
S177W NSS 5
# Atlantic
S1W Thor 2/3 & Intelsat 10-02
S4W Amos 1/2
S1W Thor 3/5 & Intelsat 10-02
S4W Amos 1/2/3
S5W Atlantic Bird 3
S7W Nilesat 101 & 102
S7W Nilesat 101/102 & Atlantic Bird 4
S8W Telecom 2D & Atlantic Bird 2
S11W Express A3
S12.5W Atlantic Bird 2
S12.5W Atlantic Bird 1
S14W Express A4
S15W Telstar 12
S18W Intelsat 901
@ -123,9 +131,9 @@ S27.5W Intelsat 907
S30W Hispasat 1C/1D
S31.5W Intelsat 801
S34.5W Intelsat 903
S37.5W Telstar 11 & AMC 12
S37.5W NSS 10
S40.5W NSS 806
S43W Intelsat 3R/6B
S43W Intelsat 3R/11
S45W Intelsat 1R
S50W Intelsat 705
S53W Intelsat 707
@ -137,47 +145,45 @@ S61W Amazonas
S61.5W Echostar 3 & Rainbow 1
S63W Estrelo de Sul 1
S65W Brasilsat B2
S70W Brasilsat B1
S65W Star One C1
S70W Star One C2
S72W Nahuel 1 & AMC 6
S72.5W DirecTV 1
S74W SBS 6
S77W Echostar 4
S72.5W DirecTV 1R & Echostar 6
S74W Horizons 2
S77W Echostar 4 & Galaxy 4R
S79W AMC5
S79.5W Nimiq 3
S82W Nimiq 2
S83W AMC 9
S84W Brasilsat B3
S85W AMC 2
S84W Brasilsat B3/4
S85W AMC 16
S85.1W XM 3
S87W AMC3
S89W Galaxy 28
S91W Galaxy 11 & Nimiq 1
S91.5W DirecTV 2
S92W Brasilsat B4
S91W Galaxy 11/17 & Nimiq 1
S92W Brasilsat B2
S93W Galaxy 26
S95W Galaxy 3C
S97W Galaxy 25
S99W Galaxy 4R
S99.2W Spaceway 2
S101W DirecTV 1R/4S/8 & AMC4
S99W Galaxy 16
S99.2W Spaceway 2 & DirecTV 11
S101W DirecTV 4S/8 & AMC 2/4
S103W AMC1
S105W AMC15
S105W AMC15/18
S107.3W Anik F1/F1R
S110W DirecTV 5 & Echostar 6/8/10
S110W DirecTV 5 & Echostar 8/10
S111.1W Anik F2
S113W Solidaridad 2
S119W Echostar 7 & DirecTV 7S
S113W SatMex 6
S116.8W SatMex 5
S119W Anik F3 & Echostar 7 & DirecTV 7S
S121W Echostar 9 & Galaxy 23
S123W Galaxy 10R
S123W Galaxy 18
S125W Galaxy 14
S127W Galaxy 13/Horizons 1
S129W Echostar 5 & Galaxy 27
S131W AMC 11
S133W Galaxy15/1R
S133W Galaxy15
S135W AMC 10
S137W AMC 7
S138.5W Echostar 10
S139W AMC 8
S148W Echostar 1/2

17
svdrp.c
View File

@ -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.109 2008/02/17 13:36:01 kls Exp $
* $Id: svdrp.c 1.109.1.3 2012/02/14 13:55:52 kls Exp $
*/
#include "svdrp.h"
@ -736,7 +736,7 @@ void cSVDRP::CmdGRAB(const char *Option)
char *strtok_next;
FileName = strtok_r(p, delim, &strtok_next);
// image type:
char *Extension = strrchr(FileName, '.');
const char *Extension = strrchr(FileName, '.');
if (Extension) {
if (strcasecmp(Extension, ".jpg") == 0 || strcasecmp(Extension, ".jpeg") == 0)
Jpeg = true;
@ -795,16 +795,17 @@ void cSVDRP::CmdGRAB(const char *Option)
char RealFileName[PATH_MAX];
if (FileName) {
if (grabImageDir) {
cString s;
char *slash = strrchr(FileName, '/');
cString s(FileName);
FileName = s;
const char *slash = strrchr(FileName, '/');
if (!slash) {
s = AddDirectory(grabImageDir, FileName);
FileName = s;
}
slash = strrchr(FileName, '/'); // there definitely is one
*slash = 0;
char *r = realpath(FileName, RealFileName);
*slash = '/';
cString t(s);
t.Truncate(slash - FileName);
char *r = realpath(t, RealFileName);
if (!r) {
LOG_ERROR_STR(FileName);
Reply(501, "Invalid file name \"%s\"", FileName);
@ -1606,7 +1607,7 @@ bool cSVDRP::Process(void)
char buffer[BUFSIZ];
gethostname(buffer, sizeof(buffer));
time_t now = time(NULL);
Reply(220, "%s SVDRP VideoDiskRecorder %s; %s", buffer, VDRVERSION, *TimeToString(now));
Reply(220, "%s SVDRP VideoDiskRecorder %s; %s; %s", buffer, VDRVERSION, *TimeToString(now), cCharSetConv::SystemCharacterTable() ? cCharSetConv::SystemCharacterTable() : "UTF-8");
}
if (NewConnection)
lastActivity = time(NULL);

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: thread.c 1.64 2008/02/15 14:17:42 kls Exp $
* $Id: thread.c 1.64.1.1 2008/08/16 11:00:40 kls Exp $
*/
#include "thread.h"
@ -24,11 +24,12 @@ static bool GetAbsTime(struct timespec *Abstime, int MillisecondsFromNow)
{
struct timeval now;
if (gettimeofday(&now, NULL) == 0) { // get current time
now.tv_usec += MillisecondsFromNow * 1000; // add the timeout
while (now.tv_usec >= 1000000) { // take care of an overflow
now.tv_sec++;
now.tv_usec -= 1000000;
}
now.tv_sec += MillisecondsFromNow / 1000; // add full seconds
now.tv_usec += (MillisecondsFromNow % 1000) * 1000; // add microseconds
if (now.tv_usec >= 1000000) { // take care of an overflow
now.tv_sec++;
now.tv_usec -= 1000000;
}
Abstime->tv_sec = now.tv_sec; // seconds
Abstime->tv_nsec = now.tv_usec * 1000; // nano seconds
return true;

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: timers.c 1.73 2008/02/16 14:47:40 kls Exp $
* $Id: timers.c 1.73.1.1 2008/04/13 12:47:12 kls Exp $
*/
#include "timers.h"
@ -92,6 +92,7 @@ cTimer::cTimer(const cTimer &Timer)
channel = NULL;
aux = NULL;
event = NULL;
flags = tfNone;
*this = Timer;
}

7
vdr.c
View File

@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/vdr
*
* $Id: vdr.c 1.313 2008/03/14 13:22:39 kls Exp $
* $Id: vdr.c 1.313.1.1 2008/09/06 11:07:52 kls Exp $
*/
#include <getopt.h>
@ -141,7 +141,6 @@ static bool SetKeepCaps(bool On)
static void SignalHandler(int signum)
{
isyslog("caught signal %d", signum);
switch (signum) {
case SIGPIPE:
break;
@ -1288,9 +1287,11 @@ Exit:
ReportEpgBugFixStats();
if (WatchdogTimeout > 0)
dsyslog("max. latency time %d seconds", MaxLatencyTime);
isyslog("exiting, exit code %d", ShutdownHandler.GetExitCode());
if (LastSignal)
isyslog("caught signal %d", LastSignal);
if (ShutdownHandler.EmergencyExitRequested())
esyslog("emergency exit!");
isyslog("exiting, exit code %d", ShutdownHandler.GetExitCode());
if (SysLogLevel > 0)
closelog();
if (HasStdin)