From 3ab1a8602802b3225b91fc8bf7977b2d74b28e5d Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Thu, 18 Jan 2001 17:03:34 +0100 Subject: [PATCH] Locking EIT scanner when switching channels --- HISTORY | 5 +++-- INSTALL | 2 +- dvbapi.c | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/HISTORY b/HISTORY index 26242c17..d20075e2 100644 --- a/HISTORY +++ b/HISTORY @@ -312,9 +312,9 @@ Video Disk Recorder Revision History an early state and may still cause some problems, but it appears to work nice already. -2001-01-13: Version 0.70 +2001-01-17: Version 0.70 -- VDR now requires driver version 0.80 or higher. +- VDR now requires driver version 0.8.1 or higher. - Recordings are now saved in PES mode. Note that you now need to install the driver *WITHOUT* 'outstream=0'! This is the default when you 'make insmod' in the DVB/driver directory. @@ -346,3 +346,4 @@ Video Disk Recorder Revision History 5 seconds. - The current channel is now saved in the 'setup.conf' file when VDR is cancelled, and will be restored next time it is started (thanks to Deti Fliegl). +- The EIT scanning thread is now locked when switching channels to avoid problems. diff --git a/INSTALL b/INSTALL index 6a9bb82d..e2a67a0f 100644 --- a/INSTALL +++ b/INSTALL @@ -15,7 +15,7 @@ If you have the DVB driver source in a different location you will have to change the definition of DVBDIR in the Makefile. -This program requires the card driver version 0.80 or higher +This program requires the card driver version 0.8.1 or higher to work properly. You need to load the dvb.o module *without* option 'outstream=0' (previous versions of VDR required this option to have the driver supply the data in AV_PES format; as of version 0.70 VDR diff --git a/dvbapi.c b/dvbapi.c index 4c8be491..54f6fe53 100644 --- a/dvbapi.c +++ b/dvbapi.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbapi.c 1.48 2001/01/14 10:15:26 kls Exp $ + * $Id: dvbapi.c 1.49 2001/01/18 17:03:34 kls Exp $ */ #include "dvbapi.h" @@ -2165,6 +2165,7 @@ void cDvbApi::Flush(void) bool cDvbApi::SetChannel(int ChannelNumber, int FrequencyMHz, char Polarization, int Diseqc, int Srate, int Vpid, int Apid, int Ca, int Pnr) { if (videoDev >= 0) { + cThreadLock ThreadLock(siProcessor); // makes sure the siProcessor won't access the vbi-device while switching StopTransfer(); SetPlayMode(videoDev, VID_PLAY_RESET); struct frontend front;