Opened 18 years ago
Closed 18 years ago
Last modified 18 years ago
#539 closed defect (fixed)
XVMC Chromakey OSD Crash
Reported by: | Owned by: | danielk | |
---|---|---|---|
Priority: | minor | Milestone: | 0.20 |
Component: | mythtv | Version: | head |
Severity: | medium | Keywords: | xvmc Chromakey OSD |
Cc: | Ticket locked: | no |
Description
The decoding works great, really smooth. As soon as I press any button that would bring up the osd, mythfrontend crashes with the error below. (I can provide a bt if needed) This is on a celeron 450 with a GeForce4 MX 440. Nvidia driver - 7676
2005-10-28 01:31:15.721 TV: Attempting to change from None to WatchingPreRecorded? 2005-10-28 01:31:15.839 Disable DPMS 0: start_time: 0.036 duration: 43.240 1: start_time: 0.030 duration: 43.252 stream: start_time: 0.334 duration: 480.576 bitrate=1945 kb/s 2005-10-28 01:31:16.830 AFD: Opened codec 0x8167170, id(MPEG2VIDEO_XVMC) type(Video) 2005-10-28 01:31:16.908 AFD: Opened codec 0x82a95e0, id(MP2) type(Audio) 2005-10-28 01:31:16.949 Opening audio device '/dev/dsp'. 2005-10-28 01:31:16.950 Opening OSS audio device '/dev/dsp'. 2005-10-28 01:31:19.358 TV: Changing from None to WatchingPreRecorded? 2005-10-28 01:31:19.366 Using realtime priority. XvMC: picture structure FRAME 2005-10-28 01:31:20.070 Video timing method: SGI OpenGL 2005-10-28 01:31:20.234 prebuffering pause 2005-10-28 01:31:20.400 prebuffering pause [mpegvideo_xvmc @ 0xb785f4c4]ac-tex damaged at 20 17 [mpegvideo_xvmc @ 0xb785f4c4]Warning MVs not available [mpegvideo_xvmc @ 0xb785f4c4]mb incr damaged [mpegvideo_xvmc @ 0xb785f4c4]Warning MVs not available [mpegvideo_xvmc @ 0xb785f4c4]00 motion_type at 15 18 [mpegvideo_xvmc @ 0xb785f4c4]skipped MB in I frame at 15 29 [mpegvideo_xvmc @ 0xb785f4c4]end mismatch left=35 [mpegvideo_xvmc @ 0xb785f4c4]ac-tex damaged at 21 25 [mpegvideo_xvmc @ 0xb785f4c4]slice mismatch [mpegvideo_xvmc @ 0xb785f4c4]Warning MVs not available [mpegvideo_xvmc @ 0xb785f4c4]ac-tex damaged at 6 16 * glibc detected * double free or corruption (!prev): 0x0887a800 *
waiting for X server to shut down
Attachments (6)
Change History (16)
comment:1 Changed 18 years ago by
Milestone: | 0.19 → 0.20 |
---|
comment:2 Changed 18 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:3 Changed 18 years ago by
Resolution: | fixed |
---|---|
Status: | closed → reopened |
I am still getting this crash using the most recent svn (7671). I have tried to produce a backtrace, but I don't think it will be very useful because for some reason it will only show one thread. Sometimes I get a segmentation fault, others I get the double free message. I will also attach the output of configure if that helps at all. I know this is still an unsupported feature so I greatly appreciate all of the work that goes into this issue.
Changed 18 years ago by
Attachment: | xvmcCKosd.2.bt added |
---|
better backtrace with manually switched threads
comment:4 Changed 18 years ago by
I figured out how to do a bt via manually switching threads so here it is
comment:5 Changed 18 years ago by
Can you repeat this under Valgrind?
As with many memory overwriting problems the backtrace is not too helpful.
Also, what are your overscan/underscan/letterboxing options?
comment:6 Changed 18 years ago by
Valgrind crashes saying the impossible happened before the frontend ever finishes loading (log attached). I even recompiled with --enable-valgrind. Is there something I'm doing wrong in valgrind? I've never used it before.
comment:7 Changed 18 years ago by
Finally got valgrind to let me playback and produce the crash while running valgrind. Log attached
comment:8 Changed 18 years ago by
That is a bug in valgrind, yes. It is bug #112152 in the valgrind bug tracker and is fixed in the current valgrind SVN code.
comment:9 Changed 18 years ago by
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
gkruse, this is probably not what you want to hear, but the ChromaKey? OSD only supports 32 bit ARGB visuals.. and you are using a 16 bit RGB visual.
This commit adds a check that the visual is a 32 bits visual, if it is not ChromaKey? OSD is not enabled. ChromaKey? OSD could be extended to support other visuals, but it would involve creating new OSD blend functions.
One could also make Qt pick a 32 bit ARGB visual if one is available, but a google search reveals that this requires subclassing QFrame to use a better visual, and ALWAYS using the subclass to create windows. This is because Qt stores the visual information in global variables, so that all Qt windows in an application must use the same visual.. (Ugh!) That kind of change doesn't make sense before the new MythUI stuff is in place.
Until then you can probably configure X11 to pick a 32 bit ARGB visual by default for the root window. QFrame uses the root window's visual for the windows it creates, so this should make ChromaKey? OSD work for you.
comment:10 Changed 18 years ago by
Thanks for all the hard work. Setting the "DefaultDepth?" in xorg.conf to 24 from 16 did the trick. According to the man page, setting a depth of 24 sets the default pixelformat to 32ARGB unless the hardware can't support it which is rare. Will the increased depth impact the performance much? Either way, I can now watch dvds on my celeron 450 without the major skipping and jumping as long as there is absolutely nothing else going on on the machine. Thanks again.
I'm just moving this to 0.20, this is not yet a supported feature.
I think it is trying to place the OSD outside the screen in some of the letterbox modes.