summaryrefslogtreecommitdiffstats
path: root/configure
Commit message (Collapse)AuthorAgeFilesLines
* switch the build system to wafStefano Pigozzi2013-11-211-3620/+0
| | | | | | | | | | | | | | | | | | | | | | | 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 README.md 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.
* configure: enable v4l2 input on freebsdbugmen0t2013-11-131-2/+4
|
* tvi_v4l2: let libv4l2 convert to a known pixel formatbugmen0t2013-11-131-0/+19
| | | | | | | | | | | Signed-off-by: wm4 <wm4@nowhere> Significant modifications over the original patch by not overriding syscalls with macros ("#define open v4l2open") for fallback, but the other way around ("#define v4l2open open"). As consequence, the calls have to be replaced throughout the file. Untested, although the original patch probably was tested.
* Merge branch 'planar_audio'wm42013-11-121-3/+1
|\ | | | | | | | | Conflicts: audio/out/ao_lavc.c
| * ad_mpg123: reduce ifdefferywm42013-11-121-3/+1
| | | | | | | | Drop support for anything before 1.14.0.
* | demux: kill libmng supportwm42013-11-111-19/+0
|/ | | | It's a dead format that was never used anywhere.
* vo_opengl: support for vdpau hardware decodingwm42013-11-051-0/+12
| | | | | | | | | | | | This uses vdpau OpenGL interop to convert a vdpau surface to a texture. Note that this is a bit weak and primitive. Deinterlacing (or any other form of vdpau postprocessing) is not supported. vo_opengl chroma scaling and chroma sample position are not supported. Internally, the vdpau video surfaces are converted to a RGBA surface first, because using the video surfaces directly is too complicated. (These surfaces are always split into separate fields, and the vo_opengl core expects progressive frames or frames with weaved fields.)
* Adjust wayland definesPaweł Forysiuk2013-11-041-2/+2
|
* fix HAVE_PTHREADS being undefined on windowswm42013-11-041-0/+1
|
* fix HAVE_JACK being undefinedwm42013-11-041-0/+1
| | | | Holy inconsistency, let's just kill it with waf.
* define HAVE_COREAUDIO on platforms other than OSXwm42013-11-041-0/+1
|
* Merge branch 'master' into have_configurewm42013-11-041-1/+11
|\ | | | | | | | | Conflicts: configure
| * vo_opengl: add support for VA-API OpenGL interopwm42013-11-041-1/+11
| | | | | | | | | | | | | | | | VA-API's OpenGL/GLX interop is pretty bad and perhaps slow (renders a X11 pixmap into a FBO, and has to go over X11, probably involves one or more copies), and this code serves more as an example, rather than for serious use. On the other hand, this might be work much better than vo_vaapi, even if slightly slower.
* | configure: uniform the defines to #define HAVE_xxx (0|1)Stefano Pigozzi2013-11-031-171/+199
|/ | | | | | | | | | | | | | | | | | | | | The configure followed 5 different convetions of defines because the next guy always wanted to introduce a new better way to uniform it[1]. For an hypothetic feature 'hurr' you could have had: * #define HAVE_HURR 1 / #undef HAVE_DURR * #define HAVE_HURR / #undef HAVE_DURR * #define CONFIG_HURR 1 / #undef CONFIG_DURR * #define HAVE_HURR 1 / #define HAVE_DURR 0 * #define CONFIG_HURR 1 / #define CONFIG_DURR 0 All is now uniform and uses: * #define HAVE_HURR 1 * #define HAVE_DURR 0 We like definining to 0 as opposed to `undef` bcause it can help spot typos and is very helpful when doing big reorganizations in the code. [1]: http://xkcd.com/927/ related
* Enable -Wshadowwm42013-11-011-2/+2
| | | | | | | | | This one really did bite me hard (see previous commit), so enable it by default. Fix some cases of shadowing throughout the codebase. None of these change behavior, and all of these were correct code, and just tripped up the warning.
* configure: use pkg-config for libsmbclientwm42013-10-191-10/+5
| | | | Apparently, Samba has .pc files now.
* mp_msg: remove gettext() supportwm42013-10-181-24/+0
| | | | | | | | | Was disabled by default, was never used, internal support was inconsistent and poor, and there has been virtually no interest in creating translations. And I don't even think that a terminal program should be translated. This is something for (hypothetical) GUIs.
* audio/out: add sndio supportChristian Neukirchen2013-10-031-0/+23
| | | | Based on an earlier patch for mplayer by Alexandre Ratchov <alex@caoua.org>
* Add initial Lua scripting supportwm42013-09-261-0/+114
| | | | | | | | | | | | | | | | | | | | | | This is preliminary. There are still tons of issues, and any aspect of scripting may change in the future. I decided to merge this (preliminary) work now because it makes it easier to develop it, not because it's done. lua.rst is clear enough about it (plus some sarcasm). This requires linking to Lua. Lua has no official pkg-config file, but there are distribution specific .pc files, all with different names. Adding a non-pkg-config based configure test was considered, but we'd rather not. One major complication is that libquvi links against Lua too, and if the Lua version is different from mpv's, you will get a crash as soon as libquvi uses Lua. (libquvi by design always runs when a file is opened.) I would consider this the problem of distros and whoever builds mpv, but to make things easier for users, we add a terrible runtime test to the configure script, which probes whether libquvi will crash. This is disabled when cross-compiling, but in that case we hope the user knows what he is doing.
* configure: make the pdflatex check use the tempdirMartin Herkt2013-09-251-2/+1
|
* configure: improve pdflatex checkMartin Herkt2013-09-251-2/+6
|
* vaapi: add vf_vavpp and use it for deinterlacingxylosper2013-09-251-0/+13
| | | | | | | | Merged from pull request #246 by xylosper. Minor cosmetic changes, some adjustments (compatibility with older libva versions), and manpage additions by wm4. Signed-off-by: wm4 <wm4@nowhere>
* install: don’t force append /mpv to docdirMartin Herkt2013-09-231-2/+2
|
* macosx: always active bundle path lookup if cocoa is activeStefano Pigozzi2013-09-121-18/+0
| | | | | This is not really something you want to disable anyway. If there is no bundle the code already does it's falbacks anyway.
* Add PDF manual targetMartin Herkt2013-09-091-0/+27
| | | | | | This builds a PDF version of the manpage using rst2latex and pdflatex, and installs it to PREFIX/share/doc/mpv by default.
* configure: build with wayland 1.2.0Alexander Preisinger2013-09-031-1/+1
| | | | | For the time being there will be a check if someone uses wayland from git, because I really really like to have the others formats too.
* configure: improve wayland checkAlexander Preisinger2013-09-031-12/+6
|
* configure: fix some descriptions in the help outputwm42013-09-011-4/+4
|
* configure: fix build with stable wayland releasesAlexander Preisinger2013-08-281-2/+10
|
* configure: fix VDA autodetection based on FFmpeg supportStefano Pigozzi2013-08-261-1/+2
| | | | | | The original condition was too weak, requiring only the header. The header is installed is FFmpeg regardless of the presence of VDA on the system, so just perform a check on the `ff_vda_create_decoder` function.
* configure: move wayland-egl checkAlexander Preisinger2013-08-261-2/+3
| | | | | This makes it possible to build the shm backend when no EGL platform is available.
* wayland: shm based software renderingAlexander Preisinger2013-08-251-1/+6
| | | | | | | | | | | | | | | | | | | | A wayland output based on shared memory. This video output is useful for x11 free systems, because the current libGL in mesa provides GLX symbols. It is also useful for embedded systems where the wayland backend for EGL is not implemented like the raspberry pi. At the moment only rgb formats are supported, because there is still no compositor which supports planar formats like yuv420p. The most used compositor at the moment, weston, supports only BGR0, BGRA and BGR16 (565). The BGR16 format is the fastest to convert and render without any noticeable differences to the BGR32 formats. For this reason the current (very basic) auto-detection code will prefer the BGR16 format. Also the weston source code indicates that the preferred format is BGR16 (RGB565). There are 2 options: * default-format (yes|no) Which uses the BGR32 format * alpha (yes|no) For outputting images and videos with transparencies
* configure: fix help for macosx-bundle from autodetected to disabledStefano Pigozzi2013-08-251-5/+4
| | | | | The help and configure result wrongly showed this feature was autodetected, while it is infact disabled by default.
* configure: fix VDA warning on systems other than OSXwm42013-08-241-0/+1
| | | | | CONFIG_VDA is supposed to be defined to 0 or 1. But on non-OSX systems, the configure test isn't run at all, so CONFIG_VDA ends up undefined.
* video: add vda decode support (with hwaccel) and direct renderingStefano Pigozzi2013-08-221-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Decoding H264 using Video Decode Acceleration used the custom 'vda_h264_dec' decoder in FFmpeg. The Good: This new implementation has some advantages over the previous one: - It works with Libav: vda_h264_dec never got into Libav since they prefer client applications to use the hwaccel API. - It is way more efficient: in my tests this implementation yields a reduction of CPU usage of roughly ~50% compared to using `vda_h264_dec` and ~65-75% compared to h264 software decoding. This is mainly because `vo_corevideo` was adapted to perform direct rendering of the `CVPixelBufferRefs` created by the Video Decode Acceleration API Framework. The Bad: - `vo_corevideo` is required to use VDA decoding acceleration. - only works with versions of ffmpeg/libav new enough (needs reference refcounting). That is FFmpeg 2.0+ and Libav's git master currently. The Ugly: VDA was hardcoded to use UYVY (2vuy) for the uploaded video texture. One one end this makes the code simple since Apple's OpenGL implementation actually supports this out of the box. It would be nice to support other output image formats and choose the best format depending on the input, or at least making it configurable. My tests indicate that CPU usage actually increases with a 420p IMGFMT output which is not what I would have expected. NOTE: There is a small memory leak with old versions of FFmpeg and with Libav since the CVPixelBufferRef is not automatically released when the AVFrame is deallocated. This can cause leaks inside libavcodec for decoded frames that are discarded before mpv wraps them inside a refcounted mp_image (this only happens on seeks). For frames that enter mpv's refcounting facilities, this is not a problem since we rewrap the CVPixelBufferRef in our mp_image that properly forwards CVPixelBufferRetain/CvPixelBufferRelease calls to the underying CVPixelBufferRef. So, for FFmpeg use something more recent than `b3d63995` for Libav the patch was posted to the dev ML in July and in review since, apparently, the proposed fix is rather hacky.
* sd_lavc_conv: don't check AV_CODEC_PROP_TEXT_SUB flagwm42013-08-151-11/+0
| | | | | | | | Not actually useful. This would break whenever a new text subtitle format would be added, which requires a binary->text transformation. (mov_text is one such format; disable it.) In general, we would have to know which packet formats are binary, which we don't, so the only reasonable way to handle this is a white list.
* configure: fix typowm42013-08-121-1/+1
|
* video: add vaapi decode and output supportwm42013-08-121-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is based on the MPlayer VA API patches. To be exact it's based on a very stripped down version of commit f1ad459a263f8537f6c from git://gitorious.org/vaapi/mplayer.git. This doesn't contain useless things like benchmarking hacks and the demo code for GLX interop. Also, unlike in the original patch, decoding and video output are split into separate source files (the separation between decoding and display also makes pixel format hacks unnecessary). On the other hand, some features not present in the original patch were added, like screenshot support. VA API is rather bad for actual video output. Dealing with older libva versions or the completely broken vdpau backend doesn't help. OSD is low quality and should be rather slow. In some cases, only either OSD or subtitles can be shown at the same time (because OSD is drawn first, OSD is prefered). Also, libva can't decide whether it accepts straight or premultiplied alpha for OSD sub-pictures: the vdpau backend seems to assume premultiplied, while a native vaapi driver uses straight. So I picked straight alpha. It doesn't matter much, because the blending code for straight alpha I added to img_convert.c is probably buggy, and ASS subtitles might be blended incorrectly. Really good video output with VA API would probably use OpenGL and the GL interop features, but at this point you might just use vo_opengl. (Patches for making HW decoding with vo_opengl have a chance of being accepted.) Despite these issues, decoding seems to work ok. I still got tearing on the Intel system I tested (Intel(R) Core(TM) i3-2350M). It was also tested with the vdpau vaapi wrapper on a nvidia system; however this was rather broken. (Fortunately, there is no reason to use mpv's VAAPI support over native VDPAU.)
* configure: lower libdvdread minimum required versionwm42013-08-021-1/+1
| | | | | | | | | This version number was essentially random. When I switched the test to pkg-config, I took the libdvdread version from my Debian unstable system as the minimum (as I knew that this version worked). A user reported that the libdvdread version 4.1.4 appeared to work fine, so lower the minimum version to the 4.1.x series.
* configure: fix vdpau test if vdpau is disabled/unavailablewm42013-07-301-5/+8
| | | | | | | | | The check for HAVE_AV_CODEC_NEW_VDPAU_API just determines whether the new vdpau libavutil pixel format is available (which implies presence of the new API). However, that pixel format (and the correspondig config test define) is also used in generic code (compiled even without vdpau) in fmt-conversion.c. Since the configure test didn't define the symbol if vdpau was not available, it broke in this case.
* vdpau: split off decoder parts, use "new" libavcodec vdpau hwaccel APIwm42013-07-281-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move the decoder parts from vo_vdpau.c to a new file vdpau_old.c. This file is named so because because it's written against the "old" libavcodec vdpau pseudo-decoder (e.g. "h264_vdpau"). Add support for the "new" libavcodec vdpau support. This was recently added and replaces the "old" vdpau parts. (In fact, Libav is about to deprecate and remove the "old" API without deprecation grace period, so we have to support it now. Moreover, there will probably be no Libav release which supports both, so the transition is even less smooth than we could hope, and we have to support both the old and new API.) Whether the old or new API is used is checked by a configure test: if the new API is found, it is used, otherwise the old API is assumed. Some details might be handled differently. Especially display preemption is a bit problematic with the "new" libavcodec vdpau support: it wants to keep a pointer to a specific vdpau API function (which can be driver specific, because preemption might switch drivers). Also, surface IDs are now directly stored in AVFrames (and mp_images), so they can't be forced to VDP_INVALID_HANDLE on preemption. (This changes even with older libavcodec versions, because mp_image always uses the newer representation to make vo_vdpau.c simpler.) Decoder initialization in the new code tries to deal with codec profiles, while the old code always uses the highest profile per codec. Surface allocation changes. Since the decoder won't call config() in vo_vdpau.c on video size change anymore, we allow allocating surfaces of arbitrary size instead of locking it to what the VO was configured. The non-hwdec code also has slightly different allocation behavior now. Enabling the old vdpau special decoders via e.g. --vd=lavc:h264_vdpau doesn't work anymore (a warning suggesting the --hwdec option is printed instead).
* configure: fix terminfo checkwm42013-07-261-1/+1
| | | | | | On Linux, the check fails because NULL is not defined. Fix by using 0 instead, which is a perfectly valid null pointer constant, but doesn't require stddef.h.
* video: support setting libswscale chroma positionwm42013-07-251-0/+12
|
* configure: Fix bad variable assignmentDiogo Franco (Kovensky)2013-07-251-1/+1
| | | | Bourne shell hates having spaces before or after the = sign.
* getch2: Refactor/rewriteDiogo Franco (Kovensky)2013-07-251-0/+26
| | | | | | | | | | | | | | | | | | | | | | Still uses termcap, but uses terminfo for loading the termcap database if possible. Adds configure test to find terminfo; skips the termcap test if terminfo is found since terminfo provides termcap. Use termcap completely for special keys; if we can't get it from termcap and it isn't one of the known fallbacks, we ignore its specialness and treat as a sequence of UTF-8 codes. Further hardcoded fallbacks can be added by calling keys_push_once in load_termcap; there is no limit to the amount of keys pushed. Uses the "ke" and "ks" capabilities to start / exit application mode, which is necessary on vt100 emulators (including screen, xterm and all terminals that emulate either of those) to correctly receive arrow keys. It's now possible to compile getch2 even without termcap, though it won't be of much use since it'll be unable to detect special keys. Converted to 4 spaces per tab, prettified some statements.
* ao_wasapi0: Rename to ao_wasapiDiogo Franco (Kovensky)2013-07-221-15/+15
| | | | | Nobody knows what the 0 was for. There's no "WASAPI version 0". Just take it out.
* configure: Add some -Wno-error= flags to ERRORFLAGSDiogo Franco (Kovensky)2013-07-211-2/+2
| | | | | -Wno-error=deprecated-declarations and -Wno-error=unused-function. Lets mpv compile with --extra-cflags=-Werror with gcc 4.8.1.
* Use /dev/cd0 as default cdrom device on FreeBSDGrzegorz Blach2013-07-161-1/+1
|
* configure: add /usr/local on FreeBSD, also NetBSD/DragonFlywm42013-07-151-0/+10
| | | | | | In my opinion this should be unneeded and unclean, which is why I removed it some time ago. But apparently this is a convenience for BSD users (so they don't have to use --extra-cflags), so add it back.
* configure: fix vcd detection on WindowsJonathan Yong2013-07-131-1/+1
|
* build: change vf_dlopen testwm42013-07-121-0/+14
| | | | Didn't work on Windows. Apparently, WIN32 is not set in the Makefile.
* build: make the "built on" report opt-outStephen Hutchinson2013-07-111-0/+14
|
* configure: add libdl detection to ladspa, vf_dlopenRudolf Polzer2013-07-091-1/+7
|
* configure: fix oversight in log messagewm42013-07-081-1/+1
|
* configure: make zlib non-optionalwm42013-07-081-1/+1
| | | | | | This is needed by demux_mkv to decode files with compressed tracks. Requested by nikoli.
* configure: fix previous commitwm42013-07-081-1/+1
| | | | | | This doesn't help if -pthread is omitted. (Apparently, glibc 2.17, on which I tested the previous commit, doesn't require -lpthread in order to use pthreads either.)
* configure: link with -lrtwm42013-07-081-0/+16
| | | | | In order to use clock_gettime() (which we need for use with pthread_cond_timedwait()), most glibc versions need to link with -lrt.
* osdep: remove unused mmap compatibility hackswm42013-07-071-7/+0
| | | | | | | Not sure how this worked. Only af_export.c and tvi_v4l2.c were using mmap, but they didn't include osdep/mmap.h or mmap_anon.h. In any case, we trust that the target system is sufficiently POSIX compliant if mmap is actually defined (as checked by configure).
* configure: simplify arch macroswm42013-07-071-33/+12
|
* configure: prune some more crapwm42013-07-071-45/+0
| | | | All of the removed lines are hopefully useless and didn't do anything.
* Remove some leftovers from network removalwm42013-07-071-27/+0
| | | | | | | | stream_vstream.c in particular was actually dependent on the network code, and didn't compile anymore. Cleanup the protocol list in mpv.rst, and add some missing ones supported by lib