Other README changes are probably warranted, but this should help Linux
users build the new Plex Media Player.
Plex-CLA-1.0-signed-off-by: Chris Lee <clee@mg8.org>
Should solve the USB audio issues. But is equally likely to cause entire
new classes of problems, as this mode is not well-tested. On the other
hand, this uses the same OSX API as PHT, so it might be easier to match
user expectations.
With non-exclusive mode, the change-physical-format option ruins
everything for us if the OSX USB audio driver is used. It's a pretty
nasty issue that has a low chance of getting fixed properly. As we now
rely on exclusive mode for multichannel PCM, this option is not really
needed anymore, and we remove it to avoid further problems, should the
user select non-exclusive mode.
Appears to cause heavy problems in some cases. Until this is fixed, I'd
rather require users to enable it manually, instead of having _all_
users run into potential issues.
We did get a crash upload about it. And indeed, the display and/or mode
list can asynchronously change, making these IDs invalid. Verify them
before doing anything. The "correct" fix would probably be getting rid
of these IDs, but this will have to wait for later.
Also, the DisplayManager::isValid* methods erroneously accepted negative
IDs as valid, which is definitely wrong. (No, the QMap.size method does
not return an unsigned integer either.)
It prints two numbers; one detected by PMP, and the one we told to
libmpv. Unless there's some sort of bug, unless something broke. (This
is a debug overlay, so we want to know about such cases.)
On RPI, libmpv also does its own FPS detection.
This can put PMP/Qt into an endless loop of crashing and restarting on
some systems. The reason is unknown (possibly due to the kind of unclean
way we restore the graphics state on RPI), so disable it to be on the
safe side for now.
Instead of having a single save() method with a bool parameter, split it
into 2 separate functions. This doesn't really increase code
duplication, as the code was already pretty much duplicated, and makes
it clearer what is happening on the caller site.
Add a saveSection() function, which decides which config file should be
written depending on which file the section belongs to.
Some users want to run with "hdmi_ignore_cec_init=1" (in RPI's
config.txt). This disables automatically switching on HDMI on boot. Our
PMP code does something similar, and essentially negates the
hdmi_ignore_cec_init setting. So there's a need to allow the user to
disable the PMP code too.
(We could also try to retrieve the firmware hdmi_ignore_cec_init setting
somehow, potentially by parsing config.txt, but let's not for now.)
The list could be empty or stale. Hopefully fixes the following case:
1. Switch RPI off
2. Remove HDMI cable from RPI
3. Switch RPI on, wait until PMP has started
4. Plug in HDMI cable
5. Screen remains off
libmpv did not rebase mkv stream timestamps so that the stream starts at
timestamp 0 (unlike for .ts files and such). This was fixed, but
unfortunately web-client now relies on this mpv bug. Add this hack so
that it can be fixed later, instead of breaking transcode seeking.