From a001a4bf97715d62b387d1da9fd1e48382508428 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 3 Mar 2002 18:00:00 +0100 Subject: Version 1.0.0pre3 - Fixed parsing 'E' records in epg2html.pl. - Fixed a deadlock when switching channels via Schedule/Now|Next/Switch (reported by Martin Hammerschmid). - Changed the meaning of the 'Ca' parameter in 'channels.conf'. Each channel can now define which decryption method it needs in order to be accessed. The new configuration file 'ca.conf' contains the defined values, and the default 'channels.conf' has been modifed to contain the new values for 'Premiere World' and 'ORF'. If you use the default 'channels.conf' and have the conditional access hardware to receive encrypted channels, please make sure you copy the file 'ca.conf' into your /video directory (or wherever your configuration files are located) and go into the "Setup" menu and set the CICAM values according to your hardware setup. Currently there are two possible CICAM entries per DVB card, so any card can implement up to two different conditional access modes (besides the default "Free To Air" mode, which is always assumed to be available on any DVB card). - Updated French language texts (thanks to Jean-Claude Repetto). --- eit.c | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) (limited to 'eit.c') diff --git a/eit.c b/eit.c index 8f4c037..9985fbb 100644 --- a/eit.c +++ b/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.38 2002/02/25 16:30:42 kls Exp $ + * $Id: eit.c 1.39 2002/03/01 16:32:11 kls Exp $ ***************************************************************************/ #include "eit.h" @@ -1047,8 +1047,6 @@ const char *cSIProcessor::GetEpgDataFileName(void) void cSIProcessor::SetStatus(bool On) { - LOCK_THREAD; - schedulesMutex.Lock(); ShutDownFilters(); if (On) { @@ -1061,7 +1059,6 @@ void cSIProcessor::SetStatus(bool On) AddFilter(0x12, 0x51); // event info, actual TS, schedule for another 4 days AddFilter(0x12, 0x61); // event info, other TS, schedule for another 4 days } - schedulesMutex.Unlock(); } /** use the vbi device to parse all relevant SI @@ -1085,20 +1082,15 @@ void cSIProcessor::Action() struct tm *ptm = localtime_r(&now, &tm_r); if (now - lastCleanup > 3600 && ptm->tm_hour == 5) { - LOCK_THREAD; - - schedulesMutex.Lock(); + cMutexLock MutexLock(&schedulesMutex); isyslog(LOG_INFO, "cleaning up schedules data"); schedules->Cleanup(); - schedulesMutex.Unlock(); lastCleanup = now; ReportEpgBugFixStats(true); } if (epgDataFileName && now - lastDump > 600) { - LOCK_THREAD; - - schedulesMutex.Lock(); + cMutexLock MutexLock(&schedulesMutex); FILE *f = fopen(GetEpgDataFileName(), "w"); if (f) { schedules->Dump(f); @@ -1107,7 +1099,6 @@ void cSIProcessor::Action() else LOG_ERROR; lastDump = now; - schedulesMutex.Unlock(); } } @@ -1162,12 +1153,9 @@ void cSIProcessor::Action() case 0x12: if (buf[0] != 0x72) { - LOCK_THREAD; - - schedulesMutex.Lock(); + cMutexLock MutexLock(&schedulesMutex); cEIT ceit(buf, seclen, schedules); ceit.ProcessEIT(buf); - schedulesMutex.Unlock(); } else dsyslog(LOG_INFO, "Received stuffing section in EIT\n"); @@ -1261,6 +1249,6 @@ bool cSIProcessor::ShutDownFilters(void) /** */ bool cSIProcessor::SetCurrentServiceID(unsigned short servid) { - LOCK_THREAD; + cMutexLock MutexLock(&schedulesMutex); return schedules ? schedules->SetCurrentServiceID(servid) : false; } -- cgit v1.2.3