On Sat, 2006-01-14 at 17:32 +0000, [EMAIL PROTECTED] wrote:
>       Author: ghaushe
>         Date: 2006-01-14 17:32:29 +0000 (Sat, 14 Jan 2006)
> New Revision: 8606
>    Changeset: http://cvs.mythtv.org/trac/changeset/8606
> 
> Modified:
> 
>    trunk/mythtv/libs/libavformat/mpegts.c
> 
> Log:
> 
> This resets the stream to the beginning after the 'get_packet_size' call in 
> mpegts_read_header.  I have some strange TS streams where only the 1st PAT is 
> ok, so it is necesary to search from the beginning to find it.  This seek 
> exists in ffmpeg CVS, so I assume it was accidently removed when the SDT scan 
> was removed.  I can't see how it could hurt anything otherwise.

This is probably a safe change, but why is it needed? Shouldn't whatever
function moved us past the 0 position bring us back (probably the stream
type detection)? What if we were reading from a device handle or
streaming from a remote backend, how would this seek be handled?

This whole function is completely unsafe anyway because it assumes that
the PAT and PMT are never change. If a you have a PMT at pos 0 and a new
PAT at pos 2000, this function will use the PMT at pos 0 rather than a
PMT following the PAT so that the initial stream info will be completely
bogus (because of that seek after the PAT scan). With MythTV this is
mostly not a problem because the recorders clean up the raw streams, but
this is still a problem with the Firewire and DBOX2 recorders.

-- Daniel

_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev

Reply via email to