[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