On 30/09/2005, at 11:30 AM, [EMAIL PROTECTED] wrote:

Date: Thu, 29 Sep 2005 17:48:37 -0500
From: David Engel <[EMAIL PROTECTED]>
Subject: [mythtv] Re: Re: Ticket #255: Improved scheduling of
    consecutive    programs with pre-roll/overrecord
Message-ID: <[EMAIL PROTECTED]>

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 late. - 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 understand.

Be well,

Will         :-}

--
Dr William Uther                           National ICT Australia
Phone: +61 2 8306 0424               Computer Science and Engineering
Email: [EMAIL PROTECTED]      University of New South Wales
Email: [EMAIL PROTECTED]                  Sydney, Australia

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

NICTA email Disclaimer:
http://www.cse.unsw.edu.au/~willu/NICTAEmailDisclaimer.html
UNSW email Disclaimer:
http://www.eng.unsw.edu.au/emaildis.htm

_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev

Reply via email to