[mythtv] [PATCH] more pcHDTV channel-change improvements
doug at ties.org
Fri Oct 24 09:16:28 EDT 2003
On 10/24/03 06:50:16, Jarod C. Wilson wrote:
> Just throwing in my experiences here, not sure if they are quite what
> you're seeing, Doug... I haven't had much chance to play with my
> pcHDTV card yet, but I was never able to successfully change channels
> w/cvs mythtv from about two weeks ago, and the same holds true for
> Example: I've got ABC and CBS right next to each other, both known
> working HD channels. In the mythtv setup util, I set up to tune to
> channel 4 (ABC) when the tuner is first accessed. Everything is fine.
> I watch for a bit, then try to change to channel 7 (CBS). The last
> frame from channel 4 remains, and the frontend just sits there doing
> nothing. If I kill the frontend and reenter it, and go back to
> watching live TV, up comes channel 7 without problem, so the channel
> change was registered, but never fully completed. Or something like
Yes, this is exactly what I was seeing with 0.12. I believe what was
happening is that avcodec (avformat, actually) had locked onto the PIDs
making up the show from the first channel. If the PIDs happened to be
the same on the next channel (not as unlikely as it seems -- they're
standardized per subchannel), all was well. My first commit -- to
strip out unused PIDs -- made this worse because then we're less likely
to see the old PID if the new station was broadcasting multiple
My newest commit (current CVS) rewrites the PIDs to be what the decoder
is expecting after a channel change. Not necessarily the most elegant
solution but it works. Once we're decoding the PAT (table of PIDs,
essentially) we should rewrite it to match, and then we'll be a 100%
compliant transport stream again.
With this new code, I get good channel-change performance so long as
the format stays the same... so from CBS to NBC (both 1080i) is fine.
>From either of those to ABC (720p, lower resolution) is usually fine.
But switch from ABC to CBS/NBC (higher resolution) and the frontend
crashes. It does seem to pick up the change -- I see "Video has
changed: 1920 1080" in the frontend log -- but crashes shortly
Maybe someone who's familiar with ffmpeg will tell me that it would
handle the transition properly if I weren't filtering out x piece of
information from the stream ... that would be great. But I suspect
some missing piece of reinitialization.
More information about the mythtv-dev