summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* vo_opengl: blend-subtitles in non-linear lightNiklas Haas2015-04-041-35/+42
|
* man/vf: update vf_format documentationNiklas Haas2015-04-041-4/+3
| | | | Brings it in line with changes to vo_opengl options.
* vo_opengl: make jinc presets resizableNiklas Haas2015-04-042-9/+6
| | | | No real reason this is disabled with the new configuration API.
* vo_opengl: add scale-wparam optionNiklas Haas2015-04-042-8/+25
| | | | This lets us tune the window parameter
* filter_kernels: add haasnsoftNiklas Haas2015-04-041-0/+4
| | | | | | | This is a peculiar filter I stumbled upon while playing around with windows, it removes aliasing almost completely while not ringing at all. The downside is that it's quite blurry, but at high resolutions it's not so noticeable.
* filter_kernels: remove hermite windowNiklas Haas2015-04-041-1/+0
| | | | Will have to find a source before re-adding.
* filter_kernels: add bartlett, blackman and welch windowsNiklas Haas2015-04-041-1/+17
|
* vo_opengl: refactor scaler configurationNiklas Haas2015-04-045-141/+190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This merges all of the scaler-related options into a single configuration struct, and also cleans up the way they're passed through the code. (For example, the scaler index is no longer threaded through pass_sample, just the scaler configuration itself, and there's no longer duplication of the params etc.) In addition, this commit makes scale-down more principled, and turns it into a scaler in its own right - so there's no longer an ugly separation between scale and scale-down in the code. Finally, the radius stuff has been made more proper - filters always have a radius now (there's no more radius -1), and get a new .resizable attribute instead for when it's tunable. User-visible changes: 1. scale-down has been renamed dscale and now has its own set of config options (dscale-param1, dscale-radius) etc., instead of reusing scale-param1 (which was arguably a bug). 2. The default radius is no longer fixed at 3, but instead uses that filter's preferred radius by default. (Scalers with a default radius other than 3 include sinc, gaussian, box and triangle) 3. scale-radius etc. now goes down to 0.5, rather than 1.0. 0.5 is the smallest radius that theoretically makes sense, and indeed it's used by at least one filter (nearest). Apart from that, it should just be internal changes only. Note that this sets up for the refactor discussed in #1720, which would be to merge scaler and window configurations (include parameters etc.) into a single, simplified string. In the code, this would now basically just mean getting rid of all the OPT_FLOATRANGE etc. lines related to scalers and replacing them by a single function that parses a string and updates the struct scaler_config as appropriate.
* vo_opengl: separate kernel and windowNiklas Haas2015-04-045-156/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes the core much more elegant, reusable, reconfigurable and also allows us to more easily add aliases for specific configurations. Furthermore, this lets us apply a generic blur factor / window function to arbitrary filters, so we can finally "mix and match" in order to fine-tune windowing functions. A few notes are in order: 1. The current system for configuring scalers is ugly and rapidly getting unwieldy. I modified the man page to make it a bit more bearable, but long-term we have to do something about it; especially since.. 2. There's currently no way to affect the blur factor or parameters of the window functions themselves. For example, I can't actually fine-tune the kaiser window's param1, since there's simply no way to do so in the current API - even though filter_kernels.c supports it just fine! 3. This removes some lesser used filters (especially those which are purely window functions to begin with). If anybody asks, you can get eg. the old behavior of scale=hanning by using scale=box:scale-window=hanning:scale-radius=1 (and yes, the result is just as terrible as that sounds - which is why nobody should have been using them in the first place). 4. This changes the semantics of the "triangle" scaler slightly - it now has an arbitrary radius. This can possibly produce weird results for people who were previously using scale-down=triangle, especially if in combination with scale-radius (for the usual upscaling). The correct fix for this is to use scale-down=bilinear_slow instead, which is an alias for triangle at radius 1. In regards to the last point, in future I want to make it so that filters have a filter-specific "preferred radius" (for the ones that are arbitrarily tunable), once the configuration system for filters has been redesigned (in particular in a way that will let us separate scale and scale-down cleanly). That way, "triangle" can simply have the preferred radius of 1 by default, while still being tunable. (Rather than the default radius being hard-coded to 3 always)
* options: fix run length escape case in config file parserwm42015-04-041-2/+2
| | | | Oops.
* options: rewrite config file parserwm42015-04-042-210/+150
| | | | | | | | | | | | | | | | The format doesn't change. Some details are different, though. For example, it will now accept option values with spaces even if they're not quoted. (I see no reason why the user should be forced to add quotes.) The code is now smaller and should be much easier to extend. It also can load config from in-memory buffers, which might be helpful in the future. read_file() should eventually be replaced with stream_read_complete(). But since the latter function may access options under various circumstances, and also needs access to the mpv_global struct, there is a separate implementation for now.
* ao_wasapi: code formatting and alignmentKevin Mitchell2015-04-032-24/+23
|
* audio: make all format query shortcuts macrosKevin Mitchell2015-04-039-25/+15
| | | | | af_fmt_is_float and af_fmt_is_planar were previously inconsistent with AF_FORAMT_IS_SPECIAL/AF_FORMAT_IS_IEC61937
* ao_wasapi: passthrough reworkKevin Mitchell2015-04-032-161/+152
| | | | | | | | | | | | | | | * unify passthrough and pcm exclusive mode format setting/testing * set passthrough format parameters correctly * support all of mpv's existing passthrough formats * automatically test passthrough with exclusive mode and enable exclusive if it succeeds, even if it was not explictly requested. this obviates the need for --ao=wasapi,wasapi=exclusive * if passthrough fails (such as the device doesn't support the format), fallback to either exclusive pcm or shared mode depending on what the user specified. Right now this isn't very useful as it still fails due to the decoder path remainin stuck on spdif. fixes #1742
* vf_format: allow forcing aspect ratiowm42015-04-032-0/+9
| | | | | Makes vf_dsize completely useless. Unfortunately, even our "official" encoding profiles still use it.
* vf_format: allow forcing display sizewm42015-04-032-0/+12
|
* vo_opengl: remove chroma-location suboptionwm42015-04-032-13/+2
| | | | Terribly obscure, and vf_format can do this for all VOs.
* vf_format: allow forcing rotation flagswm42015-04-032-0/+11
|
* vf_format: allow forcing stereo mode parameterswm42015-04-032-0/+16
|
* video: cleanup stereo mode parsingwm42015-04-027-80/+22
| | | | | | | | | Use OPT_CHOICE_C() instead of the custom parser. The functionality is pretty much equivalent. (On a side note, it seems --video-stereo-mode can't be removed, because it controls whether to "reduce" stereo video to mono, which is also the default. In fact I'm not sure how this should be handled at all.)
* player: load .ac3 files as external fileswm42015-04-021-1/+1
| | | | Fixes #1759.
* mpv.desktop: remove NoDisplaywm42015-04-021-1/+0
| | | | | | | | | | The standard say: NoDisplay means "this application exists, but don't display it in the menus". Now that --force-window --idle is enabled, we can remove it. Closes #1755.
* af_lavrresample: always normalize (libswresample is stupid)wm42015-04-021-0/+4
| | | | | | | | | | libswresample doesn't normalize when remixing to a float format. This will cause clipping due to float samples being out of the allowed range. Fortunately this extremely bad default can be changed. This does not happen with libavresample: it normalizes by default. Fixes #1752.
* player: add --idle --keep-open to pseudo-gui profilewm42015-04-021-0/+2
|
* player: add "pseudo-gui" profilewm42015-04-022-1/+9
| | | | | | | | | | | | | | This can be set to select a number of default settings that help mpv pretend that it has a GUI. I haven't decided yet whether I really want to use the profile mechanism for this. There are a number of weird details that are not so easy to handle with profiles, such as disabling pseudo-gui mode again (you can't unset profiles directly). So this might change. But for now it will do. There also should be a better way to store builtin profiles. Unfortunately, the old crappy MPlayer config file parser needs on-disk files, so just use a bunch of function calls for now.
* lua: reject Lua 5.3wm42015-04-012-1/+6
| | | | | | | | | | | | | | It simply doesn't work, and is hard to make work. Lua 5.3 is a different language from 5.1 and 5.2, and is different enough to make adding support a major issue. Most importantly, 5.3 introduced integer types, which completely mess up any code which deals with numbers. I tried to make this a compile time check, but failed. Still at least try to avoid selecting the 5.3 pkg-config package when the generic "lua" name is used (why can't Lua upstream just provide an official .pc file...). Maybe this actually covers all cases. Fixes #1729 (kind of).
* sub: add --sub-text-bold optionwm42015-04-014-0/+6
| | | | This was basically requested.
* options: fix --geometry to string conversionwm42015-04-011-6/+2
| | | | Fixes #1744.
* af: remove unused functionswm42015-04-012-34/+0
|
* ao_wasapi: abstract HRESULT_to_strKevin Mitchell2015-04-014-79/+67
|
* mixer: per-app volume and private volume conflictwm42015-04-011-1/+3
| | | | | | Per-app volume would change the volume across all instances of the same application, while a private volume control (HAS_PER_APP_VOLUME) obviously should influence only one instance/audio stream only.
* ao_coreaudio: do not signal per-app volumewm42015-04-011-2/+0
| | | | | CoreAudio doesn't seem to have this concept. The volume is reset the next time audio is opened.
* mixer: handle prevention of unneeded af_volume insertion differentlywm42015-04-011-2/+3
| | | | Just so that this special-case is out of the common volume path.
* command: remove unused functionwm42015-04-011-14/+0
|
* mixer: cleanup volume logic slightlywm42015-04-011-12/+11
|
* mixer: add more debug outputwm42015-04-011-3/+16
| | | | For remote-debugging volume rstore problems.
* ao_wasapi: remove redundant castsKevin Mitchell2015-03-313-42/+37
|
* ao_wasapi: simplify hotplugKevin Mitchell2015-03-313-55/+22
| | | | | | | | | Take advantage of the fact that list_devs is called with a hotplug_inited ao. Also eliminate unnecessary nested function abstraction of hotplug_(un)init and list_devs. However, keep list_devs in ao_wasapi_utils.c since it uses the private functions get_device_id, get_device_name and exposing these would require including headers for IMMDevice in ao_wasapi_utils.h.
* ao_wasapi: fix device listingKevin Mitchell2015-03-314-104/+41
| | | | | remove depricated and convoluted validation. refer instead to the --audio-device option.
* TOOLS/zsh.pl: complete multiple values for ao, vo, af, vfPhilip Sequeira2015-03-311-21/+9
| | | | It still doesn't deal with sub-options, but that's for another day.
* options: add M_OPT_FILE to --input-confPhilip Sequeira2015-03-311-1/+1
| | | | | Someday I'll look through all the options and find whatever else is missing it...
* TOOLS/zsh.pl: cosmeticsPhilip Sequeira2015-03-311-26/+25
|
* build: fix building with spaces in pathPhilip Sequeira2015-03-311-3/+3
|
* TOOLS/zsh.pl: use --no-config when calling mpvPhilip Sequeira2015-03-311-8/+8
|
* vdpau: fix preemption handlingDan Oscarsson2015-03-311-0/+23
| | | | Signed-off-by: wm4 <wm4@nowhere>
* ao/wasapi: add ao hotplugKevin Mitchell2015-03-315-64/+118
| | | | | | | Create a second copy of the change_notify structure for the hotplug ao. change_notify->is_hotplug distinguishes the hotplug version from the regular one monitoring the currently playing ao. Also make the change notification less verbose now that there might be two of them around.
* manpage: correct option minchn->minch for lavcac3encKevin Mitchell2015-03-301-3/+3
|
* manpage: clarify global config file locationwm42015-03-311-1/+3
| | | | (Stupid Unix conventions.)
* options: make --video-rotate use range 0-360wm42015-03-312-2/+2
| | | | | Include 360 in the range and don't stop at 359. This makes cycling through the range in 90° steps less awkward.
* video/out: remove unused colorspace reportingwm42015-03-317-58/+1
| | | | | | | | Rarely used and essentially useless. The only VO for which this was implemented correctly and for which this did anything was vo_xv, but you shouldn't use vo_xv anyway (plus it support BT.601 only, plus a vendor specific extension for BT.709, whose presence this function essentially reported - use xvinfo instead).
* video: move colorspace overrides to vf_format, simplifywm42015-03-3113-295/+210
| | | | | | | | | | | | | | | | | | | Remove the colorspace-related top-level options, add them to vf_format. They are rather obscure and not needed often, so it's better to get them out of the way. In particular, this gets rid of the semi-complicated logic in command.c (most of which was needed for OSD display and the direct feedback from the VO). It removes the duplicated color-related name mappings. This removes the ability to write the colormatrix and related properties. Since filters can be changed at runtime, there's no loss of functionality, except that you can't cycle automatically through the color constants anymore (but who needs to do this). This also changes the type of the mp_csp_names and related variables, so they can directly be used with OPT_CHOICE. This probably ended up a bit awkward, for the sake of not adding a new option type which would have used the previous format.
* vf_format: don't crash if nonsense parameters are passedwm42015-03-312-14/+25
| | | | | | | It was "by design" possible to make mpv crash if the parameters didn't make enough sense, like "format=rgb24:yuv420p". While forcing the format has some minor (rather questionable) use for debugging, allowing it to crash is just stupid.
* vf_format: by default, pass through video without changewm42015-03-312-23/+18
| | | | | | Instead of forcing a useless format (packed YUV??) by default. Also cleanup.
* csputils: unify names for colorspace/etc. nameswm42015-03-313-41/+41
|
* build: make posix_spawn() mandatorywm42015-03-302-5/+7
| | | | | | | It was already accidentally used unconditionally by command.c. Apparently this worked well for us, so don't change anything about, but should it be unavailable, fail at configure time instead of compile time.
* ad_lavc: disable AC3 DRC by defaultwm42015-03-302-4/+7
|
* RPI supportwm42015-03-2917-7/+930
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This requires FFmpeg git master for accelerated hardware decoding. Keep in mind that FFmpeg must be compiled with --enable-mmal. Libav will also work. Most things work. Screenshots don't work with accelerated/opaque decoding (except using full window screenshot mode). Subtitles are very slow - even simple but huge overlays can cause frame drops. This always uses fullscreen mode. It uses dispmanx and mmal directly, and there are no window managers or anything on this level. vo_opengl also kind of works, but is pretty useless and slow. It can't use opaque hardware decoding (copy back can be used by forcing the option --vd=lavc:h264_mmal). Keep in mind that the dispmanx backend is preferred over the X11 ones in case you're trying on X11; but X11 is even more useless on RPI. This doesn't correctly reject extended h264 profiles and thus doesn't fallback to software decoding. The hw supports only up to the high profile, and will e.g. return garbage for Hi10P video. This sets a precedent of enabling hw decoding by default, but only if RPI support is compiled (which most hopefully it will be disabled on desktop Linux platforms). While it's more or less required to use hw decoding on the weak RPI, it causes more problems than it solves on real platforms (Linux has the Intel GPU problem, OSX still has some cases with broken decoding.) So I can live with this compromise of having different defaults depending on the platform. Raspberry Pi 2 is required. This wasn't tested on the original RPI, though at least decoding itself seems to work (but full playback was not tested).
* parse_commandline: fail gracefully on bad argswd02015-03-292-3/+6
| | | | | | Args of zero length (i.e. --=) now display a proper error message. Signed-off-by: wm4 <wm4@nowhere>
* m_config: remove assertion for option names with length 0wm42015-03-291-2/+4
| | | | | | | | | There's actually no reason why we should assert. It's unexpected and "should" not happen, but actually there are several ways to make it happen. Still, add a check m_config_get_co(), to avoid matching pseudo-entries with no name.
* stream_rar: update commentwm42015-03-291-4/+2
| | | | The stream filter non-sense was removed, which makes it much easier.
* ao_alsa: add an option to ignore ALSA channel map negotiationwm42015-03-282-2/+14
| | | | This was requested, more or less.
* ao/wasapi: use built in KSDATAFORMATsKevin Mitchell2015-03-271-13/+8
| | | | | Rather than defining them ourselves. Thanks to rossy for figuring out the headers.
* manpage: update warning on blend-subtitlesNiklas Haas2015-03-271-2/+6
|
* vo_opengl: treat non-blended subtitles as sRGBNiklas Haas2015-03-271-32/+44
| | | | | | | | Currently, the code just skipped CMS completely. This commit treats them as sRGB by default, instead. This also refactors much of the color management code to make it more generalized and re-usable.
* manpage: vo_opengl: blend-subtitles is brokenwm42015-03-271-0/+3
|
* old-configure: disable wayland backend if wayland wasn't foundDmitrij D. Czarkoff2015-03-261-0/+2
|
* old-configure: BSD-compliant use of mktempDmitrij D. Czarkoff2015-03-261-1/+1
| | | | | | | | | | Mktemp on BSDs (at least on OpenBSD) don't have "--tmpdir" option. Set temporary directory to /tmp by default. Use of ${TMPDIR:=/tmp} allows overriding temporary directory via environment if needed. (And is indeed needed in OpenBSD ports infrastructure.) Signed-off-by: wm4 <wm4@nowhere>
* old-configure: OpenBSD-specific changesDmitrij D. Czarkoff