[mythtv] [PATCH] Changing channels in the background

Chris Bagwell chris at cnpbagwell.com
Wed Mar 2 05:27:17 UTC 2005


On Wed, Mar 02, 2005 at 01:22:16PM +0900, Jack Porter wrote:
> While waiting for the external program to exit is one source of the 
> delay in channel changing, the rest of the delay involves pausing the 
> ringbuffer, asking the backend to change the channel (potentially over a 
> network), etc.

One number thrown around in the archives is 2 second delay for the 
ringbuffer.  That I can probably live with for channel surfing.
8 seconds is a little much for me.

> IMO the actual channel changing should be asynchronous to the user 
> interface (key presses/OSD update).  At the moment the backend decides 
> what the "next" and "previous" channels are when you press the up and 
> down channel buttons.  Instead, the frontend should do as much as 
> possible locally, and update the OSD immediately.  A background thread 
> should then look to see if the currently requested channel is different 
> from the actual channel and perform the actual channel change there.

These are the exact thoughts I've been working with the last
week.  A minor addition is that somehow needs to be a holdoff in
there.  It needs to detect that user hasn't pressed a up/down button in
~1 second before attempting changing channel.  Else there is a high
chance that the changing churn will still happen.

The one negative thing with this change is that non-IRBlaster people 
can tell if a channel tune fails.  The above approach would allow 
the frontend to be showing an OSD tuned to a channel thats not really there
(not to negative, my dish network box allows this behavior and
either displays a black screen or a delayed pop-up box once the error is
realized).

> My digital cable box takes more than a second to change channels but 
> it's still a pleasure to channel surf because the OSD instantly shows 
> the program title and the channel change occurs in the background as 
> soon as you stop pressing the channel up or down button.  

Ditto how my Dish Network box works.  I also had a comcast cable box
that worked the same way.  Comcast took ~4 seconds to change channels but
didn't feel so bad because of the above behavior.

> I've been planning on implement something like this for a while, but 
> haven't had the chance yet.

If I can't get changing channels down to ~2 seconds then I'll be
exploring this as well... All design hints welcome.

Thanks for your comments!
Chris



More information about the mythtv-dev mailing list