Opened 18 years ago
Closed 18 years ago
#1847 closed patch (fixed)
DVB - Backend fails to tune to a channel on a different input
Reported by: | Owned by: | danielk | |
---|---|---|---|
Priority: | minor | Milestone: | 0.20 |
Component: | mythtv | Version: | head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
This is a bug introduced with the mythtv-eit merge. When I attempt to change channels from one input to another on the same cardid it fails. I've been doing a bit of debugging and can't figure out what is what. It looks like when the tuning request is enqueue()'ed, request.program() is 0 and seems to never get a value which causes in TVRec::TuningGetChanNum?() to never call request.program->GetChannel?(), which I believe does the setting of request.input. I am attempting to tune from cardinputid 3 to cardinputid 4. Tuning to the same cardinputid succeeds, however. The input the old channel is on is "DiSEqC v1.3 Input 1", DiSEqC position -110, and the new channel is on input "DiSEqC v1.3 Input 2", DiSEqC position -119. Backend log attached.
Attachments (4)
Change History (9)
comment:1 Changed 18 years ago by
Owner: | changed from Isaac Richards to danielk |
---|---|
Priority: | major → minor |
comment:2 Changed 18 years ago by
After some more research and speaking with Janne Grunau, this seems to be related to the changes wrt channelutil.cpp and TVRec::TuningGetChanNum?() which didn't exist in trunk prior to the mythtv-eit merge.
comment:3 Changed 18 years ago by
Type: | defect → patch |
---|
Here's a patch to fix this issue. Thanks to Daniel for pointing me in the right direction. I'm not entirely happy with this though. It seems SetChannelByString?() is called more than once before the HandleTuning?() does its job. Since the solution is to add ChannelBase::CheckChannel?() to SetChannelByString?(), that means it gets called more than once is well which means the same query is run against the database. I could somehow fix it so CheckChannel?() is only called on the first run on SetChannelByString?() but I think we need to figure out why SetChannelByString?() is being called more than once.
comment:4 Changed 18 years ago by
Hmm, do you need nextInputName?
Also, please strip the \r characters from your patches in future. :)
comment:5 Changed 18 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
(In [10023]) Fixes #1847. Make automatic input switching (based on channel number) work with DVB cards w/patch from Mark Buechler.
When we made DVBChannel input aware a few months we forgot aspect of this required so that you could switch to a channel on another input without explicitly switch inputs using the "C" key first. It actually worked as a side effect of the full retuning we were doing on each DTV channel change, but this broke when I added the quick intra-multiplex channel changing code.
backend log