[mythtv] Re: [mythtv-commits] Re: Ticket #743: Fix "program not found in PAT" problem.

Stuart Auchterlonie stuarta at squashedfrog.net
Fri Dec 2 19:37:53 EST 2005


On Fri, Dec 02, 2005 at 10:51:06PM +0000, Stuart Auchterlonie wrote:
> > 
> > It does seem a little hacky, can you see if it would work to send a
> > DMX_STOP ioctl to the demux before closing it in
> > DVBRecorder::CloseFilters(void) ?
> > 
> > replace:
> >             close(_pid_filters[i]);
> > with:
> >             {
> >                 ioctl(_pid_filters[i], DMX_STOP);
> >                 close(_pid_filters[i]);
> >             }
> > 
> > This should be implicit in the close(). But I find making 
> > assumptions about DVB drivers tends to bring trouble.
> > 
> 
> ****Preliminary**** Testing shows that this is working.
> I will recheck the logs tommorrow morning and see if there
> are any further occurances. This is without my patch and
> only with this change.
> 

Managed to trigger the same problem again.
Happens less often than before.

Managed to trigger it this time, by compiling myth
while watching a recording, then exiting the frontend
at about the same time as a channel change, in order
to install the new myth.

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.

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.

This could lead to interesting effects as the threads run async
to each other....


Stuart



More information about the mythtv-dev mailing list