[mythtv] Re: [mythtv-commits] Re: Ticket #743: Fix "program
not found in PAT" problem.
Daniel Kristjansson
danielk at cuymedia.net
Fri Dec 2 14:54:03 EST 2005
On Fri, 2005-12-02 at 18:20 +0000, Stuart Auchterlonie wrote:
> On Fri, Dec 02, 2005 at 06:03:51PM -0000, MythTV wrote:
> > #743: Fix "program not found in PAT" problem.
> My initial thought was to track the required transportid.
> Since we have a channel change, we therefore know the destination
> mplex, from dtv_multiplex we know the transportid. So getting
> a tsid != target tsid would detect this.
Unfortunately the ATSC tsid's are often the same across transports,
probably because they aren't used for tuning.
> Another option is that PAT's should be transmitted at a minimum
> every 300ms (? - not sure the exact figure), so if we haven't
> found the correct PAT in this time throw an error. Perhaps this
> could be combined with my patch. After 300ms feed the PAT through
> CreatePATSingleProgram regardless??
This would work, PAT's are required every 100 ms for ATSC streams.
PMT's are required every 400 ms. In practice you need to add a
little slop. But since this is just to be able to watch broken
channels I don't mind a 1 or 2 second delay; maybe it will
encourage people to call the station and complain.
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.
-- Daniel
More information about the mythtv-dev
mailing list