Opened 13 years ago
Closed 11 years ago
Last modified 11 years ago
#10878 closed Patch - Bug Fix (fixed)
[PATCH] Fix PiP playback with Xv
| Reported by: | Owned by: | danielk | |
|---|---|---|---|
| Priority: | minor | Milestone: | 0.27.4 |
| Component: | MythTV - Video Playback | Version: | Master Head |
| Severity: | medium | Keywords: | PiP 'picture in picture' flicker |
| Cc: | Ticket locked: | no |
Description
When using Xv-blit video output and trying to view two or more programs using PiP then the inset video often flickers or contains elements of 2 unrelated frames.
When displaying 'pictute in picture' (PiP), VideoOutput::ShowPIP composites the PiP windows onto the main video frame. To do so, it uses the player's GetCurrentFrame method to obtain the most recently displayed PiP frame. However, MythPlayer::DisplayNormalFrames immediately releases the last frame displayed back to the decoding queue. Consequently when GetCurrentFrame calls GetLastShownFrame to obtain that frame it may have been overwritten by the decoder thread.
This patch defers calling DoneDisplayingFrame if the player is a PiP player so that future calls to GetLastShownFrame return an intact frame.
This patch is for git master but is equally applicable to fixes 0.25 and 0.24
Attachments (1)
Change History (6)
by , 13 years ago
| Attachment: | 0001-mythplayer-Don-t-call-DoneDisplayingFrame-for-PiP-un.patch added |
|---|
comment:1 by , 13 years ago
| Owner: | set to |
|---|---|
| Status: | new → assigned |
comment:2 by , 12 years ago
comment:3 by , 11 years ago
| Resolution: | → Fixed |
|---|---|
| Status: | assigned → closed |
issue isn't just with Xv, but also opengl and any software rendered output.
Thank you for the patch
comment:4 by , 11 years ago
| Resolution: | Fixed → fixed |
|---|
comment:5 by , 11 years ago
| Milestone: | unknown → 0.27.4 |
|---|

Are there any plans to integrate this into master? I'm seeing similar flickering in PiP and it sounds like it's related to this bug. It looks like the patch code fix would still work the same, at least in 0.27.