[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
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