[mythtv-commits] Ticket #6208: Changing channels in browse mode switches to incorrect channel if input is not on same dvb input

MythTV mythtv at cvs.mythtv.org
Tue Aug 25 22:41:55 UTC 2009


#6208: Changing channels in browse mode switches to incorrect channel if input is
not on same dvb input
--------------------------------------+-------------------------------------
 Reporter:  Mitch <mitch at hasbox.com>  |        Owner:  danielk
     Type:  defect                    |       Status:  new    
 Priority:  minor                     |    Milestone:  unknown
Component:  MythTV - DVB/ATSC         |      Version:  head   
 Severity:  low                       |   Resolution:         
  Mlocked:  0                         |  
--------------------------------------+-------------------------------------

Old description:

> I have a single DVB card with a single input connected to 3 satellites
> via a diseqc. Mythbackend shows this:
>
> ----
>
> 2009-01-31 23:42:03.867 DiSEqCDevTree: Changing LNB voltage to 18V
> 2009-01-31 23:42:04.368 DiSEqCDevTree: Resetting DiSEqC Bus
> 2009-01-31 23:42:04.368 DiSEqCDevTree: Sending DiSEqC Command: e0  0  0
> 2009-01-31 23:42:05.017 ChannelBase(1): Input #1: 'DVBInput #1'
> schan(630) sourceid(1) ccid(1)
> 2009-01-31 23:42:05.018 ChannelBase(1): Input #2: 'DVBInput #2'
> schan(384) sourceid(2) ccid(1)
> 2009-01-31 23:42:05.019 ChannelBase(1): Input #3: 'DVBInput #3'
> schan(330) sourceid(3) ccid(1)
> 2009-01-31 23:42:05.019 ChannelBase(1): Current Input #1: 'DVBInput #1'
>
> ----
>
> Everything works fine normally. However if you attempt to change channel
> in '''browse mode''' to a channel on a different input you will see the
> following output
>
> ----
>
> 2009-01-31 20:30:33.773 ChannelBase(1): Failed to find channel(785) on
> current input (DVBInput #3) of card (1).
> 2009-01-31 20:30:33.775 ChannelBase(1): Found channel(785) on another
> input (DVBInput #1) of card (1).
> 2009-01-31 20:30:33.811 ChannelBase(1): Failed to find channel(384) on
> current input (DVBInput #3) of card (1).
> 2009-01-31 20:30:33.813 ChannelBase(1): Found channel(384) on another
> input (DVBInput #2) of card (1).
> 2009-01-31 20:30:33.818 TVRec(1): SetChannel(384) -- begin
> 2009-01-31 20:30:33.818 ChannelBase(1): Looking for startchannel '384' on
> input 'DVBInput #1'
> 2009-01-31 20:30:33.833 ChannelBase(1): Found startchannel '384' on input
> 'DVBInput #2'
> 2009-01-31 20:30:33.834 TVRec(1): HW Tuner: 1->1
>
> ----
>
> So it recognises that the channel i'm wanting to change to is not on the
> current input, but then changes to change the channel to the start
> channel but on a totally different input (i.e. the wrong channel). Once
> you are on this new (wrong) channel, you can no longer change channel in
> browse mode and you have to go to the EPG to change channels.
>
> I believe this bug is due to the fact that CheckChannel() ignores the
> filled in return field 'inputName'.
>
> I have attached a patch which seems to fix this for me however i'm not
> sure this is the right place to do this or if we're leaking anything
> here.
>
> I've marked this as major/high as i'm positive this is bug and should
> affect everyone with multiple satellites on a single dvb card.

New description:

 I have a single DVB card with a single input connected to 3 satellites via
 a diseqc. Mythbackend shows this:
 {{{
 2009-01-31 23:42:03.867 DiSEqCDevTree: Changing LNB voltage to 18V
 2009-01-31 23:42:04.368 DiSEqCDevTree: Resetting DiSEqC Bus
 2009-01-31 23:42:04.368 DiSEqCDevTree: Sending DiSEqC Command: e0  0  0
 2009-01-31 23:42:05.017 ChannelBase(1): Input #1: 'DVBInput #1' schan(630)
 sourceid(1) ccid(1)
 2009-01-31 23:42:05.018 ChannelBase(1): Input #2: 'DVBInput #2' schan(384)
 sourceid(2) ccid(1)
 2009-01-31 23:42:05.019 ChannelBase(1): Input #3: 'DVBInput #3' schan(330)
 sourceid(3) ccid(1)
 2009-01-31 23:42:05.019 ChannelBase(1): Current Input #1: 'DVBInput #1'
 }}}
 Everything works fine normally. However if you attempt to change channel
 in '''browse mode''' to a channel on a different input you will see the
 following output
 {{{
 2009-01-31 20:30:33.773 ChannelBase(1): Failed to find channel(785) on
 current input (DVBInput #3) of card (1).
 2009-01-31 20:30:33.775 ChannelBase(1): Found channel(785) on another
 input (DVBInput #1) of card (1).
 2009-01-31 20:30:33.811 ChannelBase(1): Failed to find channel(384) on
 current input (DVBInput #3) of card (1).
 2009-01-31 20:30:33.813 ChannelBase(1): Found channel(384) on another
 input (DVBInput #2) of card (1).
 2009-01-31 20:30:33.818 TVRec(1): SetChannel(384) -- begin
 2009-01-31 20:30:33.818 ChannelBase(1): Looking for startchannel '384' on
 input 'DVBInput #1'
 2009-01-31 20:30:33.833 ChannelBase(1): Found startchannel '384' on input
 'DVBInput #2'
 2009-01-31 20:30:33.834 TVRec(1): HW Tuner: 1->1
 }}}
 So it recognises that the channel i'm wanting to change to is not on the
 current input, but then changes to change the channel to the start channel
 but on a totally different input (i.e. the wrong channel). Once you are on
 this new (wrong) channel, you can no longer change channel in browse mode
 and you have to go to the EPG to change channels.

 I believe this bug is due to the fact that CheckChannel() ignores the
 filled in return field 'inputName'.

 I have attached a patch which seems to fix this for me however i'm not
 sure this is the right place to do this or if we're leaking anything here.

 I've marked this as major/high as i'm positive this is bug and should
 affect everyone with multiple satellites on a single dvb card.

--

Comment(by mdean):

 See, also, #6909 for a -v channel,record,siparser log.

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/6208#comment:3>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list