[mythtv] Suggestion for improving SLOW channel changing in
buzz at oska.com
Thu Sep 8 07:13:39 UTC 2005
We all know that channel changing in LiveTV is SLOW, because of a number of
core features (tuning time, ring buffers, etc etc), so here's a suggestion
for improving SLOW channel changing in LiveTV....
CONCEPT: Pre-emptively tuning non-active tuner/s to a channel either side of
the current one.... and changing channels by switching liveTV to the
pre-tuned tuner instead of re-tuning the active tuner. (then re-tuning it
automatically once it's non-active if required).
(non-active = not currently being used for recordings or liveTV, etc)
1) Obviously this requires multiple tuners.... But it falls-back gracefully
to the current "SLOW" situation for single-tuner installs, or when the other
tuners are busy.
2) requires multiple ring-buffers (one for each tuner) - but I suspect that
because of PiP, mythTV already has that? Anyone?
3) requires quick-switch between ring-buffers, but again, PiP already does
this when swapping between pictures.
Can anyone with a more indepth knowledge of the code comment on the possible
difficulty of implementing this?
EXAMPLE 1: Total number of tuners: 3, total system channels: 1,2,3,4,5
LiveTV current channel: 3
Automatically tunes other 2 tuners to adjacent channels 2,4 (kinda like PiP
tuning, I suspect?)
On channel change (eg "up"), swap LiveTV to the tuner which is already tuned
to channel 4, and just start displaying it.
Also re-tunes tuner that was previously on 2 to be on new "adjacent" channel
5, and leaves tuner that was on '3' where it was for pre-emptive "down"
change, if requested. Option: If user consistently(eg more than 5 times?)
only changes channels one-direction, then pre-emptively tune BOTH/all
non-active tuners to channels "above", in a queue/list of next available.
EXAMPLE 2: Total number of tuners: 2, total system channels: 1,2,3,4,5
LiveTV current channel: 3
Prior LiveTV channel: 2
Automatically tune other 1 tuner to either the "up" or "down" channel (ie 2
or 4) depending on which direction channels where LAST changed.
Ie, If User last pressed the "up" channel changer on remote/keyboard, then
pre-emptively tune the non-active remote to the channel "above" the current
LiveTV channel (in this example, non-active tuner is on channel 4).
EXAMPLE3: more than 2 or 3 tuners? Lucky you! Same concept applies,
however tuners are auto-tuned to "nearest" channel to the LiveTV one that's
not already tuned to, or queue'd up on one side, if always changing one
Anyway, you get the idea, I hope.
More information about the mythtv-dev