Opened 11 years ago

Closed 11 years ago

Last modified 8 years ago

#4498 closed defect (fixed)

LiveTV fails to choose correct encoder if requested channel is on a different frequency with Current SVN 15504

Reported by: stev391@… Owned by: danielk
Priority: minor Milestone: 0.21
Component: dvb Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

I have just attempted to set up the multirec additions on my MythBox?.

Firstly I tried deleting all cards (Leadtek DTV1000T & Leadtek DTV2000H) and adding them in with the option of 4 simultaneous recordings available per card. Scheduling recordings via mythweb correctly selected the encoders. However when recording with one tuner LiveTV fails to select second card automatically for channels on a different frequency from recording. To select the card I have to press the key bound to NEXTCARD until I eventually get to my second card.

I have also tried to do two seperate Video Sources (one for each card). This was confusing due to having two copies of the guide to propagate. This made it slightly easier in LiveTV to select the correct card (Using NEXTSOURCE). However the same issue appears.

Attached are logs for the first case.
Steps to reproduce:
1) Delete all cards
2) Add one card at a time with settings for 3 or 4 (might work with other numbers) simultaneous recordings.
3) Associate with Video Source.
4) Watch LiveTV and tell it to record,
5) Exit out of LiveTV and enter it again (chooses the next encoder in list).
6) Try changing to different channel on a different frequency,
7) Wait for message saying you should change cards or video sources. (LiveTV is blank or on last frame at this stage)(logs tell us: "ChannelBase?(2): IsTunable?(,7) Channel is valid, but tuner is busy on different multiplex (1 != 3)")
8) Cycle through cards or video sources until you get to the next real card, now it displays TV.

Attachments (5)

mythbackend.log (16.8 KB) - added by stev391@… 11 years ago.
Mythbackend Log (No Verbose settings)
mythfrontend.log (11.5 KB) - added by stev391@… 11 years ago.
Mythfrontend Log (No Verbose settings)
mythtv_chanbase_Init_fixes6.diff (3.2 KB) - added by Shane Shrybman <gnome42@…> 11 years ago.
Find good starting channel
mythbackend_after_patch.log (9.2 KB) - added by stev391@… 11 years ago.
Mythbackend Log (No Verbose settings) After Shanes patch
mythfrontend_after_patch.log (2.7 KB) - added by stev391@… 11 years ago.
Mythfrontend Log (No Verbose settings) After Shanes patch

Download all attachments as: .zip

Change History (12)

Changed 11 years ago by stev391@…

Attachment: mythbackend.log added

Mythbackend Log (No Verbose settings)

Changed 11 years ago by stev391@…

Attachment: mythfrontend.log added

Mythfrontend Log (No Verbose settings)

comment:1 Changed 11 years ago by stev391@…

I have just found a setting that helps the issue in the Mythfrontend setup under Tv->General->"Avoid Conflicts between live TV and Scheduled shows".

This setting starts my Live TV at the bottom of my list of encoders while recordings start from the top. However if I record two items on different frequencies LiveTV does not select the right encoder for the requested channel (if a tuner is already on that frequency) so I have to keep using NEXTCARD to get to the right encoder.

Changed 11 years ago by Shane Shrybman <gnome42@…>

Find good starting channel

comment:2 Changed 11 years ago by Shane Shrybman <gnome42@…>

The bit in the log about:

"ChannelBase??(2): IsTunable??(,7) Channel is valid, but tuner is busy on different multiplex (1 != 3)"

Is still a bug a think. It should find a channel on the busy multiplex if possible.

Attached patch to do that: mythtv_chanbase_Init_fixes6.diff

comment:3 Changed 11 years ago by danielk

Milestone: unknown0.21
Status: newassigned

Changed 11 years ago by stev391@…

Attachment: mythbackend_after_patch.log added

Mythbackend Log (No Verbose settings) After Shanes patch

Changed 11 years ago by stev391@…

Mythfrontend Log (No Verbose settings) After Shanes patch

comment:4 in reply to:  2 ; Changed 11 years ago by stev391@…

Replying to Shane Shrybman <gnome42@gmail.com>:

The bit in the log about:

"ChannelBase??(2): IsTunable??(,7) Channel is valid, but tuner is busy on different multiplex (1 != 3)"

Is still a bug a think. It should find a channel on the busy multiplex if possible.

Attached patch to do that: mythtv_chanbase_Init_fixes6.diff

I have tested the patch that was attached. The logs don't appear to be effected, again there is no verbose settings in the command line, which ones do you want me to run it with? Attached are the logs. Situation: recording on one channel (10) and entering liveTv and requesting channel (2) then channel (9). For both channel change requests it returned to channel 10. So this has improved, but still doesn't let the user watch the requested channel even though a card is free for use.

comment:5 in reply to:  4 Changed 11 years ago by Shane Shrybman <gnome42@…>

Replying to stev391@email.com:

Replying to Shane Shrybman <gnome42@gmail.com>:

The bit in the log about:

"ChannelBase??(2): IsTunable??(,7) Channel is valid, but tuner is busy on different multiplex (1 != 3)"

Is still a bug a think. It should find a channel on the busy multiplex if possible.

Attached patch to do that: mythtv_chanbase_Init_fixes6.diff

I have tested the patch that was attached. The logs don't appear to be effected, again there is no verbose settings in the command line, which ones do you want me to run it with? Attached are the logs. Situation: recording on one channel (10) and entering liveTv and requesting channel (2) then channel (9). For both channel change requests it returned to channel 10. So this has improved, but still doesn't let the user watch the requested channel even though a card is free for use.

Ok, good. The improvement you mention is what the patch was meant to address.

I think what you are describing is the expected behaviour.

And you found the best solution by checking, "Avoid Conflicts between live TV and Scheduled shows." Without that option checked your livetv session will start on the next card which is a (virtual) card that is shared with the same card that has a recording in progress. While on that card you are limited to channels on that mutliplex, (while the recording is in progress).

Here is the log message saying that it couldn't tune to another channel due to the multiplex restriction.

ChannelBase?(2): IsTunable?(DVBInput,9) Channel is valid, but tuner is busy on different multiplex (2 != 11) ChannelBase?(2) Warning: Setting start channel '9' failed,

selected to '10' on input 'DVBInput' instead.

So, while the recording is in progress you will need to switch cards to tune other channels.

comment:6 Changed 11 years ago by danielk

Resolution: fixed
Status: assignedclosed

(In [15760]) Fixes #4498. Makes ChannelBase? try a little harder to find a valid channel on a restricted recorder w/patch from Shane.

When a DVB recorder is tuned to a particular multiplex and another recorder referring to the same device tries to tune to another frequency we instead try to find a channel on the same multiplex. The channel browser and channel up/down were already restricted to valid channels, but before this patch was applied you could force the recorder to another channel through direct entry. The backend would actually prevent you from putting the backend into an inconsistent state, but the frontend would go on merrily believing that it would be getting a signal on the new channel any moment now..

comment:7 Changed 8 years ago by sunsky@…

im using a binary version of mythtv 0.24 from the mythbuntu repos. however this patch should still be present in there since its from 0.21.

however apparently it doesnt work. also the implementation should not be like that. a while loop testing every possible input isn't needed. in fact selecting the "right" input should always be an issue for performance reasons.

it should be possible to query a suitable (and currently unused) input by making use of the inputgroups and the channel/multiplex tables.

so it should lookup an appropriate input by default and not "try and error" all inputs ... and if that wont work return to a default channel like its done already.

Note: See TracTickets for help on using tickets.