[mythtv] Same old mind reading crud.

Michael T. Dean mtdean at thirdcontact.com
Fri Apr 13 13:22:36 UTC 2007

On 04/13/2007 12:38 AM, Peter Schachte wrote:
> Bruce Markey wrote:
>> There is no magic solution. If the content of a
>> program is expected to extend outside the listed times, then
>> the scheduler needs to be told with endoffset that the highest
>> priority shows must record to their conclusion. If you expect
>> to require extra time to capture content for the majority of
>> your rules, DefaultEndOffset can be used.
> There's no magic mind-reading solution, but we could *tell* Myth when it's OK
> to drop padding and when it's not, and have myth do that.  Just as we give
> priorities to programs and let Myth do the actual scheduling accordingly.
> If each program had a "Drop the padding if necessary" option in the scheduling
> options screen (right after Start Early and End Late), then if Myth finds it
> can't schedule a program whose hard padding is permitted to be dropped, it
> could try again without the padding.  OK, it's more complicated than that;
> you'd want to keep as much of the padding as possible, and you'd want to allow
> two programs of the same priority both of whose padding can be dropped to share
> the available time for padding.  But the point is that it could optionally drop
> padding without mind reading if it had just a little bit of extra info.

There is no "hard padding."  The start early/end late /are/ what you 
refer to as "hard padding."  You tell Myth to drop them by changing them.

This allows you to say choose which before /and/ which after show gets 
modified (you need to modify start early on the after show and end late 
on the before show) as well as how they are modified.  You do so with 
positive and negative values.

So, the important show that comes first /can/ have its 2 minutes of end 
late while the less important show that comes afterward gets a -2 start 
early.  Or, the not important show that comes first can get a -2 end 
late while the more important show that comes afterward can get its 
start early.

For example, if I were recording The Office from 8:30 to 9:00 and CSI 
and Supernatural from 9:00 to 10:00 and I had a conflict because of a 
2-minute start early/end late on each, the /right/ way to fix the 
conflict is to allow end late on The Office (2 minute end late) and 
start CSI 2 minutes late (-2 minute start early).  The wrong ways 
(notice the plural) are to a) drop end late from The Office and drop 
start early from CSI (I miss part of The Office, but don't mind missing 
part of CSI), b) drop end late from The Office and drop start early from 
Supernatural (I miss part of The Office /and/ Supernatural--the two I 
care about), and c) keep end late from The Office and start late on 
Supernatural (I miss a whole bunch of Supernatural).

Now please show me the code for an algorithm that knows this /and/ knows 
my personal preferences for handling all other possible scheduling overlaps.

Could we make these changes automatic based on priority?  Sure, if we 
want to encode some meaning into priority that's /far/ more complex for 
the user to understand than simply, "Tell Myth to start the one you care 
least about late..."  As a matter of fact, I spend a lot of time in 
Myth's code (and figuring out how Myth works), and I /know/ I would be 
confused by a priority-based approach (which, incidentally, would be 
completely broken--after I spent so much time getting my priorities 
straight--when some network decides to change the timeslot for a show).


More information about the mythtv-dev mailing list