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

Taylor Ralph taylor.ralph at gmail.com
Tue Jul 6 04:09:51 UTC 2010


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


More information about the mythtv-dev mailing list