[mythtv] Re: Re: Ticket #255: Improved scheduling of consecutive programs with pre-roll/overrecord

William Uther willu.mailingLists at cse.unsw.edu.au
Fri Sep 30 13:26:09 UTC 2005

On 30/09/2005, at 11:30 AM, mythtv-dev-request at mythtv.org wrote:

> Date: Thu, 29 Sep 2005 17:48:37 -0500
> From: David Engel <gigem at comcast.net>
> Subject: [mythtv] Re: Re: Ticket #255: Improved scheduling of
>     consecutive    programs with pre-roll/overrecord
> Message-ID: <20050929224837.GB4437 at opus>
> On Wed, Sep 28, 2005 at 11:51:21PM -0700, Mark Kundinger wrote:
>> Here's what I forsee would be the most flexible, power-usery, and
>> hardest to understand way of approaching this:
>> [...]
>> ... I dunno, sounds like a lot of work?  I can see it helping out my
>> own tv-watching, but only rarely.  Kind of like swatting a fly with a
>> bulldozer.
> You captured my sentiments exactly.
> I know this is going to piss off some people, but here is what I now
> intend to do.
> 1. Table any changes which add soft scheduling for the time being.
> 2. Add default start-early and end-late settings for new recording
>    rules.  Existing rules will have to be edited if wanted.
> 3. Limit the existing pre-roll and post-roll settings to 30 seconds
>    maximum.
> 4. After 3 or 4 weeks, re-open this discussion.  Hopefully by then,
>    the big soft scheduling proponents will have real world experience
>    with the above changes and how much of a problem there still is.

I had tried to stay out of the fight, but the above email seems quite  
aggressive, and I want to at least defend the status quo.  If you  
really implemented the above it would have a large effect on the  
utility of my Myth box.  Of course, I'd simply revert that revision  
in my working copy, but can I request that you not make this regression.

Yes, here in Aus we do need extra soft timing.  It is usually a  
delay, requiring extra time at the end of a show, but not always.  I  
have my box set to record 2mins extra before and 7.5 mins after.  I  
would have them longer, but I didn't want to waste disk space - I  
wish I could set them longer on individual shows.  I use the hard  
time adjustments on individual programs as well.  The problem I have  
with the hard adjustments is that often shows in Aus are moved  
around.  If I have extended the record time of a program because it  
runs long, and then a program I want to catch gets moved after it on  
the same channel, then my extension of the original program will  
cause a conflict.  What I really want is that both programs are  
recorded in this case.  Sure, the end of the first program will be on  
the start of the second, but that's ok.  The end of the second  
program will be caught by its time extension.

The above scenario is common for me.  With only 5 channels in Aus, it  
is not uncommon that programs I want to record follow each other on  
the same channel.  At the moment I have to review the schedule to  
make sure the scheduler is doing what I want.  I would rather that  
the scheduler was smarter and able to handle this case for me.   
Making appliances smarter can often be a problem, because later you  
have to outsmart the 'smart' algorithm to get it to do what you  
want. :)  I think it is possible to come up with a system that works  
well, is easy to override, and isn't too complex for the user in the  
common cases.

Here are my thoughts on that (because you know you needed more :) :

Imagine there are two shows "Better" and "Worse".  Each has both pre  
and post soft time adjustments.

Here are the dimensions along which things can change:
  - Do soft times overlap
  - Do hard times overlap
  - Are the shows on the same channel
  - Is there a spare tuner
    - Does the spare tuner have a lower priority
  - Does Worse have another showing
    - Is that other showing is on a lower priority channel
  - Does Better have another showing
    - Is that other showing is on a lower priority channel
  - How much better is Better than Worse
  - How much more annoying is it to miss the end rather than the  
beginning of a show
  - Does one program running long delay programs that come after it  
on the same channel

While I was trying to be complete, that is a lot of things to  
consider.  Settings for all of them would be major featureitis.   
Especially as there is currently only one setting for scheduling:  
"Reschedule higher priorities".

