summaryrefslogtreecommitdiffstats
path: root/wscript
Commit message (Collapse)AuthorAgeFilesLines
* build: allow to disable building the cplayerStefano Pigozzi2014-08-061-0/+4
|
* build: expose waf variants to the userStefano Pigozzi2014-08-061-0/+27
| | | | | This allows the user to execute multiple configuration and build steps. It can be used for several scenarios where you need different compiler flags.
* build: cocoa-application config targetFRAU KOUJIRO2014-08-061-11/+23
| | | | | I had to put it after video options because it depends on cocoa; is there anywhere better to put it rather than making a new group?
* build: list exported symbols explicitlywm42014-08-051-3/+1
| | | | | | | | | | | Instead of using a regex to match names to be exported from the libmpv dynamic shared library, use a libmpv.def file, which lists all exported functions explicitly. This reduces the platform specifics in syms.py. I'm not sure if the separate compile_sym task is still needed (it could probably be collapsed, which would concentrate the platform specifics into one place).
* build: fix cross-compilation of libmpvwm42014-08-051-1/+3
| | | | | | | libmpv requires nm for creating the list of exported symbols (this is done in syms.py). We should probably just make this list static instead, but since this involves platform-specific code, for now this quick-fix will do.
* vda: only support the new hwaccel 1.2 API (remove old code)Stefano Pigozzi2014-08-011-16/+2
| | | | | | | | | Since the new hwaccel API is now merged in ffmpeg's stable release, we can finally remove support for the old API. I pretty much kept lu_zero's new code unchanged and just added some error printing (that we had with the old glue code) to make the life of our users less miserable.
* 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'
* build: enable compiler optimization by defaultTsukasa OMOTO2014-07-201-0/+9
|
* Revert "Remove DVD and Bluray support"wm42014-07-151-0/+13
| | | | | | This reverts commit 4b93210e0c244a65ef10a566abed2ad25ecaf9a1. *shrug*
* Remove DVD and Bluray supportwm42014-07-141-13/+0
| | | | It never worked well. Just remux your DVD and BD images to mkv.
* build: allow compilation without any atomicswm42014-07-051-4/+7
| | | | | | | | | | | | | | | | | | | Not all compilers on all platforms have atomics available (even if they could, technically speaking). We don't use atomics that much, only the following things rely on it: 1. the audio pull code, and all audio outputs using it 2. updating global msg levels 3. reading log messages through the client API Just disable 1. and 3. if atomics are not available. For 2., using fake- atomics isn't too bad; at worst, message levels won't properly update under certain situations (but most likely, it will work just fine). This means if atomics are not available, the client API function mpv_request_log_messages() will do nothing. CC: @mpv-player/stable
* video: Add BT.2020-NCL colorspace and transfer functionNiklas Haas2014-06-221-0/+6
| | | | Source: http://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2020-0-201208-I!!PDF-E.pdf
* build: remove BSD-specific /usr/local include path additionswm42014-06-201-8/+0
| | | | | | It seems it's generally cleaner to leave this stuff to the BSDs. Additionally, the NetBSD part wasn't even correct, because it made the compiler prefer the system include path before local include files.
* build: check for 64bit stdatomic.h operations tooAlessandro Ghedini2014-06-171-3/+3
| | | | | 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.
* build: add '--enable-libmpv-static' optionxylosper2014-06-161-1/+7
| | | | Signed-off-by: wm4 <wm4@nowhere>
* build: disable zsh completions by default, fixes e.g. cross compilationwm42014-06-091-0/+1
| | | | | | | | The Perl script generating the completions actually invokes mpv, and it runs during the build. This is not sane and breaks at least cross compilation. As a workaround, disable the completions by default for now.
* build: generate and install zsh completion scriptAlessandro Ghedini2014-06-081-0/+4
|
* wscript: update waf version check to the version in bootstrap.pywm42014-06-061-1/+1
|
* demux_lavf: support new rotation metadata APIwm42014-06-011-0/+6
|
* stream: remove VCD supportwm42014-06-011-11/+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-5/+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.
* build: disable PortAudio by defaultwm42014-05-291-0/+1
| | | | | | | | | This was originally added because we thought this would make a good portable audio API, which would give us good behavior on Windows, Linux, and OSX. But this hope was disappointed: it's not reliable enough (nice deadlocks on Linux when seeking, i.e. resetting the audio device), doesn't have enough features (no channel maps, no digital passthrough), and in general just is not very good.
* build: disable cdda and vcd by defaultwm42014-05-241-1/+3
| | | | | Let's see if anyone complains. cdda is relatively inoffensive, but the vcd code is the definition of ifdef-hell.
* stream_file: readjust some windows ifdefferywm42014-05-241-4/+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.)
* build: "tv-v4l2" needs "tv"wm42014-05-221-0/+1
| | | | Fixes #795.
* Fix the build on OpenBSD and FreeBSDJuan Francisco Cantero Hurtado2014-05-211-1/+1
| | | | | | Without this change, the compiler uses by default the "talloc.h" file installed by the package libtalloc within /usr/local/include. Found and tested on OpenBSD but FreeBSD has the same patch on its ports tree.
* atomics: switch to C11 stdatomic.hwm42014-05-211-3/+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.
* vda: Hwaccel 1.2 supportLuca Barbato2014-05-121-0/+7
| | | | Use the new context and the default functions provided.
* build: bump required libpostproc versionAlessandro Ghedini2014-04-251-1/+1
| | | | | The CPU autodetect feature was added in 52.2.100 and is lacking from the stand-alone version at http://git.videolan.org/?p=libpostproc.git
* Remove CPU detection and inline asm handlingwm42014-04-191-6/+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-18/+2
| | | | | 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/+6
| | | | | | | | 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/+4
| | | | | | | | | | | | 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: bump libbluray minimum versionStefano Pigozzi2014-04-051-1/+1
| | | | | The code uses BD_OVERLAY_HIDE which seems to be available from 0.3.0. Update the pkg-config query.
* build: check if replaygain side data is availableAlessandro Ghedini2014-04-041-0/+6
| | | | | | Signed-off-by: wm4 <wm4@nowhere> old-configure change by wm4.
* build: only check for Linux fstatfs on LinuxJames Ross-Gowan2014-03-171-0/+1
| | | | | | This check incorrectly passed on Cygwin. While Cygwin has the statfs.f_type field, it contains the volume's FileSystemAttributes, which aren't useful for detecting network mounts.
* build: simplify libavfilter configure checkswm42014-03-161-14/+1
| | | | | 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-7/+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-22/+5
| | | | | | | 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-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-7/+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.
* build: make check for BSD fstatfs() a bit more strictwm42014-03-121-1/+1
| | | | | | | | | Linux also has fstatfs(), and the test relied on certain system include files being available on BSD, but not on Linux. It would break if Linux added the missing includes for some reason. Make it a bit stricter, and check for the struct statfs field the code needs.
* stream_file: network file system detection for LinuxPhilip Sequeira2014-03-121-0/+5
| | | | | | Addresses issue #558 on Linux systems. Signed-off-by: wm4 <wm4@nowhere>
* build: rename --enable-shared switchwm42014-03-111-2/+2
| | | | | | | Rename it to --enable-libmpv-shared. The option name didn't really tell much. When we add the possibility to create a static library, it would also be bad if that were named --enable-static (because it would sound like it does what --static-build does).
* build: fix compilation with MinGW-w64Hans-Kristian Arntzen2014-03-091-2/+14
| | | | | | References to WinMM/OLE/UUID were missing. Signed-off-by: wm4 <wm4@nowhere>
* configure: fix typoNyx0uf2014-02-241-1/+1
| | | | When using help, the output for --enable-shared was : `--enable-shared enable enable shared library [disable]`
* stream_file: activate cache with files on network file systemsStefano Pigozzi2014-02-171-0/+5
| | | | | | | | Detected 'protocols' are AFP, nfs, smb and webdav. This can be extended on request. This is currently only implemented for BSD systems (using fstatfs). This addresses issue #558 on the above platforms.
* build: bump libmpg123 versionwm42014-02-131-1/+1
| | | | | | | | | The minimum required version was bumped in the old configure script, but for the waf build system is was somehow forgotten or overlooked. Probably happened while the waf build system was developed in a separate branch. Closes #546.
* Add a client API examplewm42014-02-101-0/+5
|
* build: add option to build a librarywm42014-02-101-0/+7
| | | | | | | | | | | | | This library will export the client API functions. Note that this doesn't allow compiling the command line player to link against this library yet. The reason is that there's lots of weird stuff required to setup the execution environment (mostly Windows and OSX specifics), as well as things which are out of scope of the client API and every application has to do on its own. However, since the mpv command line player basically reuses functions from the mpv core to implement these things, it's not very easy to separate the command line player form the mpv core.
* demux_lavf: get updated metadata from a packet if availableBen Boeckel2014-02-061-0/+6
| | | | The side_data type is brand new in ffmpeg.
* wayland: change minimum versionAlexander Preisinger2014-02-021-2/+2
| | | | | Change minimum version to 1.3 and remove the version checking in the source code.
* waf: rename --enable-sdl to --enable-sdl1wm42014-01-251-1/+1
| | | | Grossly misleading.
* Detect Lua on FreeBSDGrzegorz Blach2014-01-151-1/+1
|
* Switch PDF manual generation to rst2pdfMartin Herkt2014-01-081-4/+2
| | | | | | | 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: don't depend on both libavresample and libswresamplewm42014-01-051-0/+1
| | | | | | When both libavresample and libswresample were detected, the script enabled both at the same time. This is not supported; although nothing bad happened apparently. Make the dependencies both mutually exclusive.
* build: fix cocoa configure check on OS X 10.7Stefano Pigozzi2014-01-021-5/+1
| | | | | It failed because the 10.7 SDK doesn't natively support array and dictionary subscripting.
* build: fix typoStefano Pigozzi2014-01-011-1/+1
|
* build: make configure fail if both __atomic and __sync are not availableStefano Pigozzi2014-01-011-2/+16
|
* build: check for libatomic and __atomic operationsAlessandro Ghedini2013-12-311-0/+7
| | | | | | 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 <stefano.pigozzi@gmail.com>
* build: add flag for inline assemblyStefano Pigozzi2013-12-291-0/+5
| | | | | This is used to disable inline assembly (useful for old version of binutils like the one in OpenBSD).
* build: disable SDL by defaultStefano Pigozzi2013-12-291-2/+4
| | | | old-configure already behaves like this. Adapt wscript to the same default.
* build: fix shm detection on OpenBSDStefano Pigozzi2013-12-261-1/+1
| | | | Fixes #427
* input: remove LIRCCD supportwm42013-12-161-4/+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.
* build: dvdnav needs dvdreadNikoli2013-12-131-0/+1
|
* Add prelimimary (basic, possibly broken) dvdnav supportwm4