[mythtv] Re: Re: Ticket #255: Improved scheduling of consecutive
programs with pre-roll/overrecord
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
> 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
> 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
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
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
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