Opened 18 years ago
Closed 18 years ago
Last modified 18 years ago
#1461 closed defect (fixed)
XvMC OSD does not fade away cleanly
Reported by: | Owned by: | danielk | |
---|---|---|---|
Priority: | minor | Milestone: | 0.20 |
Component: | mythtv | Version: | head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
When I'm using XvMC, OSD doesn't fade away cleanly.
To replicate: 1) Start recording, fast foward a few seconds, set playback to normal; 2) Start live TV, press "i".
In both situations, OSD will pop up and fade away. However, remants of the OSD are still visible faintly, like a watermark.
I'm using SVN revision 9265. Video card is a 6600GT, Nvidia drivers 8178. (not using Chromakey OSD).
Attached a frontend log generated with "mythfrontend -v osd -l osd.log". Not sure if it's any use at all..
Attachments (1)
Change History (12)
comment:1 Changed 18 years ago by
I have see the same behaviour. Using the OpenChrome? drivers on X7.0 modular. But that seems irrelevant.
I am also NOT using the ChromaKey? OSD, but I am using XvMC_VLD (via hardware decoding).
How can I help?
comment:2 Changed 18 years ago by
Further investigation showed me that it occurs when I skip forward or backwards, or I pause the recording. When I adjust the audio volume level, the OSD fades away correctly. I hopes this helps debugging.
comment:3 Changed 18 years ago by
Slightly different to you, but I find that pressing "i" will actually clean a non-faded OSD for me. e.g. if I jump ahead in a stream, I get the "ghost", but pressing "i" and bringing up info and letting it fade away "cleans" the display for me. I am using the "VIA XvMC" decoder and the Ithamus OSD theme.
comment:4 Changed 18 years ago by
Since my reported ticket #1516 was probably correctly marked as a duplicate of this I can add that I also have non-clearing OSD on my via system. For me however, it doesn't depend on the 'via XvMC' output. The problem is also there when I use normal 'XvMC' or 'standard' mpeg2 decoding (both not accelerated ofcourse). Luckily pressing the new 'clear OSD' key (backspace) allways clears every OSD completely. The channel information bar (o) cleanly disappears after 30 seconds (but it should after 3). btw: I have set fadeaway to 0 in osd.xml.
comment:5 Changed 18 years ago by
Just looked into the problem and found the solution (for me at least). I allways have fadeout set to 0 (osd.xml) because my system is too slow to have long transparent fadeout (or at least was with old code). The behaviour for fadeout=0 is now broken in HEAD:
Looking into the OSD code I finally reached osdtypes.cpp with the method: void OSDSet::Draw(OSDSurface *surface, bool actuallydraw)
In this method the fadeout/timeouts are handled around line 364:
if (m_fadetime > 0) {
[cut]
if (m_fadetime <= 0) {
m_fadetime = 0; if (currentOSDFunctionalType) {
emit OSDClosed(currentOSDFunctionalType); currentOSDFunctionalType = 0;
}
}
}
if (m_timeleft <= 0 && m_fadetime <= 0)
m_displaying = false;
As you can see, in the case of (m_timeleft <= 0 && m_fadetime <= 0) OSDClosed is never emitted! I have NO idea if setting m_displaying = false is supposed to clear the OSD (I guess so) but it obviously doesn't.
Changing fadeout to 1 in my osd.xml fixed the problem for me.
Grtz. Martin
comment:6 Changed 18 years ago by
I also see this behavior. I noticed it when I turned on XVMC and started watching TV at > 1.0x speed. When it's fading away, it almost turns into a watermark. I only does it when the OSD is brought up automatically (after commercial skip). If I bring up the OSD and clear it out by hitting "i" enough times, it goes completely away.
comment:7 Changed 18 years ago by
Milestone: | → 0.20 |
---|---|
Owner: | changed from Isaac Richards to danielk |
Version: | → head |
comment:8 Changed 18 years ago by
(In [9890]) Refs #1461. This fixes the XvMC IA44 OSD fade problem.
There were a couple patches floating around but both had problems in my testing. The code for doing the fade had a few undocumented sentinels and required things to happen in a very particular order for things to work. This documents the code in OSDSet::Draw() and simplifies the fade code (using just one well documented sentinel value).
Please test the code in the mythtv-vid branch if you were having this problem.
comment:9 Changed 18 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
I can't reproduce this problem anymore...
comment:10 Changed 18 years ago by
I am using the myhtv-vid branch since the patches for this came in and the problem dissappeared. Will this patches be included in the trunk soon? I do not seem to have any problems with these patches.
mythfrontend log