ao_pulse: fix specifying host/sink after 4fed8ad197

Commit 4fed8ad197 ("ao_pulse: convert to new AO API") failed to change
the variable name used on one line in suboption handling. This caused
a crash due to NULL dereference if you tried to specify any suboptions
for the AO (as in "--ao=pulse:foo"). Fix.
ao_portaudio: add new PortAudio audio output driver

This AO has potential to be useful on platforms other than Linux. On
Windows in particular, PortAudio can make use of newer/better audio
APIs like WASAPI, instead of DirectSound.

As an implementation choice, the PortAudio callback API was used. The
blocking API might be a better match for mplayer's requirements, but
caused severe problems on Linux/ALSA (possibly PortAudio bugs).
build: remove IRIX support
ao_arts, ao_esd: remove these AOs

Delete ao_arts and ao_esd. Both have been deprecated upstream.
configure: use pkg-config for vdpau, libmpg123, libbluray
ad_mpg123: update libmpg123 API use

Improve ad_mpg123, including use of the more efficient framewise
decoding with mpg123 version 1.14 or later (older versions are still
supported).
options: change --input=keylist, cmdlist implementation

Change the --input=keylist and --input=cmdlist suboptions to use the
"print function" option type. This changes their semantics somewhat,
and now some other output can appear after the printed lists (before,
they called "exit(0)" directly). I'm not aware of any program parsing
the output which could be affected.
options: change -v parsing

Handle -v flags as a special case in command line preparsing stage,
and change the option entry into a dummy one. Specifying "v" in config
file no longer works (and the dummy entry shows an error in this
case); "msglevel" can still be used for that purpose. Because the flag
is now interpreted at an earlier parsing stage, it now affects the
printing of some early messages that were only affected by the
MPLAYER_VERBOSE environment variable before.

The main motivation for this change is to get rid of the last
CONF_TYPE_FUNC option.
options: simplify option parsing/setting machinery

Each option type had three separate operations to copy option values
between memory locations: copy between general memory locations
("copy"), copy from general memory to active configuration of the
program ("set"), and in the other direction ("save"). No normal option
depends on this distinction any more. Change everything to define and
use a single "copy" operation only. Change the special options
"include" and "profile", which depended on hacky option types, to be
special-cased directly in option parsing instead. Remove the now
unused option types m_option_type_func and m_option_type_func_param.
core: fix EOF handling with untimed audio outputs

When using an audio output without a native playback rate (such as
ao_pcm), the code plays audio further when the current write position
is behind video. After support for continuing audio after the end of
video was added, this could cause a deadlock: audio was not played
further, but neither was EOF triggered. Fix the code to properly
handle playback of remaining audio after video ends in the untimed
audio case (audio-only case was not affected, only the case where a
video stream exists but ends before the audio stream).
configure: don't enable GL/X11 without X11

The OpenGL autodetection checked for all backends regardless of which
features had been enabled previously. Stop checking for X11 backend if
X11 support is disabled, and stop checking for w32 backend if we are
not on Windows.

This makes the changes in commit 3862d469ae ("configure: OSX: check
for X11 header conflict with corevideo") work as intended. That commit
disabled X11 when a header conflict was detected, but the GL X11
backend could still be autodetected despite that and trigger a
compilation failure.
configure: OSX: fix check for compiler-specific cflags

The configure script adds some compiler-specific flags for GCC on OSX.
This was done under a check for compiler binary name not being clang.
Move the test to after $cc_vendor has been determined and check
against that instead.

The previous test worked for clang if you explicitly specified
--cc=clang, but not if the default system "cc" command was used and
mapped to clang. Recent versions of Xcode changed the default compiler
(cc) to clang. This caused a lot of spam from clang, which complained
about the unknown flags when compiling with no explicit --cc option.
font_load_ft.c: fix possible crash with recent Fontconfig

Calling FcFontMatch with last argument NULL triggers an assertion
failure in latest libfontconfig (2.9.0). Change the code to use a
dummy address, like another nearby call to FcFontMatch already did.

Whether the code triggering the assertion failure was run depended on
font settings and/or available system fonts (the code looks like you'd
have to get a non-scalable font first). Thus it didn't usually happen
even with problematic libfontconfig version.