[mythtv] Bug #7067, patch updated, please apply...

Taylor Ralph taylor.ralph at gmail.com
Tue Jul 6 04:27:36 UTC 2010


On Tue, Jul 6, 2010 at 12:09 AM, Taylor Ralph <taylor.ralph at gmail.com> wrote:
> On Mon, Jul 5, 2010 at 11:28 PM, Davin McCall <davmac at davmac.org> wrote:
>>
>> On 06/07/2010, at 1:05 PM, Taylor Ralph wrote:
>>
>>> On Mon, Jul 5, 2010 at 10:47 PM, Taylor Ralph <taylor.ralph at gmail.com> wrote:
>>>> On Mon, Jul 5, 2010 at 1:03 AM, Davin McCall <davmac at davmac.org> wrote:
>>>>> On 05/07/2010, at 8:24 AM, Taylor Ralph wrote:
>>>>>
>>>>>>
>>>>>> It should go in very soon. Sorry for the delay and thanks for the patch.
>>>>>>
>>>>>
>>>>>
>>>>> Thanks - that's good to hear.
>>>>>
>>>>> Davin
>>>>>
>>>>
>>>> I've updated the patch to resolve a couple small issues.
>>>>
>>>> 1. added back prevrp assignment since it's needed for properly
>>>> handling repeat_pict frames
>>>> 2. made avsync_adjustment additive (instead of overriding) for the 1.5
>>>> frame divergence code to retain the same functionality as before
>>>>
>>>> I do have one question about the patch that isn't obvious to me. Why
>>>> did you move the location of the following code?
>>>>
>>>>            avsync_delay = (buffer->timecode - currentaudiotime) * 1000;//usec
>>>>            // prevents major jitter when pts resets during dvd title
>>>>            if (avsync_delay > 2000000 && player_ctx->buffer->isDVD())
>>>>                avsync_delay = 90000;
>>>>            avsync_avg = (avsync_delay + (avsync_avg * 3)) / 4;
>>>>
>>>> With these changes to your patch a sample video which I consider very
>>>> challenging works flawlessly now.
>>>>
>>>> Regards.
>>>>
>>>> --
>>>> Taylor
>>>>
>>>
>>> And one more problem I just noticed. Shouldn't the following be changed
>>>
>>> from:
>>>
>>>    int frameDelay = m_double_framerate ? frame_interval / 2 : frame_interval;
>>>
>>> to:
>>>
>>>    int frameDelay = (m_can_double && m_double_framerate) ?
>>> frame_interval / 2 : frame_interval;
>>>
>>> ?
>>>
>>
>>
>> Unless I'm mistaken, m_double_framerate won't be true unless m_can_double is also true. In various places where m_double_framerate is set true, it is immediately followed by calculation of m_can_double and FallbackDeint() is called in case m_can_double is false; FallbackDeint() sets m_double_framerate to false. Thus m_double_framerate can only be true if m_can_double also is.
>>
>> Davin
>>
>
> Ah, yes I see now.
>
> I gotta another patch on the way which also corrects the isDVD() call
> you snook back in which should be limit_delay (thanks Mark). :)
>
> So should we switch back the code you moved which you no longer think
> is necessary? I'd like to limit changes that aren't necessary.
>
> Regards.
>
> --
> Taylor
>

Ok, I've posted a rev3 patch with everything including moving the
previously discussed code segment back to it's original spot (can't
see why it would make a difference anyways).

Since I've never reproduced the original problem could you test the
rev3 patch to make sure it resolved the issue?

Thanks.

--
Taylor


More information about the mythtv-dev mailing list