Opened 14 years ago

Closed 14 years ago

#981 closed defect (fixed)

LiveTV changing channels: DVB-S confused and locked

Reported by: pstehlik@… Owned by: danielk
Priority: trivial Milestone: 0.19
Component: mythtv Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Two cards: bttv and DVB-S, three inputs (bttv 1, DVB-S 2-3 thanks to DiSEqC 2:1 switch).First 4 channels (1-4) defined on bttv, the other defined on DVB-S.

Two problems: first, once I change the Live TV channel to one of the DVB-S I can't switch back to bttv using channel number. Second problem is that switching to DVB-S activates a different channel than I wanted - probably because of the DiSEqC switch.

Chronological description of the first problem:

00:14:00 - Live TV started, tunes to channel 3, input 1 automatically. Switching to any channel would yet work correctly, including switching to a channel on another card and input. However, as soon as the channel is changed to a DVB-S card (channel 6, at 00:15:00) it's not possible to switch back to bttv (channel 1, tried at 00:17:00 and also channel 4 at 00:17:30). It's simply ignored with

Failed to find channel(1) on any input of card (2)

and it does not try other cards (which IMHO it should since the other way, from bttv to DVB-S it worked OK).

Switching channels on the DVB-S continues to work normally (channel 5 at 00:18:00).

Second problem: I asked for channel 6 (which is on input 3) at 00:15:00 but it tuned to channel 14 instead (which is on input 2). I then asked again for the channel 6 at 00:16:00 and now it tuned the input 3 correctly.

Attached are the complete logs.

Attachments (8)

backend.log.gz (29.0 KB) - added by pstehlik@… 14 years ago.
frontend.log.gz (19.5 KB) - added by pstehlik@… 14 years ago.
981-v1.patch (11.5 KB) - added by danielk 14 years ago.
Preliminary fix for cross recorder channel switching
frontend2.log.gz (17.3 KB) - added by pstehlik@… 14 years ago.
after applying the 1st patch
backend2.log.gz (26.3 KB) - added by pstehlik@… 14 years ago.
after applying the 1st patch
981-v2.patch (20.3 KB) - added by danielk 14 years ago.
updated patch
frontend3.log.gz (39.5 KB) - added by pstehlik@… 14 years ago.
DVB-S DiSEqC ignored on first tuning
backend3.log.gz (72.4 KB) - added by pstehlik@… 14 years ago.
DVB-S DiSEqC ignored on first tuning

Download all attachments as: .zip

Change History (19)

Changed 14 years ago by pstehlik@…

Attachment: backend.log.gz added

Changed 14 years ago by pstehlik@…

Attachment: frontend.log.gz added

comment:1 Changed 14 years ago by Isaac Richards

Owner: changed from Isaac Richards to danielk

comment:2 Changed 14 years ago by danielk

Milestone: 0.19
Priority: minortrivial
Version: head

Sounds like a bug, I'll have a look at it after looking at my other 0.19 tickets.

comment:3 Changed 14 years ago by Mark.Buechler@…

I have seen your second problem as well. While switching from one of my PVR250 inputs to a DVB channel DVB always goes to the last saved channel for that input instead of the DVB channel I just selected which forced me to reselect the channel. This is with svn 8472.

I believe your first problem has already been addressed sometime between 82xx and 83xx.

  • Mark.

Changed 14 years ago by danielk

Attachment: 981-v1.patch added

Preliminary fix for cross recorder channel switching

comment:4 Changed 14 years ago by danielk

Petr, can you test the patch against revision [8570]?

It is not terribly efficient as is, but it should work.

comment:5 Changed 14 years ago by pstehlik@…

It's actually same or even worse. Before I could go from bttv (channels 1-4) to any channel (including DVB-S) but could not go back from DVB-S to bttv. Now I can't even go from bttv to DVB-S channels 5-9. Surprisingly I can go from bttv to DVB-S channel 11. No idea why 11 works but 5-9 don't.

