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

Davin McCall davmac at davmac.org
Tue Jul 6 03:28:05 UTC 2010


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



More information about the mythtv-dev mailing list