Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#7848 closed defect (worksforme)

Last displayed picture remains displayed after playback.

Reported by: dvbmail@… Owned by: markk
Priority: major Milestone: 0.23
Component: MythTV - Video Playback Version: 0.22-fixes
Severity: medium Keywords: overlay stopvideo
Cc: Ticket locked: no

Description

After stopping video playback the last picture displayed remains visible on the screen mixed with the UI. This happens on a OpenSuSE 11.1 box using overlay video for playback. The same hardware/drivers worked fine with 0.21-fixes. As far as I can see the StopVideo? function at driver level (switches the overlay off) is never called by X. X would call this function automaticly when the window displaying the video is closed. When I exit MythFrontend the function is called after a small delay by X and the display is normal again.

Attachments (1)

XvOverlayFix.patch (493 bytes) - added by dvbmail@… 10 years ago.
Patch to fix overlay video

Download all attachments as: .zip

Change History (6)

comment:1 Changed 10 years ago by stuartm

Milestone: unknown0.23
Owner: changed from Janne Grunau to markk
Priority: criticalmajor
Severity: highmedium
Status: newassigned

comment:2 Changed 10 years ago by markk

Status: assignedaccepted

comment:3 Changed 10 years ago by markk

Resolution: worksforme
Status: acceptedclosed

As of 0.22, MythTV does not create a new window to display video (with the exception of OpenGl?) but rather re-uses the existing window. As this window is not deleted until Mythfrontend exits, it is hard to see how we can trigger the automatic call to 'StopVideo?' without some sizeable refactoring of the UI/video code.

However, given that this is the only known report of the issue, it seems likely that it is a specific combination of hardware, drivers, Xorg and possibly Qt that are the underlying problem.

I'll happily re-open this ticket if I can get some reliable guidance on how to reproduce the issue.

Changed 10 years ago by dvbmail@…

Attachment: XvOverlayFix.patch added

Patch to fix overlay video

comment:4 Changed 10 years ago by dvbmail@…

Ok, this remark really helped to find a workaround for this problem. Overlay video is not the most used method for displaying video but it would still be nice to have a good solution for it. Depending on the overlay implementation problems can show up in different ways (e.g. chroma keying). Also nice to deallocate unused video memory when finished with displaying video.

The issue can be resolved by specificaly telling X the video output has stopped. I added a call to XvStopVideo? in the destructor of videoout_xv.cpp and ignore the result since most drivers will not have implemented this function. Adding this call will give the right implementation for X when stopping video without closing the window (used or not by the driver). I am not 100% sure if I put it at the right place but it works for me. Patch attached.

The problem can only be reproduced on video cards supporting overlay video, not sure how many drivers use this and often it needs specific enabling. Older radeon cards use this method and I think some intel onboard gfx have this option.

comment:5 Changed 10 years ago by markk

(In [23423]) Stop the hardware overlay when exiting VideoOutputXv?, based on patch from dvbmail(?). Refs #7848.

Note: See TracTickets for help on using tickets.