Attached logs show the following session:

  • 58:00 - entering live tv
  • 58:30 - asking for DVB-S channel 6 (still plays bttv, this channel change was ignored)
  • 59:00 - asking for DVB-S channel 5 (that's different DiSEqC input, ignored as above)
  • 59:30 - asking for DVB-S channel 11 (it's HDTV but it shouldn't matter, should it? - and worked)
  • 00:00 - asking for bttv channel 1 (doesn't work, plays the channel 11)
  • 00:30 - asking for DVB-S channel 6 (worked OK)

Changed 14 years ago by pstehlik@…

Attachment: frontend2.log.gz added

after applying the 1st patch

Changed 14 years ago by pstehlik@…

Attachment: backend2.log.gz added

after applying the 1st patch

comment:6 Changed 14 years ago by danielk

Petr, from the logs it looks like you may have a configuration problem. Please e-mail me a dump of your channel, cardinput, and capturecard tables.

Changed 14 years ago by danielk

Attachment: 981-v2.patch added

updated patch

comment:7 Changed 14 years ago by danielk

Petr, can you test this? It should work in your case, but even if it doesn't it prints out some more useful debugging about partial matches, etc.

FYI The code in this is patch is messy, it is just for testing.

comment:8 Changed 14 years ago by pstehlik@…

Daniel, the issue with "locked" DVB-S (when I couldn't go back from DVB-S to bttv) seems to be fixed, thanks a lot. The other issue that I found out when I was writing this ticket ("DiSEqC is sort of ignored when first tuning a given card") remains. Please decide whether to close this ticket (I would then create a new one describing just the issue with DiSEqC tuning) or whether this ticket remains open until the DiSEqC problem is fixed as well. I'll append the DiSEqC logs to this comment, anyway.

Thanks again for looking into the Live TV channel changing and fixing it.

Changed 14 years ago by pstehlik@…

Attachment: frontend3.log.gz added

DVB-S DiSEqC ignored on first tuning

Changed 14 years ago by pstehlik@…

Attachment: backend3.log.gz added

DVB-S DiSEqC ignored on first tuning

comment:9 Changed 14 years ago by pstehlik@…

OK, attached fresh logs that should show the DiSEqC problem. Channel 1 = bttv (card 1, sourceid = 1) Channels 6,8 = DVB-S DiSEqC input 1 (card 2, sourceid = 2) Channel 9 = DVB-S DiSEqC input 2 (card 2, sourceid = 3)

Now the problem is that when asking for channel 9 while LiveTV is on another card the MythTV correctly finds out that it should switch to card 2 but then ignores the sourceid/DiSEqC somehow and tunes the last used channel on the wrong DiSEqC input instead.

Timeline:

  • 12:55:00 entered Live TV - bttv channel 1
  • 12:55:30 asked for channel 8 - got channel 8
  • 12:56:30 asked for channel 9 and since I am on the card 2 already I get the channel 9 correctly
  • 12:57:00 switching back to bttv by changing to channel 1
  • 12:57:30 trying to get channel 9 (=switching to card 2) but getting channel 8 -> PROBLEM. Probably got ch.8 because it was last used channel on card 2/sourceid 2 - my choice of channel 9 was ignored completely
  • 12:58:00 changing to channel 6 to make the 6 last used channel on card 2/sourceid 2
  • 12:58:30 changing to channel 9 to make the 9 last used channel on card 2/sourceid 3
  • 12:59:00 going back to bttv
  • 12:59:30 asking for channel 9 (=switching to card 2) but getting channel 6 -> PROBLEM. Probably got ch.6 because it was last used channel on card 2/sourceid 2 - my choice of channel 9 was ignored completely

Beware please: my original channel 8 from the mysql dumps I sent you disappeared on the EuroBird? satellite so I had to tune the same channel on Astra1 (different satellite thus different DiSEqC input). Thus channel 8 is now on sourceid 2, not sourceid 3 like in the dumps you got. Don't get confused by that, please.

comment:10 Changed 14 years ago by danielk

Please open a seperate ticket for the DiSEqC problem. It's going to have to wait until 0.20. Since I don't have DiSEqC, fixing those problems always takes a while...

I will clean up the patch for the other problem and apply it in the next couple days.

comment:11 Changed 14 years ago by danielk

Resolution: fixed
Status: newclosed

(In [8617]) Fixes #981.

The cross recorder channel changes didn't have enough information from TVRec::CheckChannelPrefix?(). This extends that call with some more information which allows us to properly switch tuners even if the prefix matches several channels, but it matches at least one channum exactly. Before if a channel number was a prefix for another valid channel we could not switch to that channel unless it was on the current tuner.

Since the change to CheckChannelPrefix? changes the MythTV protocol, for "CHECK_CHANNEL_PREFIX" the MYTH_PROTO_VERSION has been incremented and a 'make clean' and reinstall of all frontend's and backends is needed.

Note: See TracTickets for help on using tickets.