[mythtv-commits] Ticket #8211: Incorrect channel change with a channel group and multiple sources
MythTV
mythtv at cvs.mythtv.org
Sun Mar 21 17:17:53 UTC 2010
#8211: Incorrect channel change with a channel group and multiple sources
---------------------------------+------------------------------------------
Reporter: scottadmi@… | Owner: ijr
Type: defect | Status: new
Priority: minor | Milestone: 0.24
Component: MythTV - General | Version: 0.22-fixes
Severity: medium | Mlocked: 0
---------------------------------+------------------------------------------
I generally display only favorite channels in the guide when watching live
tv (to reduce the clutter) which means when changing channels using the
remote (simple channel up/channel down keys) it should only cycle through
the favorite channel group.
The problem is, I have multiple input cards with different sources (in my
case analog cable and a digital cable). These overlap a large number of
channel numbers and as a result it does not correctly handle channel
change events when the "favorites" channel group is in use. When I press
channel up while watching from the 2nd card, it will instead go the second
favorite on the first card.
Digging around the code I discovered the likely cause. In tv_play.cpp,
when the m_channellist value is populated, it (correctly) eliminates
duplicate channel numbers leaving just one chanid for each station even if
the same channel number exists on multiple cards. This list is passed
along with the current chanid to GetNextChannel (in channelutil.cpp) to
determine what to change to.
The problem is, in my case the list mostly contains chanids from the first
card, so when GetNextChannel tries to find the current chanid in the list
it can't. (As an example, I'm watching channel 13 which is currently
chanid 2013, but the list only contains 1013.) Failing to find the current
channel, it reverts to the first item in the channel group list and thus
incorrectly chooses an early channel on the other card.
The fix seems like it would be to change GetNextChannel to instead search
on a channum (not chanid) and return a channum so channel changing is
independent of the card in use. As this function is referred to in
multiple places, I lack the personal expertise to fix this in a clean way
to avoid interfering with other parts of the code.
--
Ticket URL: <http://svn.mythtv.org/trac/ticket/8211>
MythTV <http://www.mythtv.org/>
MythTV
More information about the mythtv-commits
mailing list