On Sat, 2005-12-03 at 00:37 +0000, Stuart Auchterlonie wrote: > On Fri, Dec 02, 2005 at 10:51:06PM +0000, Stuart Auchterlonie wrote: > My suspicion is that the data has been read off the demux, > but due to whatever reason hasn't been processed, when a channel > change goes through, leading to the race condition.
I'm assuming you are using Linux 2.6.12 or later, if not upgrade and see if the problem goes away. The detection of the end of tuning is known to not work on some pre-2.6.12 drivers. The problem is that the event interface wasn't well defined so some drivers implemented something that worked in practice, and others did not. The code in MythTV tries to work with the old broken interface in dvbchannel.cpp's wait_for_backend() and according to what one of the DVB guys told us should always work with the drivers included with Linux 2.6.12+. There is a more detailed explanation in the doxygen documentation for the function. > Am I right in saying that the tuning process and monitoring are > done in separate threads? Since, AFAIK the signalmonitor runs in > it's own thread, as does the eit crawler. Yes, separate threads. The EIT crawler thread doesn't do the tuning though, the recorder's tuning thread does it. This was done to avoid race conditions. :) -- Daniel
_______________________________________________ mythtv-dev mailing list [email protected] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
