[mythtv] OSD Tearing in Trunk w VDPAU

R. G. Newbury newbury at mandamus.org
Tue May 19 00:43:18 UTC 2009


Mark Kendall wrote:
> 2009/5/9 R. G. Newbury <newbury at mandamus.org>:
>> I mentioned this a couple of weeks ago, and got no response.
>> Last night I updated from trunk 20070 to 20507
>>
>> On 20070, the OSD would tear across the screen, but bookmarking my place,
>> exiting the show and re-entering playback then gave a clean OSD.
>>
>> With 20507, the OSD is always torn. Makes no difference which OSD theme I
>> use.
>>
>> What is weird of course, is that it is just the OSD, the picture underneath
>> is fine.
> 
> Geoff
> 
> Can you please open a ticket on trac and attach the output from
> 'mythfrontend -v playback'.
> 
> btw - when you say 'torn', do you mean the osd is 'smeared' across the
> screen at about 45 degrees, with perhaps some colour problems as well?
> or is it something else? (a screenshot would be invaluable if it is
> something else)
 > Mark

Mark, As noted, the OSD started showing tearing with SVN 20070 (I jumped 
up from 195xx or so). Bur it could be re-set, by bookmarking, exiting 
and re-starting playback.
SVN 20507 exhibited tearing which would not go away. I tried changing 
the OSD themes and using OpenGL instead of Qt. No joy.
As part testing exactly what was happening, I updated to SVN 20580.

And the problem has disappeared!

This is a chunk of output from the log.

*************************
2009-05-15 22:44:25.117 TV: SetActive(0,w/o OSD) 0 -> 0 -- begin
2009-05-15 22:44:25.117 TV: SetActive(0,w/o OSD) 0 -> 0 -- end
2009-05-15 22:44:25.157 VDPAU Error: Error at util-vdpau.cpp:1349 (#20, 
The size of a supplied
object does not match the object it is being used with.)
2009-05-15 22:44:25.158 TV: HandleStateChange(0) -- begin
2009-05-15 22:44:25.158 TV: Attempting to change from Watching 
WatchingPreRecorded to None
2009-05-15 22:44:25.158 TV: StopStuff() for player ctx 0 -- begin
2009-05-15 22:44:25.158 TV: SetActive(0,w/o OSD) 0 -> 0 -- begin
2009-05-15 22:44:25.158 TV: SetActive(0,w/o OSD) 0 -> 0 -- end
2009-05-15 22:44:25.158 TV: StopStuff(): stopping ring buffer
2009-05-15 22:44:25.167 NVP(4): Exited decoder loop.
2009-05-15 22:44:25.174 VDPAU Error: Error at util-vdpau.cpp:1349 (#20, 
The size of a supplied
object does not match the object it is being used with.)
2009-05-15 22:44:25.190 ~OpenGLVideoSync() -- closing opengl vsync
2009-05-15 22:44:25.190 GLCtx: Deleting OpenGL Resources
2009-05-15 22:44:25.191 GLCtx: Unmapping gl window
2009-05-15 22:44:25.191 GLCtx: Destroying gl window
2009-05-15 22:44:25.191 GLCtx: Destroying glx context
2009-05-15 22:44:25.194 GLCtx: Closing display
2009-05-15 22:44:25.194 VideoOutputXv: dtor
2009-05-15 22:44:25.194 VideoOutputXv: DiscardFrames(1)
2009-05-15 22:44:25.194 VideoBuffers::DiscardFrames(1): ADDDUUUUUUUUUuUUL
2009-05-15 22:44:25.194 VideoBuffers::DiscardFrames(): ADDDAAAAAAAAAAAAA 
-- done()
2009-05-15 22:44:25.194 VideoBuffers::DiscardFrames(1): 
ADDDAAAAAAAAAAAAA -- done
2009-05-15 22:44:25.194 VideoOutputXv: DiscardFrames() 3: 
ADDDAAAAAAAAAAAAA -- done()
2009-05-15 22:44:25.198 TV: StopStuff(): stopping player
2009-05-15 22:44:25.198 TV: StopStuff() -- end
2009-05-15 22:44:25.198 TV: Changing from Watching WatchingPreRecorded 
to None

*************************

Line 1349 of util-vdpau.cpp is the CHECK_ST macro, last line of this chunk;

     vdp_st = vdp_presentation_queue_display(
         vdp_flip_queue,
         outputSurface,
         outRect.x1,
         outRect.y1,
         now
     );
     CHECK_ST

Glad to be able to say that this got fixed! I've been too busy to take a 
look at the commits to see what might have been the actual source of the 
  problem. But whatever got reverted fixed it!

Geoff


-- 
         Please let me know if anything I say offends you.
          I may wish to offend you again in the future.



More information about the mythtv-dev mailing list