[mythtv] No video on macbook on with 0.25
Michael T. Dean
mtdean at thirdcontact.com
Sat May 26 15:31:17 UTC 2012
On 05/26/2012 09:22 AM, Andrew Leech wrote:
> Having recently purchased a new macbook (early '11 model), I found
> that 0.25 would simply show a white screen permanently when playing
> video, with the audio running fine in the background. Changing the
> video profile made no difference.
> I found however that the 05 May build of 0.25b on
> http://avenard.org/files/mac/ worked fine. Anything newer including
> 0.25 release, /fixes and master all show the same problem.
> After setting up compiling in the mac a couple of days ago, and then
> spending a good few hours bisecting and rebuilding, I've found the
> causal commit to be
> fa639a77c0 - Make users have to figure out if their video works.
> After reading the commit description, I followed the advice, found the
> painter setting and turned it to Auto, and there we go, my video now
> works fine!
> Was this really the desired behavior of this commit?
> And if so, where should I have found this information needed to make
> video work?
> Why isn't auto the default setting here, as surely it would give the
> best experience for the majority of users?
> I'm not a new user, I've been using myth on linux for about 7 years,
> but this had me stumped for quite a while. I've since checked my main
> machine, running mythbuntu, and it's interface was set to QT also
> although it's video has always worked fine. I had always wondered why
> the myth interface on that computer had been so slow, now I know.
> Switching it to Auto has made it run a lot better too!
Auto creates an OpenGL painter, and if the OpenGL subsystem claims to
support all the required behaviors and have the required capability, we
use the OpenGL painter, and otherwise, we fall back to Qt painter.
Unfortunately, the video drivers lie.
For example, on GNU/Linux users with current AMD video drivers get a
good UI with the OpenGL painter, but after first playback, return to a
black screen and cannot get video back without restarting X. Also, many
current distros are shipping a broken Mesa version that results in
segfaults for users of the OpenGL painter with Intel video drivers.
Therefore, Auto (and/or the OpenGL painter) only works for users who use
(the highly recommended, by me, at least) NVIDIA video cards/drivers.
The original plan was to remove the setting completely and just "do the
right thing." We ran like that (which is equivalent to having Auto as
the default for the setting) in master for many months, but it actually
caused more problems than it solved due to broken video
drivers/systems. So, the theory behind that change is that by using the
most-basic, "doesn't require any special video capabilities" paint
engine, MythTV's UI would work for all users. Even if they miss out on
some capabilities, it's better than the non-functional UI they'd get if
they're not using good (spelled "NVIDIA") video cards/drivers--and the
slew of bug reports we'd get for something we can't fix (their
"BrokenGL" implementations, that require better cards/drivers/X/Mesa/...).
Unfortunately, on Mac OS X, the "most-basic, 'doesn't require any
special video capabilities' paint engine" doesn't work--
http://code.mythtv.org/trac/ticket/10559 . The proper fix for that
issue is to fix the Qt paint engine on Mac OS X (though I haven't even
figured out where to start on that--and probably won't be able to do so,
myself, without access to any OS X systems). In the interim, I left the
default such that it would work on all GNU/Linux systems because a) we
have a lot more GNU/Linux users than Mac OS X users, and b) I really
didn't want to add more system-specific conditionals and have to keep
track of what works where, and c) it's only a default value for a
setting (meaning it only affects new installs) and settings are those
things that we, the developers, are telling users, "I can't figure out
the right thing to do, so you have to tell me," so in theory, users will
adjust them appropriately.
As far as how you would find the information, it's pretty much as
described in my rant in the commit message--most users won't. Only
those who see a failure (such as you) would continue to look into the
issue, until they find the setting to change. Ideally, they would
either notice http://code.mythtv.org/trac/ticket/10559 or messages on
the mailing list archive ( http://www.gossamer-threads.com/lists/mythtv/
) or ask on the mailing list or on IRC and someone would let them know
that only OpenGL painter works on Mac OS X, and that they should set
their Paint Engine to Auto.
On the bright side, I'm pretty sure (though I haven't proven) that Qt
4.8 has some major changes that mean we use OpenGL even when we don't
tell Qt to use OpenGL, and I expect it will encourage further changes in
the future (including better support from video drivers), which may
allow us to change the default to the sane choice, Auto.
Out of curiosity, which Mythbuntu and which Qt version is on your main
Also, I'm assuming you have OS X 10.7? What version of Qt is on that
system? (Wonder if the non-functionality may be related to the 4.8
changes I mentioned above.)
More information about the mythtv-dev