[mythtv] Bug #7067, patch updated, please apply...
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.
>> 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.
> And one more problem I just noticed. Shouldn't the following be changed
> int frameDelay = m_double_framerate ? frame_interval / 2 : frame_interval;
> 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.
More information about the mythtv-dev