Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#4480 closed defect (duplicate)

External Channel Changer executed twice while watching live TV

Reported by: anonymous Owned by: danielk
Priority: major Milestone: 0.21
Component: mythtv Version: head
Severity: medium Keywords: external channel changer
Cc: Ticket locked: no

Description

Updated to svn 15450.

The external channel changer started to get executed twice while changing channels in LiveTV. Trying to go to channel 27 will send 2727 to the cable box. the log shows 2 subsequent executions of the external channel changer command.

The channel changer gets executed only once (as expected) for any regular scheduled recordings.

Change History (6)

comment:1 Changed 12 years ago by danielk

Owner: changed from Isaac Richards to danielk
Status: newassigned

I believe this is related to the channel->Init() causing the #4472 bug.

comment:2 Changed 12 years ago by danielk

Status: assignedinfoneeded

Can you tell me if the patch in #4472 resolves this issue?

If not, I'll need your 'mythbackend -v record,channel,siparser' log.

comment:3 Changed 12 years ago by Robin Gilks <g8ecj@…>

I had the same issue and 4471_v1.patch fixed it for me.

comment:4 Changed 12 years ago by Robin Gilks <g8ecj@…>

Sri 4472_v1.patch (that will teach me to do updates at 1 in the morning!)

comment:5 Changed 12 years ago by Janne Grunau

Resolution: duplicate
Status: infoneededclosed

duplicate of #4472

comment:6 Changed 12 years ago by danielk

(In [15470]) Fixes #4472. Refs #4480. Fixes a channel initialization problem.

The problem was causing segfaults in the firewire recorder as the channel was sometimes reinitialized on channel changes before the recorder had successfully paused. This was causing channel change scripts to be executed twice per channel change rather than once.

This adds a new function to ChannelBase?, IsTunable?() which only verifies whether the channel is tunable in terms of being a valid channel and not conflicting with input groups, but does not actually try to tune it. This also adds a parameter to ChannelBase::Init() called setchan, which when set actually intializes the channel, and when cleared does all the verification and has all the side-effects of Init() except for actually performing the initialization of the hardware.

Note: See TracTickets for help on using tickets.