summaryrefslogtreecommitdiff
path: root/eit.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2009-08-23 16:04:00 +0200
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2009-08-23 16:04:00 +0200
commit06bf4c453e22a9bf03f5ec46f7b45593e2cb326c (patch)
tree8a6f33c4ebde94c5e9e94194378f39cd8cf6926e /eit.c
parentab6f2ccf424896a80b6e2fdf9ab9313ea4b7f316 (diff)
downloadvdr-patch-lnbsharing-06bf4c453e22a9bf03f5ec46f7b45593e2cb326c.tar.gz
vdr-patch-lnbsharing-06bf4c453e22a9bf03f5ec46f7b45593e2cb326c.tar.bz2
Version 1.7.9vdr-1.7.9
- Fixed storing the current OSD size in case the device has changed it in its setup menu (reported by Reinhard Nissl). - Fixed cDevice::PlayTsVideo() and cDevice::PlayTsAudio() in case only part of the buffer has been accepted by the device (reported by Udo Richter). - Changed the EIT filter setup to save a few handles on devices that do hardware filtering. - Fixed deleting expired timers if they have the VPS flag set, but the event they are assigned to doesn't have a VPS tag. - Fixed handling file name length on VFAT systems in case they contain UTF-8 characters (thanks to Rolf Ahrenberg). - Fixed generating CaPmts in case audio and video are encrypted using different ECM pids. - Updated vdr.1 to use the new file names in recording directories. - Fixed cRecordings::DelByName() to avoid compilation errors with gcc 4.4 (thanks to Matthias Schwarzott). - Increased the value of MAXFRAMESIZE to better suit HD recordings (thanks to Reinhard Nissl). - Implemented full handling of subtitling descriptors (thanks to Mikko Tuumanen).
Diffstat (limited to 'eit.c')
-rw-r--r--eit.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/eit.c b/eit.c
index 1189a10..486784b 100644
--- a/eit.c
+++ b/eit.c
@@ -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 2.5 2009/05/15 12:34:43 kls Exp $
+ * $Id: eit.c 2.6 2009/06/21 13:46:20 kls Exp $
*/
#include "eit.h"
@@ -322,29 +322,30 @@ cTDT::cTDT(const u_char *Data)
cEitFilter::cEitFilter(void)
{
- Set(0x12, 0x4E, 0xFE); // event info, actual(0x4E)/other(0x4F) TS, present/following
- Set(0x12, 0x50, 0xF0); // event info, actual TS, schedule(0x50)/schedule for future days(0x5X)
- Set(0x12, 0x60, 0xF0); // event info, other TS, schedule(0x60)/schedule for future days(0x6X)
- Set(0x14, 0x70); // TDT
+ Set(0x12, 0x40, 0xC0); // event info now&next actual/other TS (0x4E/0x4F), future actual/other TS (0x5X/0x6X)
+ if (Setup.SetSystemTime && Setup.TimeTransponder)
+ Set(0x14, 0x70); // TDT
}
void cEitFilter::Process(u_short Pid, u_char Tid, const u_char *Data, int Length)
{
switch (Pid) {
case 0x12: {
- cSchedulesLock SchedulesLock(true, 10);
- cSchedules *Schedules = (cSchedules *)cSchedules::Schedules(SchedulesLock);
- if (Schedules)
- cEIT EIT(Schedules, Source(), Tid, Data);
- else {
- // If we don't get a write lock, let's at least get a read lock, so
- // that we can set the running status and 'seen' timestamp (well, actually
- // with a read lock we shouldn't be doing that, but it's only integers that
- // get changed, so it should be ok)
- cSchedulesLock SchedulesLock;
+ if (Tid >= 0x4E && Tid <= 0x6F) {
+ cSchedulesLock SchedulesLock(true, 10);
cSchedules *Schedules = (cSchedules *)cSchedules::Schedules(SchedulesLock);
if (Schedules)
- cEIT EIT(Schedules, Source(), Tid, Data, true);
+ cEIT EIT(Schedules, Source(), Tid, Data);
+ else {
+ // If we don't get a write lock, let's at least get a read lock, so
+ // that we can set the running status and 'seen' timestamp (well, actually
+ // with a read lock we shouldn't be doing that, but it's only integers that
+ // get changed, so it should be ok)
+ cSchedulesLock SchedulesLock;
+ cSchedules *Schedules = (cSchedules *)cSchedules::Schedules(SchedulesLock);
+ if (Schedules)
+ cEIT EIT(Schedules, Source(), Tid, Data, true);
+ }
}
}
break;