Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: MythTV: Users

Inconsistent treatment of starttime/endtime vs runtime

 

 

MythTV users RSS feed   Index | Next | Previous | View Threaded


f-myth-users at media

Apr 11, 2009, 9:07 PM

Post #1 of 14 (1606 views)
Permalink
Inconsistent treatment of starttime/endtime vs runtime

[Should this be on -dev?]

I've been burned a few times by the following inconsistency. I'm
running a very old Myth, but it appears that the relevant code is
essentially unchanged (except for formatting changes) all the way
up to at least 0.21. Can someone tell me what Myth is -supposed-
to be doing here? Or maybe this is already fixed in SVN?

Check out the following data from SD:

<schedule program='MV000273580000' station='12852' time='2009-04-11T13:00:00Z' duration='PT03H00M'/>

<program id='MV000273580000'>
<title>Little Dorrit Part Two: Little Dorrit&apos;s Story</title>
<description>Dickens&apos; tale of a girl (Sarah Pickering), her father (Alec Guinness) and their benefactor (Derek Jacobi) is seen through the girl&apos;s eyes.</description>
<mpaaRating>G</mpaaRating>
<starRating>***+</starRating>
<runTime>PT03H03M</runTime>
<year>1988</year>
</program>

Note carefully that the duration in the "schedule" tag is exactly 3
hours, but the one listed in the runTime tag is 3 hours and 3 minutes.
(The TCM website currently claims that this is actually 184 minutes,
or 3 hours and -4- minutes, but -also- that the showing starts at
9am and ends at noon.)

Obviously this data is inconsistent.

The actual showing was, in fact, longer than 3 hours. I routinely
pad recordings from TCM by 2 minutes on both sides, which is usually
plenty, but not in this case---the last few minutes got truncated.

I've also seen this behavior from Sundance, and perhaps from other
channels. It's rare, but frequent enough to be a hazard.

Myth's behavior appears to be to follow the data in the "schedule"
tag, even though I see code in datadirect.cpp that clearly seems to be
also extracting the runTime info, only to stuff it into a variable and
then (I believe) drop it on the floor later in the handoff from the
dd_schedule temporary table to the dd_v_program temp table.

I would argue that Myth should take the max of the two values and use
that in computing the endtime of the recording. (It should -not- just
use runTime! If runTime is too short, the recording will certainly be
truncated---I'd certainly rather that Myth took the maximally-conservative
approach and possibly record too much than the reverse.)

Opinions?

(In the meantime, I'm currently looking at some extremely rude hacks
to fix this before (a) it can be fixed -and released- in SVN, and (b)
I actually get the opportunity to upgrade to that release. I'm
thinking of perhaps either trying to max it myself, or adding a
column to some tables to indicate "things are inconsistent here"
so if something gets scheduled with the inconsistency I can have
something else peruse the tables & notice. But I'm not 100% sure
how to even add the maximization---probably the cleanest solution---
because I haven't yet completely followed the logic in datadirect.cpp.
If I've analyzed this correctly and this looks like a straightforward
fix in current SVN, I could backport it into my own version and give
it a whirl.)

