[mythtv] [PATCH] XVideo XvMC VLD broken

Terry Barnaby terry1 at beam.ltd.uk
Tue May 3 08:34:56 UTC 2005


Terry Barnaby wrote:
> Terry Barnaby wrote:
> 
>> Daniel Kristjansson wrote:
>>
>>> On Mon, 2005-05-02 at 20:31 +0100, Terry Barnaby wrote:
>>>
>>>> Daniel Kristjansson wrote:
>>>> Thanks for adding the patch.
>>>> I agree there should not be an exit there, but there does not seem
>>>> to be a way of returning an error from this. I must admit, with my
>>>> searching through the libavformat and libavcodec code fro the 
>>>> problem there is some room for improvement !
>>>
>>>
>>>
>>> Yep, though it is best to send fixes directly to ffmpeg, to keep
>>> syncing simpler. We've synced bugs back into the code from ffmpeg
>>> before.
>>>
>>>
>>>> Now I have got the channel changing working better, (although not
>>>> ideal as there should be no need to close down and re-create Codecs,
>>>> (this could be done in mpegts) ...), I would like to get the
>>>> new merged Xv/XvMC code working with XvMC VLD.
>>>> Is it worth me having a look at this now, or shall I hang fire untill
>>>> you have completed the change to the Xv/XvMC init ?
>>>
>>>
>>>
>>> Now is a good time, I'm holding back on Xv/XvMC changes this week
>>> to allow Andy Poling a chance to get his chromakey OSD patch ready
>>> for CVS.
>>>
>>> -- Daniel
>>>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> mythtv-dev mailing list
>>> mythtv-dev at mythtv.org
>>> http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
>>
>>
>>
>> Ok, any pointer to get going ?
>> I have just re-compiled from CVS.
>> With XvMC VLD (bob deinterlace enabled or disabled) I get very
>> garbaled sound, Screen display is stuterry with frequent MPEG
>> blocking atifacts. CPU usage is about 14%, which is low
>> (normally about 18%).
>> Mythfront end gives the following error messages:
>>
>> 2005-05-02 21:13:24.504 AddInheritence(A       ) Error, future=frame
>> 2005-05-02 21:13:24.747 AddInheritence( B      ) Error, future=frame
>> 2005-05-02 21:13:24.984 AddInheritence(  C     ) Error, future=frame
>> 2005-05-02 21:13:25.463 AddInheritence(   D    ) Error, future=frame
>> 2005-05-02 21:13:25.704 AddInheritence(    E   ) Error, future=frame
>> 2005-05-02 21:13:25.944 AddInheritence(     F  ) Error, future=frame
>> 2005-05-02 21:13:26.429 AddInheritence(A       ) Error, future=frame
>> 2005-05-02 21:13:26.661 AddInheritence( B      ) Error, future=frame
>> 2005-05-02 21:13:26.904 AddInheritence(  C     ) Error, future=frame
>> 2005-05-02 21:13:27.384 AddInheritence(   D    ) Error, future=frame
>> 2005-05-02 21:13:27.623 AddInheritence(    E   ) Error, future=frame
>> 2005-05-02 21:13:27.864 AddInheritence(     F  ) Error, future=frame
>>
>> When set to use Xv display and sound is fine although CPU usage
>> is greater than MythTv CVS 2005-04-22 80% versis 70%.
>>
>> Cheers
>>
>>
>> Terry
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> mythtv-dev mailing list
>> mythtv-dev at mythtv.org
>> http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
> 
> Hi Daniel,
> 
> Another point of information on this:
> I can get rid of the "AddInheritence" error messages by removing
> line 77 in xvmcvldvideo.c
> "render->p_future_surface = render->p_surface;"
> This line may be incorrect ...
> 
> This does not affect things much. With some debug turned on I get
> the following info, it appears that the video is going at half
> frame rate ???
> 
> 2005-05-03 07:23:09.039 A/V diverged by 6.41477 frames, extending frame 
> to keep
> audio in sync
> 2005-05-03 07:23:09.119 A/V diverged by 6.44233 frames, extending frame 
> to keep
> audio in sync
> 2005-05-03 07:23:09.199 A/V diverged by 6.57548 frames, extending frame 
> to keep
> audio in sync
> 2005-05-03 07:23:09.208 positionMap[ 42 ] == 10243932.
> 2005-05-03 07:23:09.279 A/V diverged by 6.6566 frames, extending frame 
> to keep a
> udio in sync
> 2005-05-03 07:23:09.359 A/V diverged by 6.5362 frames, extending frame 
> to keep a
> udio in sync
> 'video_output' mean = '79991.91', std. dev. = '565.37', fps = '12.50'
> 
> Terry
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> mythtv-dev mailing list
> mythtv-dev at mythtv.org
> http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev

It looks like the problem is with AVSync (again !).

If I set "disableaudio" in NupplePlayer.cpp video display is fine.
If I set "avsync_avg = frame_interval" at the top of
NuppelVideoPlayer::WarpFactor() all is Ok (bar audio delayed/infront).

What is supposed to happen in NuppelVideoPlayer::AVSync() when
"diverge > MAXDIVERGE" ?
Could it be that with XvMC VLD video frames are not actually "extended" ?

Terry


More information about the mythtv-dev mailing list