So, here is what I would do:

Separate pre/post-roll and soft time adjustments.  Each show gets  
gets four settings: hard and soft, pre and post time adjustments.   
There are also global defaults that get used as initial values for  
these four settings for new shows.  There are also the following  
global settings:

  1a) Reschedule higher priorities (boolean), or
  1b) Later showing priority delta (integer)
  2) Reschedule soft time adjustments (boolean)
  3) Soft end time adjustment priority delta (integer)
  4) Propagate soft time adjustments (boolean)

Shows are then scheduled as follows:

  - If soft times do not overlap then both shows can be recorded -  
there is no problem.
  - If the hard times overlap then things are scheduled as they  
currently are (using 1a).  See below for my thoughts about replacing  
1a with 1b.
  - If the shows are on the same channel, then the overlapping soft  
adjustments should be reduced and both shows scheduled on the same  
tuner (All the data will be in at least one recording, and this sets  
things up for a later change that duplicates the overlapped data into  
both recordings while only using one tuner).  In this case, option 4  
causes the soft end time adjustment of the later show to be set to  
the maximum of the soft end times of the two shows.  This deals with  
the case where the earlier show runs late making the second show run  
  - If the shows are on different channels and there is a spare  
tuner, then use the spare tuner.

We are now down to the case where there is no spare tuner, the shows  
are on different channels, and their soft times overlap but their  
hard times do not.

  - If 2 is set, and either Worse has a later showing or, both  
preference 1 is set and Better has a latter showing, then move the  
show with the later showing to that later showing.  Otherwise there  
is a soft conflict.

  - In case of an unresolvable conflict between soft times, then you  
need to work out which soft time (post of earlier show, or pre of  
later show) has priority.  Take the number from preference 3 and add  
it to the priority of the earlier show.  You compare that sum to the  
priority of the later show.  If the earlier show's adjusted priority  
is higher then you keep the soft post-time adjustment of the earlier  
show, and reduce the pre-time adjustment of the later show (normal  
case).  If the later show's number is higher, then you keep the pre- 
time adjustment of that later show, and reduce the post-time  
adjustment of the earlier show (abnormal case).  If you've reduced  
one show's soft time adjustment to zero and there is still overlap,  
then reduce the other show's soft time adjustment as necessary.

Note that in this last case a priority adjustment was used to  
determine if we should record the end of one program or the start of  
the next.  If the two programs are similar priority, then you  
probably want to record the end rather than the start.  However, if  
the two programs are wildly dissimilar in priority, then I want to  
make sure I record the higher priority one, and I don't care if I  
miss some of the lower priority one.  Having a numeric adjustment  
here allows me to set this tradeoff.  The other thing about this is  
that while the global setting is a little tricky to understand, it  
has the nice side effect that simply raising the priority of a  
program will, at some point, cause it's pre-roll to take effect.  The  
details might be tricky, but there is a simple and obvious action  
that has the right effect at some point.

It is for this last reason that I mentioned 1b as well as 1a.  I'd  
replace the current "Reschedule Higher Priorities" setting with a  
similar "priority delta" setting.  If the priority of Better is  
really high, then it will not be re-scheduled.  If the priority of  
Better is only a little higher than the priority of Worse, then  
Better can be rescheduled.  While the global settings are more  
complex, raising the priority of a show will cause it to be scheduled  
earlier, and that is something that is very easy for users to  

Be well,

Will         :-}

Dr William Uther                           National ICT Australia
Phone: +61 2 8306 0424               Computer Science and Engineering
Email: william.uther at nicta.com.au      University of New South Wales
Email: willu at cse.unsw.edu.au                  Sydney, Australia

Web: http://www.cse.unsw.edu.au/~willu/   or  http://www.nicta.com.au/

NICTA email Disclaimer:
UNSW email Disclaimer:

More information about the mythtv-dev mailing list