[mythtv-users] Bug in scheduler?

Scott Rowe mythgnomer at rowelab.com
Fri Mar 5 09:10:04 EST 2004

Interesting explanation.. I never knew about the difference between the two
features. That explanation makes sense as to how two features that act so
similarly evolved from two different needs. I would posit however, that the
common misconception that users have about these two features (including
myself) would mean that either the features need to work the way that the
majority of users expect it to, or some serious reeducation / clarification
needs to happen, as well as a functional divergence of the features. 

Maybe developing some use cases for the two features would help. Listing out
all the potential situations might clarify the roles and applications of
each feature. (As well as identifying common misconception areas.)

-Scott Rowe

-----Original Message-----
From: mythtv-users-bounces at mythtv.org
[mailto:mythtv-users-bounces at mythtv.org] On Behalf Of Bruce Markey
Sent: Friday, March 05, 2004 2:54 AM
To: Discussion about mythtv
Subject: Re: [mythtv-users] Bug in scheduler?

Thomas, first I want to say that I fully understand what you are asking. You
are not the first, and probably not the last to go down this road. The first
thing that needs to be clarified is that myth has two very different
features that serve two different purposes. They are both very useful if you
understand what they do and what they are for and not confuse the
characteristics of two different features which are not directly
interrelated. Secondly, creating an example where a particular behavior
would seem desirable does not mean that it would be desirable in all cases.

Thomas Börkel wrote:
> David Engel wrote:
>>> If I use the global start early/stop later feature (BTW, this should 
>>> allow more than 10 minutes), then the scheduler will not use it, if 
>>> 2 shows run right after each other, even if on different channels. 
>>> If I look at the conflicts screen, it says, it will use the same 
>>> encoder for both shows. But I have 2 capture cards.
>>> In my opinion, this is wrong.
>> Please submit a patch.  But, make it configurable because not 
>> everyone
> Not every Myth user is able to submit patches. There will always be 
> more users than developers. ;-)

At least from my perspective, the message is that if you want some feature
you should do the work (or pay someone to do the work ;-). No one else is
going to do something that they don't want.

>>> But it would be fatal, if the shows run on different channels, 
>>> because I might miss the end of the first show and the beginning of 
>>> the second, if things go a bit wrong.
>> If your guide data isn't accurate enough to catch the end of a show, 
>> use
> At least here, TV world is not perfect. I have NTP running, but seems 
> the stations do not. ;-) If a show is scheduled 8:00 until 9:00, it 
> may start at 7:58 and it may end at 9:02.

There are ways to deal with that but you must understand which feature to
use for which situation.
> The thing is: In 90% of the cases, I would be satisfied with one 
> global setting for start early/stop late, if it would work like the 
> setting for each recording.
> Maybe I made myself not totally clear, so here comes an example:

Fully understood. no surprises here =).

> According to the guide:
> show 1, 7:00 - 8:00, channel 1.
> show 2, 8:00 - 9:00, channel 2.
> I set globally start early 10 minutes, stop late 10 minutes. I have 2 
> capture cards, no one is watching live TV.

Careful! There is NO SUCH THING as "globally start early".
I won't let you confuse "Start Early" minutes used by the scheduler in
setting the start and end times for the scheduled times for each show with
Pre-roll seconds used by the recorder at record time to get a head start so
that a channel change scripts and such can run ahead of time.

These two features are NOT aspects of the same system but are used in very
different ways in different parts of the code.

startoffset and endoffset are stored with each record rule and allow you to
instruct the scheduler that the record times are modified from the program
information. These values are used when the schedule planning takes place.
The recorder knows nothing about these and only follows orders for the
minute when it is time to record. Changing the scheduled times so that shows
overlap means the the scheduler will either have to plan to used different
cards or, if there isn't a card available, plan to not record one of the

It may take a few seconds to startup the recording process, run a channel
change script, wait for a settop box's OSD to clear, etc.
Therefore, the recorder has a pre-roll seconds feature that the recorder
uses at record time when possible. This information is used by the recorder
and has nothing to do with planning the schedule. 

> Now Myth will record:
> show 1 from 6:50 - 8:00 on encoder 1
> show 2 from 8:00 - 9:10 on encoder 1
> (at least this is what the scheduled recordings screen says) and 
> encoder
> 2 will not be used.
> But the stations will send today:
> show 1 from 7:02 - 8:02
> show 2 from 7:58 - 8:58

Then, of course, these shows must be on two different stations.
You know that there are 4 minutes that must be recorded at the same time.
There is no way to fudge the recorder to know what to do so the schedule has
to be modified to account for this.
Therefore, you must use Start Early/End Late to tell the scheduler to plan
for this. Note also that one show is early and the other is late so they
have different solutions. In myth you can set these offset per show to
handle just this kind of situation.

> OK, this is a worst case scenarion, but in this case, I will miss the 
> end of show 1 and the beginning of show 2.
> And so I cannot use the global setting and have to set it for each 
> recording, wher it works like I need it.

But even in the example you chose, the needs for the two shows were

What you've been trying to propose is that the scheduler should take the
recorder warm-up time into account when planning the schedule. Even if you
had come up with a better example, it still wouldn't take into account all
the possibilities. For example, many people have a card that has better
quality than other cards. If there are two favorite shows back-to-back, they
would want both shows to use the best card rather than having the second
show forced to the second card when there is no real schedule conflict.

What if you had two shows from 8-9 and a show from 9-10? The 9 o'clock show
couldn't start early unless the system knew it was okay to end one of the 8
o'clock shows earlier. How would it know that? Even if it was okay to start
at 9, maybe you know that one of the 8 o'clock shows is more likely to run
later than the other. You could tell the scheduler this with End Late but
there is no way global post-roll can give the system a hint as to what the
best solution would be.

If you need to add minutes to be sure that you will get the entire show,
specify the Start Early/End Late minutes which you believe will be best for
that station or show. Be prepared to resolve any conflicts you create. There
is no way for the software to guess correctly at what exactly you would want
in every situation.

If you want the recorder to get a head start of a few seconds whenever
possible, use pre-roll seconds.

--  bjm
mythtv-users mailing list
mythtv-users at mythtv.org

More information about the mythtv-users mailing list