summaryrefslogtreecommitdiffstats
path: root/configure
Commit message (Collapse)AuthorAgeFilesLines
* 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 libavformat to stream_lavf.c.
* Remove internal network supportwm42013-07-071-190/+0
| | | | | | | | | | | This commit removes the "old" networking code in favor of libavformat's code. The code was still used for mp_http, udp, ftp, cddb. http has been mapped to libavformat's http support since approximately 6 months ago. udp and ftp have support in ffmpeg (though ftp was added only last month). cddb support is removed with this commit - it's probably not important and rarely used if at all, so we don't care about it.
* configure: rename --enable/disable-libquvi to --enable/disable-libquvi4wm42013-07-051-15/+15
| | | | | | | --disable-libquvi creates the impression that it disables libquvi 0.9 as well. It doesn't, because it refers to libquvi 0.4, and 0.4 and 0.9 are practically completely different libraries. Make this more explicit by renaming the switch to include the "4" version number.
* configure: prefer libquvi 0.4.x over libquvi 0.9.xwm42013-06-281-18/+18
| | | | Because 0.4.x is the current series of stable releases.
* core: add libquvi 0.9 supportwm42013-06-281-0/+25
| | | | | | | | | | | | | This adds support for libquvi 0.9.x, and these features: - start time (part of youtube URL) - youtube subtitles - alternative source switching ('l' and 'L' keys) - youtube playlists Note that libquvi 0.9 is still in development. Although this seems to be API stable now, it looks like there will be a 1.0 release, which is supposed to be the next stable release and the actual successor of libquvi 0.4.x.
* configure: fix wasapi0 checksJames Ross-Gowan2013-06-261-6/+6
|
* Merge branch 'sub_mess2'wm42013-06-251-0/+21
|\ | | | | | | ...the return.
| * sub: libguess support for -subcpwm42013-06-251-0/+21
| | | | | | | | Actually this is rather disappointing.
* | configure: cocoa: link to libarcliteStefano Pigozzi2013-06-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | libarclite provides method stubs for the Subscripting headers added in 0407869ae3. This allows to correclty build mpv on OSX 10.7 (I had tested that commit with OSX 10.8 running 10.7 SDK). It seems on 10.8 this option does't make any difference in the linked libraries (checked with otool -L) so I just add it unconditionally. Warning: This doesn't mean mpv moved to ARC. To do that one would have to add `-fobjc-arc` to the cflags.
* | ao_wasapi0: add new wasapi event mode aoJonathan Yong2013-06-181-1/+47
| |
* | configure: remove redundant WINVER setJonathan Yong2013-06-181-1/+1
| |
* | osdep: remove shmem wrapperwm42013-06-181-3/+0
|/ | | | This is unused now that the cache is always threaded.
* configure: make check for stream cache verbosewm42013-06-161-0/+2
| | | | | Also add a minor comment about the stream cache needing pthreads now to DOCS/crosscompile-mingw.txt.
* cache: use threads instead of fork()wm42013-06-161-4/+5
| | | | | | | | | | | | | | | | | | | Basically rewrite all the code supporting the cache (i.e. anything other than the ringbuffer logic). The underlying design is untouched. Note that the old cache2.c (on which this code is based) already had a threading implementation. This was mostly unused on Linux, and had some problems, such as using shared volatile variables for communication and uninterruptible timeouts, instead of using locks for synchronization. This commit does use proper locking, while still retaining the way the old cache worked. It's basically a big refactor. Simplify the code too. Since we don't need to copy stream ctrl args anymore (we're always guaranteed a shared address space now), lots of annoying code just goes away. Likewise, we don't need to care about sector sizes. The cache uses the high-level stream API to read from other streams, and sector sizes are handled transparently.
* cache: make the stream cache a proper stream that wraps other streamswm42013-06-161-9/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this commit, the cache was franken-hacked on top of the stream API. You had to use special functions (like cache_stream_fill_buffer() instead of stream_fill_buffer()), which would access the stream in a cached manner. The whole idea about the previous design was that the cache runs in a thread or in a forked process, while the cache awa functions made sure the stream instance looked consistent to the user. If you used the normal functions instead of the special ones while the cache was running, you were out of luck. Make it a bit more reasonable by turning the cache into a stream on its own. This makes it behave exactly like a normal stream. The stream callbacks call into the original (uncached) stream to do work. No special cache functions or redirections are needed. The only different thing about cache streams is that they are created by special functions, instead of being part of the auto_open_streams[] array. To make things simpler, remove the threading implementation, which was messed into the code. The threading code could perhaps be kept, but I don't really want to have to worry about this special case. A proper threaded implementation will be added later. Remove the cache enabling code from stream_radio.c. Since enabling the cache involves replacing the old stream with a new one, the code as-is can't be kept. It would be easily possible to enable the cache by requesting a cache size (which is also much simpler). But nobody uses stream_radio.c and I can't even test this thing, and the cache is probably not really important for it either.
* sd_lavc_conv: add hack if AV_CODEC_PROP_TEXT_SUB is not availablewm42013-06-031-0/+12
| | | | | | | Otherwise this could happily open decoders for image subtitles or even audio/video decoders. AV_CODEC_PROP_TEXT_SUB is a preprocessor symbol, but it's still better to detect this properly instead of using #ifdef, because these flags might as well be changed into enums sooner or later.
* af_lavfi: add libavfilter bridgewm42013-05-231-0/+31
| | | | | | | | | | | | | | | | | | | | | Mostly copied from vf_lavfi. The parts that could be shared are minor, because most code is about setting up audio and video, which are too different. This won't work with Libav. I used ffplay.c as guide, and noticed too late that their setup methods are incompatible with Libav's. Trying to make it work with both would be too much effort. The configure test for av_opt_set_int_list() should disable af_lavfi gracefully when compiling with Libav. Due to option parser chaos, you currently can't have a "," as part of the filter graph string - not even with quoting or escaping. This will probably be fixed later. The audio filter chain is not PTS aware. So we have to do some hacks to make up a fake PTS, and we have to map the output PTS back to the filter chain's method of tracking PTS changes and buffering, by adjusting af->delay.
* configure: map --enable-sdl2 to autodetectionStephen Hutchinson2013-05-211-2/+2
| | | | | | | | | | | | | Commit 02bbd87b disabled SDL linking by default. This commit followed the ancient mplayer convention of disabling detection of compiler flags with --enable-* switches. Unfortunately, this makes compiling with SDL enabled a pain. Make --enable-sdl/sdl2 use autodetection, even if it's inconsistent with most other --enable-* switches. The same is already done for --enable-openal, though. Based on a pull request by qyot27.
* configure: reject older libswresamplewm42013-05-191-2/+2
| | | | | | | | | | | mpv still builds with ffmpeg 1.0.x, however libswresample keeps cuasing trouble. In older releases, libswresample simply crashed when downmixing. In somewhat newer versions, it produces distorted output and downmixing isn't even close to correct. With ffmpeg release 1.1 (ffmpeg git tag n1.1), everything seems to work fine. The release uses 0.17.102 as libswresample version, so bump the required minimum version to that.
* audio: fix compilation with older libavresample versionswm42013-05-131-0/+18
| | | | | | | | | | | | | | The libavresample version of the current Libav stable release lacks the avresample_set_channel_mapping() function. (FFmpeg's libswresample seems to be fine, because they added swr_set_channel_mapping() first.) Add a cheap/slow workaround to do channel reordering on our own. We don't use the recently removed MPlayer code (see commit 586b75a), because that is not generic enough. The functionality should be the same as with full-featured libavresample, and any differences are bugs. It's probably slower, though.
* OSX: use native Cocoa's event loopStefano Pigozzi2013-05-121-16/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Schedule mpv's playloop as a high frequency timer inside the main Cocoa event loop. This has the benefit to allow accessing menus as well as resizing the window without the playback being blocked and allows to remove countless hacks from the code that involved manually pumping the event loop as well simulating manually some of the Cocoa default behaviours. A huge improvement consists in removing NSApplicationLoad. This is a C function defined in the Cocoa header and implements a minimal OSX application under ther hood so that you can use the Cocoa GUI toolkit from C/C++ without having to respect the Cocoa standards in terms of application initialization. This was bad because the behaviour implemented by NSApplicationLoad was hard to customize and had several gotchas especially in the menu department. mpv was changed to be just a nib-less application. All the Cocoa part is still generated in code but the event handling is now not dissimilar to what is present in a stock Mac application. As a part of reviewing the initialization process, I also removed all of `osdep/macosx_finder_args`. The useful parts of the code were moved to `osdep/macosx_appication` which has the broaded responsibility of managing the full lifecycle of the Cocoa application. By consequence the `--enable-macosx-finder` configure switch was killed as well, as this feature is always enabled. Another change the users will notice is that when using a bundle the `--quiet` option will be inserted much earlier in the initializaion process. This results in mpv not spamming mpv.log anymore with all the initialization outputs.
* For now, disable autodetection of sdl/sdl2Rudolf Polzer2013-05-111-4/+4
| | | | | | | | This is done because statically linked SDL libraries are incompatible with direct X11 function use (e.g. vo_x11, vo_gl etc.) because of clashing symbol names. http://bugzilla.libsdl.org/show_bug.cgi?id=1828
* wayland: use new function xkb_keymap_from_bufferAlexander Preisinger2013-05-021-1/+1
| | | | | | Bump xkbcommon version and use the new xkb_keymap_from_buffer. This is more secure, because the from_string expects a 0 terminated string, but this cannot be guaranteed with mmap.
* x11: use mpv internal key auto-repeat handling if possiblewm42013-04-241-1/+1
| | | | | | | | | | | | | | | | | Block X11's native key repeat, and use mpv's key repeat handling in input.c instead. No configure check for XKB. Even though it's an extension, it has been part of most (all?) xlibs since 1996. If XKB appears to be missing, just refuse enabling x11. This is a potentially controversial change. mpv will use its own key repeat rate, instead of X11's. This should be better, because seeking will have a standardized "speed" (seek events per seconds when keeping a seek key held down). It will also allow disabling key repears for certain commands, though this is not done anywhere yet. The new behavior can be disabled with the --native-keyrepeat option.
* configure: enable libavdevice by defaultwm42013-04-231-2/+3
| | | | | | | | | Used to be disabled by default, because libavdevice depends on libavfilter, and earlier versions of libavfilter exports symbols that clash with mpv's due to its MPlayer filter wrapper. Our configure script explicitly detects these symbols now, and we can use that to safely auto-detect libavdevice too. If we detect that libavfilter can't be safely used, libavdevice is disabled as well.
* vf_lavfi: add libavfilter bridgewm42013-04-211-5/+44
| | | | | | | | | | | | | | | | | Requires recent FFmpeg/Libav git versions. Earlier versions will not be supported, as the API is different. (A libavfilter version that uses AVFrame instead of AVFilterBuffer is needed.) Note that this is sort of useless, because the option parser prevents you from making use of the full libavfilter graph syntax. This has to be fixed later. Most of the filter creation code (half of the config() function) has been taken from avplay.c. This code is not based on MPlayer's vf_lavfi. The MPlayer code doesn't compile as it hasn't been updated through multiple libavfilter API changes, making it completely useless as a starting point.
* configure: add -mconsole on MinGWwm42013-04-101-1/+6
| | | | | | | | | At least libsdl adds -mwindows to the cflags, which marks the .exe binary as GUI application. This means the program detaches from the console when started in cmd.exe, instead of showing the playback status, receiving console input, and so on. Append -mconsole to the linker command line to disable -mwindows.
* vcd_read_win32.h: fix compilation on MinGW-w64Stephen Hutchinson2013-04-061-1/+1
| | | | | | | ntddcdrm.h is no longer under the 'ddk' directory in MinGW-w64, and since MPV focuses on it instead of the old MinGW32, there's no reason to keep that dir prefix, as it stops VCD support from being built at all for Windows.
* configure: fix compilation on Linuxwm42013-03-311-0/+1
| | | | This line was accidentally removed by the previous commit.
* remove Apple Remote related codeStefano Pigozzi2013-03-311-65/+0
| | | | | | | | | | | | | | | | The OSX part of the Apple Remote was unmaintained for a long time and was not working anymore. I tried to update the cookies to what the current versions of OS X expect without much luck. I decided to remove it since Apple is not including the IR receiver anymore in new hardware and it's clear that wifi based remotes are the way to go. A third party iOS app should be used in it's place. In the future we could look into having a dedicated iOS Remote Control app like VLC and XBMC do. The Linux side (`appleir.c`) was relatively tidy but it looks like LIRC can be configured to work with any version of Apple Remote [1] and is more maintained. [1] LIRC Apple Remote configs: http://lirc.sourceforge.net/remotes/apple/
* configure: fix OpenGL autodetection on OS XStefano Pigozzi2013-03-241-0/+9
| | | | | Was broken from 746b5e6 since the OpenGL headers are under OpenGL/ and not GL/ on OS X. Thanks to @Kovensky for the initial patch.
* configure: check for presence of glext.hKovensky2013-03-231-0/+12
| | | | | | vo_opengl depends on glext.h to build. Also link to Khronos' copy, which should work on all compilers and is kept up-to-date with newer extensions.
* video: use new method to get QP tablewm42013-03-151-0/+12
| | | | | | | | | | | | | | | | | | | | This only matters for those who want to use vf_pp. The old API is marked as deprecated, and doesn't work on Libav. It was broken on FFmpeg, but has recently started working again - the fields in question were not un- deprecated though. Instead you're supposed to use a new API, which does exactly the same thing (what...?). Also don't