[mythtv] Strange scheduler bug

Bruce Markey bjm at lvcm.com
Tue Mar 9 16:43:03 EST 2004

Chris Pinkham wrote:
>>>While we're on the subject, one thing I thought about recently is that 
>>>it'd be nice to differentiate between auto-expired recordings and 
>>>manually deleted recordings when deciding what was previously recorded - 
>>Same here.  I've been meaning to look for myself (or be lazy and just
>>ask Chris) what, if anything, is done when a recording is
>>auto-expired.  Without having looked at any of the code, I think the
>>straight forward thing to do would be to not add an entry to
>>oldrecorded until the user explicitly deletes the recording.
> Nothing is done currently except for deleting the file & DB entry by

For clarity, it is the "recorded" DB entry that is deleted and
not the 'oldrecorded' entry, right? =)

> using the same method that would be used if the user manually deleted
> the recording.  It would be nice if we had the option to 'forget' we
> recorded something if it was autoexpired and we hadn't watched it, but
> that requires tracking whether we've watched something or not.

It is not required. I'd suggest an option flag that the user can
choose if they want to 'forget' things that are auto-expired or
not. Some people may believe that if something didn't capture their
interest the first time then there is no reason to keep recording
it. Others may think that if if they didn't see it it will still
be new to them the next time.

What you are suggesting is that the system could do a better job
if it determined that the user has watched something. I believe
this is problematic in several ways and is not really useful.
In general, the system can determine if a user watched part of
a show but if it hasn't been deleted, it can not determine if
the user still wants to watch more of that show.

>   Could
> easily add a field to recorded to say whether a recording has been
> watched and increment it once everytime a recording is watched past
> say 5 minutes into the recording (to weed out those cases where you start
> playing a recording to see what it is then exit out fairly quickly).

Someone could also skip to the end to see that it recorded all
the way through or may jump through to see if there are segments
or guests worth watching before deciding to delete it or keep it
to watch later.

Checking if there is a bookmark or storing the highest keyframe
accesses or timing when playback was entered and exited or counting
how many keyframes where accessed or checking to see if the last
minute has been accessed or any other method doesn't tell the system
how the user feels about the show. If a user watched then deleted
a show, there is no ambiguity. If the user accessed a show but
didn't delete it, there is probably a reason. Watching something
then not deleting it yet hoping that it will get deleted just
doesn't seem to me to be typical behavior. If I've watched more
than five minutes of something but haven't deleted it then I
either haven't finished watching it yet or I have finished and
may want to watch parts of it again. Of course, you can/should
uncheck auto-expire for things to keep so I think the unfinished
show is the more relevant case.

Now, you are suggesting 'forget' for something that was not
watched so that it will re-record but don't re-record things
that were marked as being watched. However, if I hadn't finished
a show and therefore hadn't deleted it, that would be marked as
"watched". If auto-expire deleted it, I'd want to be darn sure
that it DID re-record so I could watch the rest of it. And that
Discovery show on Borneo that sat there for 3 months, I'm never
going to watch it even if it does comes on again.

Of course, I'd actually delete the show about Borneo but the point
is that there is no clear cut way for the system to determine if
it believes the user has finished watching something and there is
no clear cut correct behavior even if it could.

> If that sounds like a good idea,

No, not really ;-)

>  I could add an option to "remove
> recording history for auto-expired programs if they haven't been
> watched" setting and then make the auto-expire code check that setting
> whenever it expires something.  Making a note on my TODO list about it
> anyway just in case. :)

Either add a flag for "Allow re-recording shows that have been
auto-expired" or the inverse of forgetting by default and a flag
for "Do not re-record shows that have been auto-expired". Each
user can then decide for themselves based on their habits without
imposing the system's assumptions about how the user behaves.

--  bjm

More information about the mythtv-dev mailing list