Thanks!
_______________________________________________
mythtv-users mailing list
mythtv-users [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users


mtdean at thirdcontact

Apr 11, 2009, 9:29 PM

Post #2 of 14 (1546 views)
Permalink
Re: Inconsistent treatment of starttime/endtime vs runtime [In reply to]

On 04/12/2009 12:07 AM, f-myth-users [at] media wrote:
> [Should this be on -dev?]
>

IMHO, no.

> I've been burned a few times by the following inconsistency. I'm
> running a very old Myth, but it appears that the relevant code is
> essentially unchanged (except for formatting changes) all the way
> up to at least 0.21. Can someone tell me what Myth is -supposed-
> to be doing here? Or maybe this is already fixed in SVN?
>
> Check out the following data from SD:
>
> <schedule program='MV000273580000' station='12852' time='2009-04-11T13:00:00Z' duration='PT03H00M'/>
>
> <program id='MV000273580000'>
> <title>Little Dorrit Part Two: Little Dorrit&apos;s Story</title>
> <description>Dickens&apos; tale of a girl (Sarah Pickering), her father (Alec Guinness) and their benefactor (Derek Jacobi) is seen through the girl&apos;s eyes.</description>
> <mpaaRating>G</mpaaRating>
> <starRating>***+</starRating>
> <runTime>PT03H03M</runTime>
> <year>1988</year>
> </program>
>
> Note carefully that the duration in the "schedule" tag is exactly 3
> hours, but the one listed in the runTime tag is 3 hours and 3 minutes.
> (The TCM website currently claims that this is actually 184 minutes,
> or 3 hours and -4- minutes, but -also- that the showing starts at
> 9am and ends at noon.)
>
> Obviously this data is inconsistent.
>
> The actual showing was, in fact, longer than 3 hours. I routinely
> pad recordings from TCM by 2 minutes on both sides, which is usually
> plenty, but not in this case---the last few minutes got truncated.
>
> I've also seen this behavior from Sundance, and perhaps from other
> channels. It's rare, but frequent enough to be a hazard.
>
> Myth's behavior appears to be to follow the data in the "schedule"
> tag, even though I see code in datadirect.cpp that clearly seems to be
> also extracting the runTime info, only to stuff it into a variable and
> then (I believe) drop it on the floor later in the handoff from the
> dd_schedule temporary table to the dd_v_program temp table.
>

The schedule info is the final arbiter--with the small exception that
when there are gaps in the schedule, the preceding program's endtime is
extended to the following program's starttime. I.e. schedule is the
final arbiter, but starttime is more authoritative than endtime.

> I would argue that Myth should take the max of the two values and use
> that in computing the endtime of the recording. (It should -not- just
> use runTime! If runTime is too short, the recording will certainly be
> truncated---I'd certainly rather that Myth took the maximally-conservative
> approach and possibly record too much than the reverse.)
>

So, you're saying that it should ignore the starttime of the following
program--so that the guy who wants to watch that show writes an e-mail
to the list saying that the program was clearly listed with the proper
starttime in the raw data, but for some reason, Myth changed the
starttime to the incorrect starttime, so he lost the beginning of his show?

The problem is that the entire schedule--not just the schedule for
/this/ program--has to line up with endtimes matching starttimes and no
gaps and ...

> Opinions?
>

Garbage in, garbage out. Fix the schedule, save the world... There can
be only one starttime/endtime...

Basically, the right solution--in the face of garbage listings--is
manual padding. Lesson learned... Hindsight is 20/20...

Mike

_______________________________________________
mythtv-users mailing list
mythtv-users [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users


stevehodge at gmail

Apr 12, 2009, 3:42 AM

Post #3 of 14 (1537 views)
Permalink
Re: Inconsistent treatment of starttime/endtime vs runtime [In reply to]

On Sun, Apr 12, 2009 at 4:29 PM, Michael T. Dean <mtdean [at] thirdcontact>wrote:

> On 04/12/2009 12:07 AM, f-myth-users [at] media wrote:
>
> I would argue that Myth should take the max of the two values and use
> > that in computing the endtime of the recording. (It should -not- just
> > use runTime! If runTime is too short, the recording will certainly be
> > truncated---I'd certainly rather that Myth took the
> maximally-conservative
> > approach and possibly record too much than the reverse.)
> >
>
> So, you're saying that it should ignore the starttime of the following
> program--so that the guy who wants to watch that show writes an e-mail
> to the list saying that the program was clearly listed with the proper
> starttime in the raw data, but for some reason, Myth changed the
> starttime to the incorrect starttime, so he lost the beginning of his show?
>

If program A starts at 10pm and the following program B starts at 11pm but
program A's runtime is supposedly 65 mins then something is clearly wrong
with the schedule: either the runtime of A or the start time of B. But
which? If we leave program B's start time at 11pm but change program A's end
time to 11:05pm we'd be able to succesfully record either program (or both
with two tuners) regardless of which piece of data was wrong.


> The problem is that the entire schedule--not just the schedule for
> /this/ program--has to line up with endtimes matching starttimes and no
> gaps and ...
>

Does the scheduler require that?

Basically, the right solution--in the face of garbage listings--is
> manual padding. Lesson learned... Hindsight is 20/20...
>

So rather than do the best we can with the data provided we should ignore
one piece of data entirely and have a blanket rule that guesses the worst
case scenario?

Regards,
Steve


mikep at randomtraveller

Apr 12, 2009, 3:58 AM

Post #4 of 14 (1537 views)
Permalink
Re: Inconsistent treatment of starttime/endtime vs runtime [In reply to]

Michael T. Dean wrote:
> On 04/12/2009 12:07 AM, f-myth-users [at] media wrote:
>
>> I would argue that Myth should take the max of the two values and use
>> that in computing the endtime of the recording. (It should -not- just
>> use runTime! If runTime is too short, the recording will certainly be
>> truncated---I'd certainly rather that Myth took the maximally-conservative
>> approach and possibly record too much than the reverse.)
>>
>
> So, you're saying that it should ignore the starttime of the following
> program--so that the guy who wants to watch that show writes an e-mail
> to the list saying that the program was clearly listed with the proper
> starttime in the raw data, but for some reason, Myth changed the
> starttime to the incorrect starttime, so he lost the beginning of his show?
>
> The problem is that the entire schedule--not just the schedule for
> /this/ program--has to line up with endtimes matching starttimes and no
> gaps and ...
>
Eh? Mike, I think you may have misunderstood what's going on here. I think the
OP is discussing what action myth should take when presented with inconsistent
scheduling data for any single program. He's not suggesting that SD move the
start time of a subsequent program.

If any user wants to record the subsequent program, as well as the one with the
weird timings, then the scheduler is going to record it on a second tuner, if
present, or reschedule if it can't (assuming overlap caused by padding).

If any user just wants to record the second program, as you say, the start time
is authoritative, so what difference does the timings of the previous program
make? None. As I understand it, each recording request we make to myth is
treated as a separate entity, so the timings of preceding/subsequent programs
are irrelevant.

If the scheduler determines that a program recording request is x minutes,
however long that is, then that's the timing it should use to figure out how
best to record that program. Shouldn't affect the timings of any other program
at all. If x = max(duration, runtime), sounds good to me.

--

Mike Perkins

_______________________________________________
mythtv-users mailing list
mythtv-users [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users


f-myth-users at media

Apr 18, 2009, 7:22 PM

Post #5 of 14 (1448 views)
Permalink
Inconsistent treatment of starttime/endtime vs runtime [In reply to]

> Date: Sun, 12 Apr 2009 11:58:32 +0100
> From: Mike Perkins <mikep [at] randomtraveller>

> Eh? Mike, I think you may have misunderstood what's going on here. I think the
> OP is discussing what action myth should take when presented with inconsistent
> scheduling data for any single program. He's not suggesting that SD move the
> start time of a subsequent program.

Exactly right.

> If any user wants to record the subsequent program, as well as the one with the
> weird timings, then the scheduler is going to record it on a second tuner, if
> present, or reschedule if it can't (assuming overlap caused by padding).

Yes.

> If any user just wants to record the second program, as you say, the start time
> is authoritative, so what difference does the timings of the previous program
> make? None. As I understand it, each recording request we make to myth is
> treated as a separate entity, so the timings of preceding/subsequent programs
> are irrelevant.

That's certainly my understanding as well.

> If the scheduler determines that a program recording request is x minutes,
> however long that is, then that's the timing it should use to figure out how
> best to record that program. Shouldn't affect the timings of any other program
> at all. If x = max(duration, runtime), sounds good to me.

Yes. That's precisely what I was trying to get across.
_______________________________________________
mythtv-users mailing list
mythtv-users [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users


f-myth-users at media

Apr 18, 2009, 7:22 PM

Post #6 of 14 (1454 views)
Permalink
Inconsistent treatment of starttime/endtime vs runtime [In reply to]

> Date: Sun, 12 Apr 2009 00:29:56 -0400
> From: "Michael T. Dean" <mtdean [at] thirdcontact>

> On 04/12/2009 12:07 AM, f-myth-users [at] media wrote:
> > [Should this be on -dev?]

> IMHO, no.

No offense, Mike, but I think I'd really like to hear what a -developer-
thinks of this idea. That's why I wondered whether I should be
starting off on -dev. There are several reasons why a developer's
opinion would be the most valuable, all of which I thought would be
obvious enough, but let me explain, just so we're crystal clear here.

The most important reason I'd like to hear from a developer is because
any potential solution I (or they) might come up with is much more
valuable if it is not restricted to a private ugly hack that only
I run. I am obviously not the only user to see inconsistent data.

The secondary reason I'd like to hear from a developer concerns the
multiplicity of possible scenarios available to deal with this issue.
I'd like to figure out which branch we're going down so I don't waste
my time on an unproductive one. I list them below, with the outcomes
I like best listed first.

(a) Developer agrees this is a bug and should somehow be fixed:
(1) He writes a patch.
(2) He gives me hints on how I could write a patch he can then
modify (if necessary) for application to trunk and/or 21-fixes.
(3) He at least specifies which of several possible solutions
would be most likely to get committed, so whatever solution
-I- come up with at least won't be a total waste of my time
(e.g., likely to require re-fixing when I upgrade).
(b) Developer disagrees that this is even a bug.
(1) I come up with some kluge, confident at least that, no matter
how ugly and horrible it is, at least it's the best I could
do and I'm not just wasting my time fixing soemthing that will
be fixed in a different manner later. I solve my problem, but
everyone else continues to trip over the same problem.
(2) I give up. I get screwed by the bug, and so does everyone else.

[.I'm saying "he" above because AFAIK none of our devos are female.]

The best solution I can see involves silently extending the endtime of
a program with an endtime/runtime inconsistency to be the max of both
possible endtimes. I don't know how this will interact with the rest
of the scheduler. In particular, will the scheduler become confused
if two programs appear to overlap? It seems like it shouldn't,
because then any sort of pre- or post-roll hard padding of any sort
should trip it up. But maybe it handles that in some special way
that leaves it less confused than if the programs themselves
overlapped.

I also don't know which of the two possible sets of data Mythweb would
use and thus whether it would become confused as well. Or where else
in the codebase this might cascade problems into.

Another solution might be to take any hard padding already associated
with the program and add the inconsistency to it. If the program is
already padded, it will be padded some more. If it's not, it will be
padded by the degree of inconsistency. If the user is scheduling this
as a one-off (e.g., he didn't already have a rule for it and is now
just adding one), he'll notice the padding and go "hmm" and maybe add
more---especially if we document how this could come about. There are
some problems here because I doubt that a yet-unscheduled program has
any place to record the padding we'd want to apply, so there may be no
noninvasive way of getting Myth to do this. (It also seems to require
some sort of Myth-has-already-padded-this flag so repeated runs of
mfdb don't just keep extending the padding, etc. Ugly all around.)

Another possible solution, which is safer wrt the scheduler but more
invasive everywhere else and much more of a hassle for the user, might
be to notice the discrepancy and set a bit somewhere in, say, the
"program" table that says "this data is inconsistent---warn the user
if he schedules something involving this". This solution would
necessarily involve lots of various pieces, although an interim
one might be to just set the bit and leave it up to individual users
to work up whatever disgusting kluge they'd like to use (such as
dumping out the scheduler's idea of what it's doing, comparing to
the table, and sending mail/tooting a horn/whatever if the user
schedules that item to record).

[.One way of solving this problem would just be to make a separate
"runTime" column in the various relevant tables that -only- contains
the "runTime" data extracted directly from SD data. It would then be
fairly trivial for anyone to run a tool over the database looking for
mismatches between start/endtimes and runTime, but knowing whether
that's a problem---e.g., whether that particular program is actually
going to be -recorded- and hence whether the inconsistency matters---
is much more of an issue, since that requires asking the scheduler
what it's going to do. But right now, Myth extracts runTime and then
fumbles it away again, as far as I can tell, never quite storing it
in any non-temporary table.]

An even grosser solution is to manually parse the input datafile used
by mfdb, manually parse the output of the scheduler's upcoming
actions, and manually alert the user if an inconsistent item is
found. That doesn't require touching myth's code at all, but it
does involve a lot of reinventing of the wheel.

So let's assume that I actually want this bug fixed. I'd love it if
it was fixed for everyone, but I'd certainly like to see it fixed
for me. What's the path that's most likely to lead to it getting
fixed for everyone? What's the path that's most likely to at least
not waste a lot of time?
_______________________________________________
mythtv-users mailing list
mythtv-users [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users


robert.mcnamara at gmail

Apr 18, 2009, 8:59 PM

Post #7 of 14 (1448 views)
Permalink
Re: Inconsistent treatment of starttime/endtime vs runtime [In reply to]

On Sat, Apr 18, 2009 at 7:22 PM, <f-myth-users [at] media> wrote:
> No offense, Mike, but I think I'd really like to hear what a -developer-
> thinks of this idea.  That's why I wondered whether I should be
> starting off on -dev.  There are several reasons why a developer's
> opinion would be the most valuable, all of which I thought would be
> obvious enough, but let me explain, just so we're crystal clear here.

http://svn.mythtv.org/trac/search?q=Michael+dean
http://svn.mythtv.org/trac/search?q=sphery

Mike has more code in MythTV than a fair number of the folks with
commit access. He is also helping people on this list and in IRC
every. Single. Day. And for those hanging around on freenode, it's
pretty obviously that his opinion is taken with the same amount of
credence as any dev.

You may disagree with him, but his opinion and his contributions to
myth outpace almost anyone's.

Robert
_______________________________________________
mythtv-users mailing list
mythtv-users [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users


roo.watt at gmail

Apr 18, 2009, 10:43 PM

Post #8 of 14 (1450 views)
Permalink
Re: Inconsistent treatment of starttime/endtime vs runtime [In reply to]

2009/4/19 Robert McNamara <robert.mcnamara [at] gmail>:
> On Sat, Apr 18, 2009 at 7:22 PM,  <f-myth-users [at] media> wrote:
>> No offense, Mike, but I think I'd really like to hear what a -developer-
>> thinks of this idea.

> Mike has more code in MythTV than a fair number of the folks with
> commit access.  He is also helping people on this list and in IRC
> every.  Single.  Day.  And for those hanging around on freenode, it's
> pretty obviously that his opinion is taken with the same amount of
> credence as any dev.

+1
_______________________________________________
mythtv-users mailing list
mythtv-users [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users


mikep at randomtraveller

Apr 20, 2009, 8:37 AM

Post #9 of 14 (1409 views)
Permalink
Re: Inconsistent treatment of starttime/endtime vs runtime [In reply to]

Robert McNamara wrote:
>
> Not at all. From some fairly thorough discussion of your post on
> Freenode, I (and others, devs included) have simply come to the same
> conclusion Mike did. So that information stands and I didn't see a
> need to restate it. As Mike was the only one courteous enough to
> write you a thorough, thoughtful answer and you decided to respond so
> negatively, I wouldn't anticipate getting the "developer only"
> response you're hoping for in this thread.
>
From my reading of Mike's reply, he completely misunderstood the problem, as I
pointed out. His offered solution may be correct, however, but it still leaves
the unwary myth user having to inspect two different end times for a given movie
and make adjustments accordingly.

I put +5 start and end padding on all my recordings. I can't remember *ever*
checking the start or end times of any program I've recorded. That's what I run
myth for, to figure those out.

>> Let's try to stick to the technical merits of the bug here, please.
>
> That would be a great deal easier were there merits to the purported
> "bug," technical or otherwise.
It's a bug. It might be an SD bug, not a myth bug, but it's definitely a bug.
Although, in the days when computers were rows of telephone boxes, I have heard
such things described as "different results". YMMV.

--

Mike Perkins

_______________________________________________
mythtv-users mailing list
mythtv-users [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users


mtdean at thirdcontact

Apr 20, 2009, 9:11 PM

Post #10 of 14 (1392 views)
Permalink
Re: Inconsistent treatment of starttime/endtime vs runtime [In reply to]

On 04/12/2009 12:07 AM, f-myth-users [at] media wrote:
> [Should this be on -dev?]
>

Now I've done some research. I will say, "Definitely, no!"

> I've been burned a few times by the following inconsistency. I'm
> running a very old Myth, but it appears that the relevant code is
> essentially unchanged (except for formatting changes) all the way
> up to at least 0.21. Can someone tell me what Myth is -supposed-
> to be doing here? Or maybe this is already fixed in SVN?
>
> Check out the following data from SD:
>
> <schedule program='MV000273580000' station='12852' time='2009-04-11T13:00:00Z' duration='PT03H00M'/>
>
> <program id='MV000273580000'>
> <title>Little Dorrit Part Two: Little Dorrit&apos;s Story</title>
> <description>Dickens&apos; tale of a girl (Sarah Pickering), her father (Alec Guinness) and their benefactor (Derek Jacobi) is seen through the girl&apos;s eyes.</description>
> <mpaaRating>G</mpaaRating>
> <starRating>***+</starRating>
> <runTime>PT03H03M</runTime>
> <year>1988</year>
> </program>
>
> Note carefully that the duration in the "schedule" tag is exactly 3
> hours, but the one listed in the runTime tag is 3 hours and 3 minutes.
> (The TCM website currently claims that this is actually 184 minutes,
> or 3 hours and -4- minutes, but -also- that the showing starts at
> 9am and ends at noon.)
>
> Obviously this data is inconsistent.

Wrong. Facts:

a) The <runTime> element is only included in MV* (movie) <program> elements.
b) The same <program> element is referenced in multiple <schedule>
elements--regardless of the starttime and duration of those scheduled
airings of the movie.

And--though I have not yet confirmed this by having someone with access
to the data definition for the TMS DD-format raw data--I'm almost 100%
positive that the <runTime> is the original runtime of the movie as
released. It does /not/ take into account the "This movie has been
edited to fit your screen *and to run in the time allotted*."

<title>I Still Know What You Did Last Summer</title>
<runTime>PT01H41M</runTime>
http://www.imdb.com/title/tt0130018/ states Runtime: 100min

<title>The Magnificent Seven</title>
<runTime>PT02H06M</runTime>
http://www.imdb.com/title/tt0054047/ states Runtime: 128min

<title>The Angry Red Planet</title>
<runTime>PT01H23M</runTime>
http://www.imdb.com/title/tt0052564/ states Runtime: 83min

<title>Amityville II: The Possession</title>
<runTime>PT01H44M</runTime>
http://www.imdb.com/title/tt0083550/ states Runtime: 100min

<title>Dances With Wolves</title>
<runTime>PT03H00M</runTime>
http://www.imdb.com/title/tt0099348/ states Runtime: 180min

<title>Rocky IV</title>
<runTime>PT01H31M</runTime>
http://www.imdb.com/title/tt0089927/ states Runtime: 91min

Yeah, they're not all exact, but it's enough to convince me (especially
considering that the imdb data is just contributed by users). I can
keep going, if you need more proof--and, of course, if you need me to
continue doing the research you should have done yourself before riling
up the -users and getting the mob to cry out for implementing these
changes to fix a "bug" in Myth.

Note, also, that these same <program> elements that contain the
<runTime> element list "<advisory>Nudity</advisory>" for many of the
movies shown in my listings. However, as I get /only/ OTA broadcasts in
the US, none of them actually contain any nudity. The runTime--just
like the Nudity advisory--is /meaningless/ in the context of the
schedule, as it's just information about the /original/ program, not
what's actually airing.

Now, I know you have no reason to believe anything I said. I know I'm
not a -developer-, so my opinion is meaningless to you. But--here's my
theory--the actual -developer-s have far better things to do than waste
literally hours of their time trying to quell the dissidence when
someone throws up an idea--without doing the research--and convinces a
bunch of other people that the idea has merit so they start arguing for
its implementation. They're probably actually using the free time they
devote to MythTV to -develop- code rather than doing the research that
the person who threw up the idea should have done.

Mike "Not a -developer-" Dean

...I wonder how much code I could have written (not -developed-, you
see, because I'm "not a -developer-") for MythTV had I not wasted all
those hours on this thread...
_______________________________________________
mythtv-users mailing list
mythtv-users [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users


stevehodge at gmail

Apr 20, 2009, 9:54 PM

Post #11 of 14 (1401 views)
Permalink
Re: Inconsistent treatment of starttime/endtime vs runtime [In reply to]

On Tue, Apr 21, 2009 at 4:11 PM, Michael T. Dean <mtdean [at] thirdcontact>wrote:

> a) The <runTime> element is only included in MV* (movie) <program>
> elements.
> b) The same <program> element is referenced in multiple <schedule>
> elements--regardless of the starttime and duration of those scheduled
> airings of the movie.
>
> And--though I have not yet confirmed this by having someone with access to
> the data definition for the TMS DD-format raw data--I'm almost 100% positive
> that the <runTime> is the original runtime of the movie as released. It
> does /not/ take into account the "This movie has been edited to fit your
> screen *and to run in the time allotted*."
> ...

The runTime--just like the Nudity advisory--is /meaningless/ in the context
> of the schedule, as it's just information about the /original/ program, not
> what's actually airing.
>

Yes, it's clearly not useful. Thanks for sorting that out Mike.

Regards,
Steve


knowledgejunkie at gmail

Apr 21, 2009, 6:49 AM

Post #12 of 14 (1392 views)
Permalink
Re: Inconsistent treatment of starttime/endtime vs runtime [In reply to]

On 21/04/2009, Michael T. Dean <mtdean [at] thirdcontact> wrote:

> And--though I have not yet confirmed this by having someone with access to
> the data definition for the TMS DD-format raw data--I'm almost 100% positive
> that the <runTime> is the original runtime of the movie as released. It
> does /not/ take into account the "This movie has been edited to fit your
> screen *and to run in the time allotted*."

From the TMSDataDirect XTVD Schema Definition Version 1.3.6 (dated 29/07/2005):

"xtvd/programs/program/runTime

Format PThhHmmM

Optional. Actual length of time of any programming airs. Not the same
as duration; for movies only."

Note that the language used in the description is not great. This may
have been revised in a later version of the document.

Nick

--
Nick Morrott

MythTV Official wiki:
http://mythtv.org/wiki/
MythTV users list archive:
http://www.gossamer-threads.com/lists/mythtv/users

"An investment in knowledge always pays the best interest." - Benjamin Franklin
_______________________________________________
mythtv-users mailing list
mythtv-users [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users


f-myth-users at media

Apr 21, 2009, 12:36 PM

Post #13 of 14 (1375 views)
Permalink
Inconsistent treatment of starttime/endtime vs runtime [In reply to]

> Date: Tue, 21 Apr 2009 00:11:44 -0400
> From: "Michael T. Dean" <mtdean [at] thirdcontact>

First off---thank you for spending the time here. I do appreciate it.

> a) The <runTime> element is only included in MV* (movie) <program> elements.

Yes, as I said in my original report, I was only talking about movies.

> b) The same <program> element is referenced in multiple <schedule>
> elements--regardless of the starttime and duration of those scheduled
> airings of the movie.

Yes, of course. But I am not sure how this is relevant. For any
given starttime, endtime, and runTime, Myth has all the data it needs
to compute whether the runTime exceeds the difference of the starttime
and endtime. [.You may argue that Myth might err in assuming that it's
necessarily the runTime that's wrong, but that's a different argument.
It certainly has enough information to deduce that something fishy may
be going on.]

> And--though I have not yet confirmed this by having someone with access
> to the data definition for the TMS DD-format raw data--I'm almost 100%
> positive that the <runTime> is the original runtime of the movie as
> released. It does /not/ take into account the "This movie has been
> edited to fit your screen *and to run in the time allotted*."

I am also not sure how this is relevant, for two reasons:
(a) In 100% of the cases in which I've been burned, the runTime
exceeded the (endtime - starttime) difference. [.This ignores
burns where the problem was clock skew; that's out of scope for
what I'm trying to fix.]
(b) The movie channels I've had the problems with do not edit for
content or runtime. [.Or, as you so courteously put it on IRC,
``yeah, he'll say, "Well, you might have OTA only, but I have
movie channels where they air the original movie, so it still
applies..."'' which is not too hard a prediction since my original
mail -said- I'd seen this behavior on at least TCM and Sundance,
both of which are movie channels.]

Because of (a), it seems that Myth could alert the user and/or take
corrective action of some sort. I assume your concern is that movies
airing on stations where they've been cut to ribbons will thus have
runtimes that far exceed their allotted time on the schedule, and thus
doing max(runtime, (endtime - starttime)) will needlessly pad the
recording in these cases. There's a good chance of that.

But, to take one of your examples:

> <title>I Still Know What You Did Last Summer</title>
> <runTime>PT01H41M</runTime>
> http://www.imdb.com/title/tt0130018/ states Runtime: 100min

...I can't tell whether the actual scheduled time for the showing in
your lineup was less than, equal to, or greater than 1h41m. In my
case, rarely but with nonzero probability, I see runTimes that exceed
scheduled slots -and the runTime was right-, e.g., the SD data about
when the showing was to end was incorrect. Often, the channel's
website repeats the mistake, as I mentioned in my first mail,
typically claiming a 130m movie in a 120m slot, etc.

It really doesn't matter what IMDB thinks about it, of course,
since Myth isn't getting that data when it's getting program
information.

> Yeah, they're not all exact, but it's enough to convince me (especially
> considering that the imdb data is just contributed by users). I can
> keep going, if you need more proof--and, of course, if you need me to
> continue doing the research you should have done yourself

What research, exactly, do you think I should have done? You've
compared runTime program elements with IMDB runtimes. That wasn't
what I was talking about.

The research I -thought- I was doing was asking, "If I were to write
a patch to fix this, which direction is most likely to be committed?"
That pretty much requires asking -somebody-, because it's a judgment call.

> before riling
> up the -users and getting the mob to cry out for implementing these
> changes to fix a "bug" in Myth.

"Riling"? "Mob"? To my understanding, there have been precisely
three other people involved in this discussion besides you and me:
(a) Robert, who has stalwartly defended you against a slight I had no
intention of making, and
(b) two other "ordinary users" (I presume) who have -both- stated (one
repeatedly) that they think you misunderstand what I was trying to
say.
[Oh wait, latebreaking news: Nick's definition of runTime. So four.]

If that's a riled-up mob, I'd hate to know what you think of the
incessant discussions about top-vs-bottom posting.

> Note, also, that these same <program> elements that contain the
> <runTime> element list "<advisory>Nudity</advisory>" for many of the
> movies shown in my listings. However, as I get /only/ OTA broadcasts in
> the US, none of them actually contain any nudity. The runTime--just
> like the Nudity advisory--is /meaningless/ in the context of the
> schedule, as it's just information about the /original/ program, not
> what's actually airing.

Nonetheless, in 100% of the cases in which I've been burned by
incorrect endtime data from SD, the runTime indicated that the
showing was in fact longer than the scheduled slot. That's all
I was saying. Note in paticular that I am making no other assertions
about what runTime means or is supposed to mean, where the data comes
from, or whether SD's data is likely to be better in the future. (I'd
guess not, since it's presumably the individual channels that are
screwing the pooch before they even hand the data off to TMS, and
I've been seeing this for years.)

> Now, I know you have no reason to believe anything I said. I know I'm
> not a -developer-, so my opinion is meaningless to you.

I'm sorry if I made you defensive, but you have repeatedly gone far
out of your way to reassure everyone that you are, in fact, not a
developer, and---in particular---that you cannot speak for them.
Since I was trying to do due diligence on writing a patch, I needed
to know which path to take to maximize the chances that it would be
committed and that I wouldn't be wasting my time going down a blind
alley. When you responded in a way that indicated (to me, and at
least a couple other people, apparently) that you'd misunderstood me,
I asked for a second opinion. That's all.

And I said "developer" because to me that means "people with commit
access." If you take it as a more-expansive term, and I should have
explictly used the term "PWCA" in every instance as well, then I
apologize for misleading you. [.But then, why are you so adamant all
the time that you are -not- a dev and don't speak for them? I'm only
repeating to you what you say to everyone else about yourself!]

> But--here's my
> theory--the actual -developer-s have far better things to do than waste
> literally hours of their time trying to quell the dissidence when

There's that word again. I do not think it means what you think it means. :)

> someone throws up an idea--without doing the research

Again, what research, exactly? I pointed out information that Myth
had that it wasn't giving to me that would have saved my bacon if it
had. I -did- the research, over the past couple of years, to show a
100% correlation between that data and getting screwed.

At this point, I'm unsure exactly what the nature of your disagreement
with me is. Do you think:
(a) I'm incorrect or lying about the correlation?
(b) The correlation is, in fact, not actually a bug at all?
(c) It's a bug, but it's insoluable without
(1) hairing up Myth's code unacceptably?
(2) hairing up Myth's -support- unacceptably?

I'm fairly sure that you believe c2, at least, if Myth was to
automatically extend recordings to max(runtime, (endtime - starttime)),
since you've already said that. I'm not sure about the rest.

[.I think your suggestion for "the only patch that should be considered"
from your previous message at least indicates that we're in branch c here,
which is progress, I suppose.]

I'm certainly hoping that it's -not-:
(d) It's just personal, and you'll go out of your way to gainsay
anything I have to say, expending whatever resources it takes.
Judging by your comments about me on IRC, a reasonable person
might be led to this conclusion.
I'd like you to know that -I- am not in branch d and do not anticipate
arriving there.

> --and convinces a
> bunch of other people that the idea has merit so they start arguing for
> its implementation.

Once again, the "argument" has basically been three pieces of mail
from two other users, both of whom have said, "Sounds reasonable to me."
Considering the overwhelming avalanche of off-topic messages and even
entire threads on this list, this doesn't seem excessive to me.
Apparently it does to you, though. And apparently you also believe
that it's you against the unwashed masses, keeping the devs safe from
things you think are evil. Okay, that's fine, but please don't blame
me if that's how you want to spend your time.

And what's my alternative? Remember, I'm following the process here:
When considering a proposed patch, start in -users, maybe move to
-dev, maybe move to trac. Would you have preferred that I simply
started in trac and -definitely- wasted dev time closing the report
because I'd solved the wrong problem in the wrong way?

> They're probably actually using the free time they
> devote to MythTV to -develop- code rather than doing the research that
> the person who threw up the idea should have done.

Well, you could have done the same. I thank you for spending the
time, but I do not thank you for the tone and attitude. You had ways
to give your opinion without being so unpleasant about it, and you
still do. [.For example: "Doing autoextension is technically possible,
but fatally hard to explain to users." That's a perfectly reasonable
stance. Or: "Doing autoextension will fatally confuse the scheduler,
and here's why it's not feasible to try to fix the scheduler." But
launching into a tirade about mucking about with the starttimes of
later programs, and generally acting belligerant towards me, is not
the way -I- would have preferred you got into it. That's all.]

> ...I wonder how much code I could have written (not -developed-, you
> see, because I'm "not a -developer-") for MythTV had I not wasted all
> those hours on this thread...

By the same token, given how much time this has taken already, I'd
have already built a patch for myself if I hadn't asked first, but I
wanted to see if I was being totally stupid and there was a better
solution---and I wanted to try to give back to the community by fixing
this for everyone, not just me. If I'd known that this was the
reaction I was going to get, though, I'd have simply said, "Screw
giving back, screw proper process, I'll just fix it for myself and
maybe someday just open a trac ticket without any discussion and see
what happens. Or maybe I'll decide it's not worth even trying to give
anyone a patch because I'm tired of getting yelled at on the most
unpleasant technical list I've ever been on."

> Mike "Not a -developer-" Dean

When I said "no offense", I actually meant it.

When you say you aren't a developer and don't speak for them,
do -you- mean it?
_______________________________________________
mythtv-users mailing list
mythtv-users [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users


mythtv-users at kormoc

Apr 21, 2009, 6:00 PM

Post #14 of 14 (1360 views)
Permalink
Re: Inconsistent treatment of starttime/endtime vs runtime [In reply to]

f-myth-users[at]media.mit.edu wrote:
> I wish I could think of a clean way to indicate that the claimed
> runtime doesn't match the scheduled slot

So, I feel I should step in and add my weight to the thread, as a
developer and someone who is familiar with TMS's data.

This really is not a solution, as that runtime field is un-related to
the actual network info. It's purely a generic time TMS gives movies
(as Nick has already pointed out). It also fails to take into account
the different 'cuts' of the movie (TNT might cut it differently then
FX, or HBO), and doesn't take into account any breaks (Commercial or
otherwise).

You have the problem of TV 'cuts' of Dos Boot having a duration of 2
hours but a listed time of 8 hours. It's a extreme case, but it
demonstrates why this isn't correct.

See for more info:
http://www.gossamer-threads.com/lists/mythtv/users/379839#379839
http://www.gossamer-threads.com/lists/mythtv/users/379873#379873

Does this make sense on why this isn't a valid solution for the
majority of people?

Thanks,
~Rob
_______________________________________________
mythtv-users mailing list
mythtv-users [at] mythtv
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-users

MythTV users RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact lists@gossamer-threads.com
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.