path: root/old-configure
Commit message (Collapse)AuthorAgeFilesLines
* vo_opengl: minimal EGL on X11 supportwm42014-11-041-1/+8
| | | | | | Pretty useless and only good for testing. Does not include any form of GLES support.
* Drop libquvi supportwm42014-10-251-13/+1
| | | | | | | | | | | No development activity (or even any sign of life) for almost a year. A replacement based on youtube-dl will probably be provided before the next mpv release. Ask on the IRC channel if you want to test. Simplify the Lua check too: libquvi linking against a different Lua version than mpv was a frequent issue, but with libquvi gone, no direct dependency uses Lua, and such a clash is rather unlikely.
* terminal: drop ncurses/terminfo/termcap supportwm42014-10-231-6/+0
| | | | | | It was disabled since the last release, and nobody complained loudly. Further details see commit 4b5c3ea7.
* osdep: NetBSD pthread_setname_np()wm42014-10-221-0/+1
| | | | | | From: bugmen0t on github Fixes #1207.
* Set thread name for debuggingwm42014-10-191-0/+3
| | | | | | | | | | Especially with other components (libavcodec, OSX stuff), the thread list can get quite populated. Setting the thread name helps when debugging. Since this is not portable, we check the OS variants in waf configure. old-configure just gets a special-case for glibc, since doing a full check here would probably be a waste of effort.
* lua: add an utility function for starting processeswm42014-10-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because 1) Lua is terrible, and 2) popen() is terrible. Unfortunately, since Unix is also terrible, this turned out more complicated than I hoped. As a consequence and to avoid that this code has to be maintained forever, add a disclaimer that any function in Lua's utils module can disappear any time. The complexity seems a bit ridiculous, especially for a feature so far removed from actual video playback, so if it turns out that we don't really need this function, it will be dropped again. The motivation for this commit is the same as with 8e4fa5fc. Note that there is an "#ifndef __GLIBC__". The GNU people are very special people and thought it'd be convenient to actually declare "environ", even though the POSIX people, which are also very special people, state that no header declares this and that the user has to declare this manually. Since the GNU people overtook the Unix world with their very clever "embrace, extend, extinguish" strategy, but not 100%, and trying to build without _GNU_SOURCE is hopeless; but since there might be Unix environments which support _GNU_SOURCE features partially, this means that in practice "environ" will be randomly declared or not declared by system headers. Also, gcc was written by very clever people too, and prints a warning if an external variable is declared twice (I didn't check, but I suppose redeclaring is legal C, and not even the gcc people are clever enough to only warn against a definitely not legal C construct, although sometimes they do this), ...and since we at mpv hate compiler warnings, we seek to silence them all. Adding a configure test just for a warning seems too radical, so we special-case this against __GLIBC__, which is hopefully not defined on other libcs, especially not libcs which don't implement all aspects of _GNU_SOURCE, and redefine "environ" on systems even if the headers define it already (because they support _GNU_SOURCE - as I mentioned before, the clever GNU people wrote software THAT portable that other libcs just gave up and implemented parts of _GNU_SOURCE, although probably not all), which means that compiling mpv will print a warning about "environ" being redefined, but at least this won't happen on my system, so all is fine. However, should someone complain about this warning, I will force whoever complained about this warning to read this ENTIRE commit message, and if possible, will also force them to eat a printed-out copy of the GNU Manifesto, and if that is not enough, maybe this person could even be forced to convince the very clever POSIX people of not doing crap like this: having the user to manually declare somewhat central symbols - but I doubt it's possible, because the POSIX people are too far gone and only care about maintaining compatibility with old versions of AIX and HP-UX. Oh, also, this code contains some subtle and obvious issues, but writing about this is not fun.
* vf_vapoursynth: add standalone Lua scriptingwm42014-10-121-3/+20
* audio: skip samples and adjust timestamps ourselveswm42014-10-031-0/+6
| | | | | | | | | | This gets rid of this warning: Could not update timestamps for skipped samples. This required an API addition to FFmpeg (otherwise it would instead doing arithmetic on the timestamps itself), so whether it works depends on the FFmpeg version.
* old-configure: minor improvementswm42014-09-261-5/+4
| | | | | Use a trap to remove the temp dir on exit. Write config.log to old_build instead of the top-level dir.
* build: add -Wno-format-zero-lengthwm42014-09-261-1/+3
| | | | | | This warning makes absolutely no sense. Passing an empty string to printf-like functions is perfectly fine. In the OSD case, it just sets an empty message, practically clearing the OSD.
* build: update minimum wayland versionAlexander Preisinger2014-09-191-1/+1
| | | | Uh oh.
* input: use libwaio for pipe input on Windowswm42014-09-141-0/+1
| | | | | | | | | | | | Use libwaio to read from pipes (stdin or named pipes) on Windows. This liberates us from nasty issues, such as pipes (as created by most programs) not being possible to read in a non-blocking or event-driven way. Although it would be possible to do that in a somewhat sane way on Vista+, it's still not easy, and on XP it's especially hard. libwaio handles these things for us. Move pipe.c to pipe-unix.c, and remove Windows specific things. Also adjust the input.c code to make this work cleanly.
* ao_oss: use poll(), drop --disable-audio-select supportwm42014-09-111-3/+0
| | | | | | | | | | | | | | Replace select() usage with poll() (and reduce code duplication). Also, while we're at it, drop --disable-audio-select, since it has the wrong name anyway. And I have doubts that this is needed anywhere. If it is, it should probably fallback to doing the right thing by default, instead of requiring the user to do it manually. Since nobody has done that yet, and since this configure option has been part of MPlayer ever since ao_oss was added, it's probably safe to say it's not needed. The '#ifdef SNDCTL_DSP_GETOSPACE' was pointless, since it's already used unconditionally in another place.
* input: remove central select() callwm42014-09-101-1/+0
| | | | | This is now unused. Get rid of it and all surrounding infrastructure, and replace the remaining "wakeup pipe" with a semaphore.
* build: handle insane libavcodec API bullshitwm42014-09-051-0/+6
| | | | | | | | | | | | | | | | | | | | | The oldest supported FFmpeg release doesn't provide av_vdpau_alloc_context(). With these versions, the application has no other choice than to hard code the size of AVVDPAUContext. (On the other hand, there's av_alloc_vdpaucontext(), which does the same thing, but is FFmpeg specific - not sure if it was available early enough, so I'm not touching it.) Newer FFmpeg and Libav releases require you to call this function, for ABI compatibility reasons. It's the typcal lakc of foresight that make FFmpeg APIs terrible. mpv successfully pretended that this crap didn't exist (ABI compat. is near impossible to reach anyway) - but it appears newer developments in Libav change the function from initializing the struct with all-zeros to something else, and mpv vdpau decoding would stop working as soon as this new work is relewased. So, add a configure test (sigh). CC: @mpv-player/stable
* build: disable terminfo and termcap code by defaultwm42014-08-211-2/+2
| | | | If nobody complains soon enough, I will remove the code completely.
* x11: listen to xrandr eventswm42014-08-171-1/+1
| | | | | | | | | | | If the Xrandr configuration changes, re-read it. So if you change display modes or screen configuration, it will update the framedrop refresh rate accordingly. This passes the rootwin to XRRSelectInput(), which may or may not be allowed. But it works, and the documentation (which is worse than used toilet paper, great job Xorg) doesn't forbid it, or in fact say anything about what the window parameter is even used for.
* build: drop check for XF86keysym.hwm42014-08-161-6/+0
| | | | | | This is always included in the Xorg development headers. Strictly speaking it's not necessarily available with other X implementations, but these are hopefully all dead.
* x11: use xrandr to retrieve display refresh ratewm42014-08-161-3/+2
| | | | | | | | | | | | | | | | | Drop use of the ancient XF86VM, and use the slightly less ancient Xrandr extension to retrieve the refresh rate. Xrandr has the advantage that it supports multiple monitors (at least the modern version of it). For now, we don't attempt any dynamic reconfiguration. We don't request and listen to Xrandr events, and we don't notify the VO code of changes in the refresh rate. (The later works by assuming that X coordinates map directly to Xrandr coordinates, which probably is wrong with compositing window manager, at least if these use complicated transformations. But I know of no API to handle this.) It would be nice to drop use of the Xinerama extension too, but unfortunately, at least one EWMH feature uses Xinerama screen numbers, and I don't know how that maps to Xrandr outputs.
* demux_lavf: support new metadata update APIwm42014-08-141-0/+6
| | | | | This Libav-invented API is of course completely different from the FFmpeg-one. (The fun part is that I approved of both.)
* old-build: HAVE_COCOA_APPLICATION must be setwm42014-08-061-0/+1
| | | | Also fix a typo in the Makefile manpage rule.
* ao_pulse: remove hacks for ancient PulseAudio versionswm42014-07-261-1/+1
| | | | | | | | | | | This was needed by very old (0.9) versions only. Get rid of it. Unfortunately, I can't cross-check with the original bug report, since the bug URL leads to this: Internal Server Error TracError: IOError: [Errno 2] No such file or directory: '/home/lennart/svn/trac/pulseaudio/VERSION'
* Revert "Remove DVD and Bluray support"wm42014-07-151-0/+10
| | | | | | This reverts commit 4b93210e0c244a65ef10a566abed2ad25ecaf9a1. *shrug*
* Remove DVD and Bluray supportwm42014-07-141-10/+0
| | | | It never worked well. Just remux your DVD and BD images to mkv.
* old-configure: fix Lua testswm42014-07-071-1/+2
| | | | This added every Lua that was found on the system.
* video: Add BT.2020-NCL colorspace and transfer functionNiklas Haas2014-06-221-0/+6
| | | | Source:!!PDF-E.pdf
* build: check for 64bit stdatomic.h operations tooAlessandro Ghedini2014-06-171-1/+2
| | | | | This fixes the build on platform where the atomic calls can't be turned into lock-free instructions and thus need the external libatomic library (e.g. mips).
* gl_lcms: use thread-safe lcms API, require lcms2 2.6wm42014-06-161-1/+1
| | | | | | | | | | | | | | The error log callback was not thread-safe and not library-safe. And apparently there were some other details that made it not library-safe, such as a global lcms plugin registry. Switch the the thread-safe API provided by lcms2 starting with 2.6. Remove our approximate thread-safety hacks. Note that lcms basically provides 2 APIs now, the old functions, and the thread-safe alternatives whose names end with THR. Some functions don't change, because they already have a context of some sort. Care must be taken not to accidentally use old APIs.
* demux_lavf: support new rotation metadata APIwm42014-06-011-0/+6
* stream: remove VCD supportwm42014-06-011-3/+0
| | | | | | | | | If a single person complains, I will readd it. But I don't expect that this will happen. The main reason for removing this is that it's some of the most unclean code remaining, it's unmaintained, and I've never ever heard of someone using it.
* tv: remove sysinfo() usagewm42014-05-301-3/+0
| | | | | | This call was used limited the buffer size if installed RAM was below 16 MB. This stopped being useful a decade ago. The check could also overflow on 32 bit systems. Just get rid of it.
* stream_file: readjust some windows ifdefferywm42014-05-241-1/+0
| | | | | | | | | | Also sneak in some cosmetics. setmode() exists on Windows/msvcrt only, so there's no need for a config test. I couldn't reproduce the problem with seekable pipes on wine, so axe it. (I'm aware that it still could be an issue on real Windows.)
* old-build: fix building with libquvi4wm42014-05-231-1/+1
* old-configure: we accidentally used bash featureswm42014-05-221-3/+11
| | | | | | | | | In at least 2 places, we want to "shift" positional parameters by a certain amount, or remove all parameters if there are fewer parameters. bash handled this just fine, but dash vomits upon it. POSIX shell allows both behaviors, so we have to fix it. Fix a comparison done with "==" instead of "=".
* atomics: switch to C11 stdatomic.hwm42014-05-211-5/+11
| | | | | | | | | | | | | | | | | | | | | | | | | In my opinion, we shouldn't use atomics at all, but ok. This switches the mpv code to use C11 stdatomic.h, and for compilers that don't support stdatomic.h yet, we emulate the subset used by mpv using the builtins commonly provided by gcc and clang. This supersedes an earlier similar attempt by Kovensky. That attempt unfortunately relied on a big copypasted freebsd header (which also depended on much more highly compiler-specific functionality, defined reserved symbols, etc.), so it had to be NIH'ed. Some issues: - C11 says default initialization of atomics "produces a valid state", but it's not sure whether the stored value is really 0. But we rely on this. - I'm pretty sure our use of the __atomic... builtins is/was incorrect. We don't use atomic load/store intrinsics, and access stuff directly. - Our wrapper actually does stricter typechecking than the stdatomic.h implementation by gcc 4.9. We make the atomic types incompatible with normal types by wrapping them into structs. (The FreeBSD wrapper does the same.) - I couldn't test on MinGW.
* old-build: accidental rewritewm42014-05-141-1993/+467
| | | | | | | | | | | | | This started as a bunch of smaller changes to make the old configure script maintainable with minimum effort. It ended up as complete rewrite, because at once point I started to like shell programming (I hope this sickness is curable), and I wanted to see how small I can make the configure script. The typical configure test is now 1 or 2 lines big, located in 1 or 2 places, instead of >15 lines and being spread over 5 or 6 places. The main "trick" is factoring the tests into a few generic, commonly needed tests, instead of writing everything manually.
* old-build: drop support for anything but Linux, simplifywm42014-05-141-807/+48
| | | | | | | | | | | | | A lot of effort was spent on making the waf based build-system work properly on all supported platforms, while the old configure script was neglected. It seems that nobody maintains the non-Linux parts of the configure script anymore, and all improvements go into the waf scripts. Thus it makes no sense anymore to maintain the non-Linux parts. They're just dead weight. Remove them completely. Also apply some additional simplifications. For example, listing enabled/disabled VO modules seems like a waste of effort.
* old-build: define a new symbolwm42014-05-131-0/+1
| | | | | | | waf has a proper test, but no test was added to old-configure. This means that on OSX, old-configure is not supposed to work anymore. But still allow it to compile cleanly on OSX.
* Remove CPU detection and inline asm handlingwm42014-04-191-251/+2
| | | | | | | | | | | | | | Not needed anymore. I'm not opposed to having asm, but inline asm is too much of a pain, and it was planned long ago to eventually get rid fo all inline asm uses. For the note, the inline asm use that was removed with the previous commits was almost worthless. It was confined to video filters, and most video filtering is now done with libavfilter. Some mpv filters (like vf_pullup) actually redirect to libavfilter if possible. If asm is added in the future, it should happen in the form of external files.
* Remove radio://wm42014-04-131-58/+0
| | | | | It was disabled by default, works only for analogue radio, and I bet nobody uses it.
* vf_lavfi: copy AVFrame metadata into vf_lavfi privKevin Mitchell2014-04-131-0/+12
| | | | | | | | store it as mp_tas and add VFCTRL_GET_METADATA to access it from elsewhere Signed-off-by: wm4 <wm4@nowhere> old-configure test by wm4.
* video: add VapourSynth filter bridgewm42014-04-121-0/+21
| | | | | | | | | | | | Mainly meant to apply simple VapourSynth filters to video at runtime. This has various restrictions, which are listed in the manpage. Additionally, this actually copies video frames when converting frame references from mpv to VapourSynth, and a second time when going from VapourSynth to mpv. This is inefficient and could probably be easily improved. But for now, this is simpler, and in fact I'm not sure if we even can references VapourSynth frames after the core has been destroyed.
* build: add -Wempty-body to compiler flagswm42014-04-041-2/+2
| | | | Warns against "if(0);" but not "if(0){}" - perfect for our purposes.
* build: check if replaygain side data is availableAlessandro Ghedini2014-04-041-0/+12
| | | | | | Signed-off-by: wm4 <wm4@nowhere> old-configure change by wm4.
* build: simplify libavfilter configure checkswm42014-03-161-59/+2
| | | | | This is all not needed anymore. In particular, remove all configure switches except --enable-libavfilter.
* af_lavrresample: remove avresample_set_channel_mapping() fallbackswm42014-03-161-14/+0
| | | | | | | This function is now always available. Also remove includes of reorder_ch.h from some AOs (these are just old relicts).
* vd_lavc: remove compatibility crapwm42014-03-161-58/+7
| | | | | | | All this code was needed for compatibility with very old libavcodec versions only (such as Libav 9). Includes some now-possible simplifications too.
* build: drop support for Libav 9wm42014-03-161-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | I have no tolerance for this garbage anymore. There are tons of issues with it (see e.g. previous commit), and there is no reason to use it either. Use Libav git, or Libav 10 when it's released. This also drops support for earlier FFmpeg release, which have exactly the same issues as Libav 9. FFmpeg 2.1.4 is still supported, because it's the latest release, and is reasonably recent. (Although this will probably also be dropped as soon as FFmpeg 2.2 is released.) Assumed version table (lots of nonsensical numbers): FFmpeg 2.1.4 FFmpeg (n2.2-rc2) Libav (v10_beta2) lavu 52.48.101 52.66.100 53.3.0 lavc 55.39.101 55.52.102 55.34.1 lavf 55.19.104 55.33.100 55.12.0 lsws 2.5.101 2.5.101 2.1.2 lavi 3.90.100 4.2.100 4.2.0 lswr 0.17.104 0.18.100 - lavr 1.1.0 1.2.0 1.1.0 libpostproc and libavdevice are not interesting. Following this commit, code needed just to support old Libav versions will start to be removed.
* af_lavfi: beat it into working with Libavwm42014-03-131-11/+1
| | | | | | | | | | | | | | | | | | | The main incompatibility was that Libav didn't have av_opt_set_int_list. But since that function is excessively ugly and idiotic (look how it handles types), I'm not missing it much. Use an aformat filter instead to handle the functionality that was indirectly provided by it. This is similar to how vf_lavfi works. The other incompatibility was channel handling. Libav consistently uses channel layouts only, why ffmpeg still requires messing with channel counts to some degree. Get rid of most channel count uses (and hope channel layouts are "exact" enough). Only in one case FFmpeg fails with a runtime check if we feed it AVFrames with channel count unset. Another issue were AVFrame accessor functions. FFmpeg introduced these for ABI compatibility with Libav. I refuse to use them, and it's not my problem if FFmpeg doesn't manage to provide a stable ABI for fields provided both by FFmpeg and Libav.
* stream_file: network file system detection for LinuxPhilip Sequeira2014-03-121-0/+1
| | | | | | Addresses issue #558 on Linux systems. Signed-off-by: wm4 <wm4@nowhere>
* old build: add a missing config.h definewm42014-02-231-0/+2
| | | | The configure check was added to waf only.
* demux_lavf: get updated metadata from a packet if availableBen Boeckel2014-02-061-0/+12
| | | | The side_data type is brand new in ffmpeg.
* old-configure: use -std=c99wm42014-02-021-2/+2
| | | | See previous commit.
* build: fix usage of HAVE_SDL1 defineStefano Pigozzi2014-01-251-3/+3
| | | | This is needed after fd1f8ed49.
* Switch PDF manual generation to rst2pdfMartin Herkt2014-01-081-8/+8
| | | | | | | This finally gets rid of the LaTeX dependency. We should actually be using docultils directly here, but I didn't do this because of all the potential Python 2/3 breakage.
* build: fix typoStefano Pigozzi2014-01-011-1/+1
* build: make configure fail if both __atomic and __sync are not availableStefano Pigozzi2014-01-011-0/+18
* build: check for libatomic and __atomic operationsAlessandro Ghedini2013-12-311-0/+16
| | | | | | Add check in old-configure as well. Reformat the check to use a maximum of 80 columns in the wscript. Signed-off-by: Stefano Pigozzi <>
* build: fix shm detection on OpenBSDStefano Pigozzi2013-12-261-1/+12
| | | | Fixes #427
* Rename getch2....c/h to terminal....c/hwm42013-12-191-2/+2
| | | | | "getch2" really tells nothing about what the heck this code does. It'd be even worse when moving the rest of terminal handling code there.
* input: remove LIRCCD supportwm42013-12-161-18/+0
| | | | | | | This removes support for the "LIRC Client Daemon", which is separate from LIRC, and hasn't been maintained for 10 years. See github issue #413.
* Add prelimimary (basic, possibly broken) dvdnav supportwm42013-12-121-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | This readds a more or less completely new dvdnav implementation, though it's based on the code from before commit 41fbcee. Note that this is rather basic, and might be broken or not quite usable in many cases. Most importantly, navigation highlights are not correctly implemented. This would require changes in the FFmpeg dvdsub decoder (to apply a different internal CLUT), so supporting it is not really possible right now. And in fact, I don't think I ever want to support it, because it's a very small gain for a lot of work. Instead, mpv will display fake highlights, which are an approximate bounding box around the real highlights. Some things like mouse input or switching audio/subtitles stream using the dvdnav VM are not supported. Might be quite fragile on transitions: if dvdnav initiates a transition, and doesn't give us enough mpeg data to initialize video playback, the player will just quit. This is added only because some users seem to want it. I don't intend to make mpv a good DVD player, so the very basic minimum will have to do. How about you just convert your DVD to proper video files?
* vo_opengl: support for vda hardware decodingStefano Pigozzi2013-12-021-0/+13
| | | | | | | | | | | The harder work was done in the previous commits. After that this feature comes out almost for free. The only problem is I can't get the textures created with CGLTexImageIOSurface2D to download properly, thus the code performs download using some CoreVideo APIs. If someone knows why download of textures created with CGLTexImageIOSurface2D doesn't work please contact me :)
* build: reject broken roaraudio sndio emulationwm42013-12-021-1/+1
| | | | | | | | roaraudio has some sort of sndio emulation, but apparently its header file is either blatantly broken, or an old version from the past. The sio_onvol() function has the wrong return type (void instead of int), and the SIO_DEVANY symbol is missing entirely. This broke the build, because the configure check was successful anyway.
* old-configure: delete pre-waf config.h and config.makwm42013-11-301-0/+4
* build: add options for enabling and disabling any libquvi versionsNikoli2013-11-291-9/+5
| | | | Makes packaging a bit simpler.
* Take care of some libavutil deprecations, drop support for FFmpeg 1.0wm42013-11-291-1/+1
| | | | | | | | | | | | | | PIX_FMT_* -> AV_PIX_FMT_* (except some pixdesc constants) enum PixelFormat -> enum AVPixelFormat Losen some version checks in certain newer pixel formats. av_pix_fmt_descriptors -> av_pix_fmt_desc_get This removes support for FFmpeg 1.0.x, which is even older than Libav 9.x. Support for it probably was already broken, and its libswresample was rejected by our build system anyway because it's broken. Mostly untested; it does compile with Libav 9.9.
* build: make pthreads mandatorywm42013-11-281-0/+4
| | | | | | | | | | | pthreads should be available anywhere. Even if not, for environment without threads a pthread wrapper could be provided that can't actually start threads, thus disabling features that require threads. Make pthreads mandatory in order to simplify build dependencies and to reduce ifdeffery. (Admittedly, there wasn't much complexity, but maybe we will use pthreads more in the future, and then it'd become a real bother.)
* old-build: fix iconv check on openbsdStefano Pigozzi2013-11-271-1/+1
* switch the build system to wafStefano Pigozzi2013-11-211-0/+3573
This commit adds a new build system based on waf. configure and Makefile are deprecated effective immediately and someday in the future they will be removed (they are still available by running ./old-configure). You can find how the choice for waf came to be in `DOCS/waf-buildsystem.rst`. TL;DR: we couldn't get the same level of abstraction and customization with other build systems we tried (CMake and autotools). For guidance on how to build the software now, take a look at and the cross compilation guide. CREDITS: This is a squash of ~250 commits. Some of them are not by me, so here is the deserved attribution: - @wm4 contributed some Windows fixes, renamed configure to old-configure and contributed to the bootstrap script. Also, GNU/Linux testing. - @lachs0r contributed some Windows fixes and the bootstrap script. - @Nikoli contributed a lot of testing and discovered many bugs. - @CrimsonVoid contributed changes to the bootstrap script.