aboutsummaryrefslogtreecommitdiffhomepage
path: root/wscript
Commit message (Collapse)AuthorAge
* vf_vapoursynth: replace a hack with a newer VS API functionGravatar wm42015-02-16
| | | | | The new function does exactly what we need. Replaces the old hack, which created the vscore by running an empty script.
* af_rubberband: pitch correction with librubberbandGravatar wm42015-02-11
| | | | | | | | | If "--af=rubberband" is used, librubberband will be used to speed up or slow down audio with pitch correction. This still has some problems: the audio delay is not calculated correctly, so the audio position jitters around by a few milliseconds. This will probably ruin video timing.
* build: add option to generate a clang compilation databaseGravatar Stefano Pigozzi2015-02-05
| | | | | | | | The compilation database is a JSON file[1] storing all compilation flags. That is useful for tools using libclang for code completion and error reporting (for example: YouCompleteMe for vim). [1]: http://clang.llvm.org/docs/JSONCompilationDatabase.html
* build: disable pdf build by defaultGravatar wm42015-02-02
| | | | | rst2pdf keeps having sporadic layouting failures, causing build failures.
* build: fix v4l2 support on NetBSDGravatar wm42015-01-31
| | | | | It was accidentally broken. Tested by a NetBSD user. May help with other BSDs.
* build: remove bogus client API examples buildGravatar wm42015-01-23
| | | | | | | | | | | The symlink trick made waf go crazy (deleting source files, getting tangled up in infinite recursion... I wish I was joking). This means we still can't build the client API examples in a reasonable way using the include files of the local repository (instead of globally installed headers). Not building them at all is better than deleting source files. Instead, provide some manual instructions how to build each example (except for the Qt examples, which provide qmake project files).
* build: reduce worst case with mismatching FFmpeg pkg-config filesGravatar wm42015-01-20
| | | | | | | | | | | | | | | | | | | Handles mismatching libavfilter/libavdevice and libavcodec slightly better. libavfilter and libavdevice are optional, and thus are checked separately and at a later point of the build. But if a user system has at least 2 FFmpeg installations, and one of them lacks libavfilter or libavdevice, the build script will pick up the libavfilter/libavdevice package of the "other" FFmpeg installation. The moment waf picks these up, all include paths will start pointing at the "wrong" FFmpeg, and the FFmpeg API checks done earlier might be wrong too, leading to obscure and hard to explain compilation failures. Just moving the libavfilter/libavdevice checks before the FFmpeg API checks somewhat deals with this issue. Certainly not a proper solution, but since the change is harmless, and there is no proper solution, and the change doesn't actually add anything new, why not.
* win32: remove check for SetPriorityClass()Gravatar wm42015-01-20
| | | | | | | | | | This function is always available, which is reflected by the fact that the configure check doesn't actually bother to check for its existence. Instead, MinGW and Cygwin imply it. The check was probably "needed" when the priority code was still in a separate source file. Remove the check, and use _WIN32 for testing for the win32 API (in a bunch of other places too).
* build: prefer libswresample over libavresample on FFmpegGravatar wm42015-01-02
| | | | | | | | | | I hoped we could always use libavresample, but the FFmpeg project is being too dickish to enable libavresample by default - which means we need our libswresample-to-libavresample hack anyway. Give up, and use the "supported" one of the duplicated libraries when compiling against FFmpeg (relying on the fact that libswresample won't be present if compiling against Libav).
* build: try to make examples build both in-tree and out-of-treeGravatar wm42015-01-02
| | | | | | | | | | | | | | | | | | | | | | | | | The examples simple.c and cocoabasic.m can be compiled without installing libmpv. But also, they didn't use the correct include path libmpv programs normally use, so they couldn't be built with a properly installed system-libmpv. That's pretty bad for examples, which are supposed to show how to use libmpv correctly. So do some bullshit that symlinks libmpv to a "mpv" include directory under the build directory. This name-mismatch is a direct consequence of the bullshit done in 499a6758 (requested in #539 for dumb reasons). (We don't want to name the client API headers directory "mpv", because that would be too unspecific, and clashes with having the mpv binary in the same directory.) If you have spaces or other "unusual" characters in your paths, the build will break, because I couldn't find out where waf hides its function to escape shell parameters (or a way to invoke programs without involving the shell). Neither does such a thing to be documented, nor do they seem to have a clear way to do this in their code. This also doesn't compile the Qt examples, because everything becomes even more terrible from there on.
* win32: add native wrappers for pthread functionsGravatar wm42015-01-01
| | | | | | | Off by default, use --enable-win32-internal-pthreads . This probably still needs a lot more testing. It also won't work on Windows XP.
* ao_portaudio: remove this audio outputGravatar wm42014-12-29
| | | | | It's just completely useless. We have good native support for all 3 desktop platforms, and ao_sdl or ao_openal as fallbacks.
* chmap_sel: add multichannel fallback heuristicGravatar Stefano Pigozzi2014-12-29
| | | | | | | | | | | | Instead of just failing during channel map selection, try to select a close layout that makes most sense and upmix/downmix to that instead of failing AO initialization. The heuristic is rather simple, and uses the following steps: 1) If mono is required always prefer stereo to a multichannel upmix. 2) Search for an upmix that is an exact superset of the required channel map. 3) Search for a downmix that is the exact subset of the required channel map. 4) Search for either an upmix or downmix that is the closest (minimum difference of channels) to the required channel map.
* win32: add mmap() emulationGravatar wm42014-12-26
| | | | | | | | Makes all of overlay_add work on windows/mingw. Since we now don't explicitly check for mmap() anymore (it's always present), this also requires us to make af_export.c compile, but I haven't tested it.
* build: require alsa libs not older than 6 yearsGravatar wm42014-12-16
| | | | | Some IEC958 flags we use have been introduced in 2008, which makes compilation fail on older systems.
* build: update to waf 1.8.4Gravatar Stefano Pigozzi2014-12-04
|
* video: remove things forgotten in previous commitGravatar wm42014-12-03
| | | | Oops.
* video/filter: kill vf_pp (libpostproc)Gravatar wm42014-12-03
| | | | | | | | | This is an ancient filter, and we assume it's not useful anymore. If you really want this, it's still available in libavfilter (e.g. via --vf=lavfi=[pp...]). The disadvantage is that mpv doesn't pass through QP information to libavfilter. (This was probably the reason vf_pp still was part of mpv - it was slightly easier to pass QP internally.)
* build: move --cplayer to build optionsGravatar Stefano Pigozzi2014-11-28
| | | | This way it’s near to it’s libmpv counterparts
* build: move --dvbin to TV features, remove --dvbGravatar Stefano Pigozzi2014-11-28
|
* build: fix typosGravatar Stefano Pigozzi2014-11-28
| | | thanks to @Nikoli
* wscript: move down some less important checksGravatar wm42014-11-17
|
* build: check for mingw-w64 explicitlyGravatar wm42014-11-17
| | | | | And fail building if not any of MingW-w64 or POSIX are found. Obviously, mpv needs one of those 2.
* atomics: add atomic_compare_exchange_strong()Gravatar wm42014-11-09
| | | | | | | | | | | | | | | | As usual, we use C11 semantics, and emulate it if <stdatomic.h> is not available. It's a bit messy with __sync_val_compare_and_swap(). We assume it has "strong" semantics (it can't fail sporadically), but I'm not sure if this is really the case. On the other hand, weak semantics don't seem to be possible, since the builtin can't distinguish between the two failure cases that could occur. Also, to match the C11 interface, use of gcc builtins is unavoidable. Add a check to the build system to make sure the compiler supports them (although I don't think there's any compiler which supports __sync_*, but not these extensions). Needed for the following commit.
* vo_opengl: minimal EGL on X11 supportGravatar wm42014-11-04
| | | | | | Pretty useless and only good for testing. Does not include any form of GLES support.
* build: remove bundle support from wafGravatar Stefano Pigozzi2014-11-01
| | | | Use TOOLS/osxbundle.py instead. It's just better and less hacky.
* build: fix 'ar' invocation when cross-compilingGravatar wm42014-11-01
| | | | | | | | This shouldn't use the host's 'ar' when building static libs. It only worked until now because Linux 'ar' is usually built with PE support. Couldn't confirm whether it works, because this dumb crap is just broken when cross-compiling to mingw.
* Drop libquvi supportGravatar wm42014-10-25
| | | | | | | | | | | 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.
* video: initial dxva2 supportGravatar wm42014-10-25
| | | | | Shamelessly stolen from ffmpeg. It probably doesn't work - you can debug it yourself.
* build: enable cdda:// by default againGravatar wm42014-10-25
| | | | | | Apparently people want this. (???) See #1214.
* terminal: drop ncurses/terminfo/termcap supportGravatar wm42014-10-23
| | | | | | It was disabled since the last release, and nobody complained loudly. Further details see commit 4b5c3ea7.
* osdep: NetBSD pthread_setname_np()Gravatar wm42014-10-22
| | | | | | From: bugmen0t on github Fixes #1207.
* Set thread name for debuggingGravatar wm42014-10-19
| | | | | | | | | | 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.
* fix build on OS X and BSDGravatar Stefano Pigozzi2014-10-19
|
* lua: add an utility function for starting processesGravatar wm42014-10-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* cocoa: allow to disable apple remote at compile timeGravatar Stefano Pigozzi2014-10-17
| | | | | Actually doesn't remove the related flags so that one can still pass the option with the option doing nothing.
* vf_vapoursynth: add standalone Lua scriptingGravatar wm42014-10-12
|
* build: update waf to version 1.8.1Gravatar Stefano Pigozzi2014-10-11
| | | | Fixes #1164
* build: make zsh completion directory configurableGravatar Philip Sequeira2014-10-11
| | | | Also, use the zsh default location (rather than the Debian one).
* audio: skip samples and adjust timestamps ourselvesGravatar wm42014-10-03
| | | | | | | | | | 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.
* audio/out: disable ao_sndio by defaultGravatar wm42014-09-26
| | | | | Don't build it, move it down the autoprobe list even if it's enabled. It doesn't work well enough.
* build: update minimum wayland versionGravatar Alexander Preisinger2014-09-19
| | | | Uh oh.
* input: use libwaio for pipe input on WindowsGravatar wm42014-09-14
| | | | | | | | | | | | 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 supportGravatar wm42014-09-11
| | | | | | | | | | | | | | 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.
* build: fix everythingGravatar wm42014-09-10
| | | | A missing dependency entry made ./waf configure always fail.
* input: remove central select() callGravatar wm42014-09-10
| | | | | This is now unused. Get rid of it and all surrounding infrastructure, and replace the remaining "wakeup pipe" with a semaphore.
* vo_corevideo: remove this VOGravatar Stefano Pigozzi2014-09-06
| | | | | | | This was kept in the codebase because it is slightly faster than --vo=opengl on really old Intel cards (from the GMA era). Time to kill it, and let it rest. Fixes #1061
* build: handle insane libavcodec API bullshitGravatar wm42014-09-05
| | | | | | | | | | | | | | | | | | | | | 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 defaultGravatar wm42014-08-21
| | | | If nobody complains soon enough, I will remove the code completely.
* x11: listen to xrandr eventsGravatar wm42014-08-17
| | | | | | | | | | | 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.