summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Release 0.11.0v0.11.0Martin Herkt2015-09-232-1/+80
|
* Merge branch 'master' into release/currentMartin Herkt2015-09-23104-5686/+1402
|\
| * DOCS: update client API changes for releaseMartin Herkt2015-09-231-1/+1
| |
| * DOCS: update release policyMartin Herkt2015-09-231-27/+69
| |
| * win32: allow multiple windows at the same timewm42015-09-221-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Window classes are process-wide (or at least DLL-wide), so you can't have 2 classes with the same name. Our code attempted to do this when for example 2 libmpv instances were created within the same process. This failed, because RegisterWindowEx() fails if the class already exists. Fix this by ignoring RegisterWindowEx() errors. If the class can really not be registered, we will fail on CreateWindowEx() instead. Of course we also can't unregister the class, as another thread might be using it. Windows will free the class automatically if the DLL is unloaded or the process terminates. Fixes #2319 (hopefully).
| * build: allow disabling vapoursynth completelywm42015-09-221-7/+8
| | | | | | | | | | | | | | | | | | | | | | It's possible to build vf_vapoursynth with either the Python or Lua backend (or both or none). The check for the vapoursynth core itself was hidden away and couldn't be disabled, which would link mpv with vapoursynth even if all backends were disabled. Rearrange the checks so that the core will be disabled if no backend is found (or both are disabled). This duplicates the check for vapoursynth.pc, but since it's trivial, this is not that bad.
| * player: fix excessive CPU usage in audio-only modewm42015-09-221-3/+4
| | | | | | | | | | | | | | | | | | Caused by one of the --force-window commits. The unconditional uninit_video_out() call (which normally should be idempotent) raised sporadic MPV_EVENT_VIDEO_RECONFIG events. This is ok, except for the fact that clients (like a Lua script or libmpv users) would cause the event loop to run again after receiving it, triggering a feedback loop. Fix it by sending the events really only on a change.
| * player: some more --force-window fixeswm42015-09-212-12/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | Sigh... After the recent changes, another regression appeared. This time, the VO window wasn't cleared when changing from video to a non- video file (such as audio-only with no cover art). Fix this by properly taking the handle_force_window() bool parameter into account. Also, the info message could be printed twice, which is harmless but ugly. So just remove the message. Also, do some more minor cleanups (like fixing the comment, which was completely outdated).
| * player: do not destroy VO prematurely when initializing playbackwm42015-09-201-1/+2
| | | | | | | | | | | | | | | | | | | | If --force-window wasn't used, this would destroy the VO while a file is still being loaded, resulting in flicker and other interruptions when switching from one playlist entry to another. Recent regression. The condition used here is pretty tricky, but it boils down to that it should trigger either in idle mode, or when loading has been fully done (at these points we definitely know whether the VO will be needed).
| * player: rename and move find_subfiles.cwm42015-09-206-5/+5
| | | | | | | | | | | | This was in sub/, because the code used to be specific to subtitles. It was extended to automatically load external audio files too, and moving the file and renaming it was long overdue.
| * player: add opus to list of external audio file extensionswm42015-09-201-1/+1
| | | | | | | | Fixes #2336.
| * player: make force-window in auto-profiles actually workwm42015-09-204-29/+36
| | | | | | | | | | | | | | | | | | | | | | The previous commit was incomplete (and I didn't notice due to a broken test procedure). The annoying part is that actually creating the VO was separate; redo this and merge the code for this into handle_force_window() as well. This will also make implementing proper reaction to runtime option changes easier. (Only the part for actually listening to option changes is missing.)
| * player: make force-window=immediate work in auto-profileswm42015-09-201-0/+3
| | | | | | | | | | | | This is a bad hack; the correct way to handle this would be implementing profiles differently, and then listen to option changes and act on them dynamically.
| * vf_yadif: add hack for Libav compatibilitywm42015-09-201-3/+12
| | | | | | | | | | | | Libav accepts slightly different options compared to FFmpeg. Sigh... This was "broken" in 25755f5f. Fixes #2335.
| * audio/filter: remove reentrancy flagwm42015-09-205-22/+1
| | | | | | | | | | | | | | | | | | | | This flag was used by some filters and made sure none of these filters were inserted twice. This triggers only if the user explicitly tries to add multiple filters (and not e.g. due to auto-insertion), so at best this warned the user from doing something potentially pointless. At worst, it blocked some (mildly) legitimate use-cases. Get rid of it. Also see #2322.
| * TOOLS/zsh.pl: only check the actual exit code when calling mpvPhilip Sequeira2015-09-201-2/+2
| | | | | | | | | | Ignore the other bits of $?. Apparently they can be set even if the command succeeded.
| * vf_vdpaurb: query_format is still requiredPhilip Langdale2015-09-181-0/+6
| | | | | | | | | | | | | | I took this out because I thought the filter chain would auto-negotiate using nv12 without the explicit hint, and it does in the basic case with no intermediate filter, but once you start adding filters, it can end up negotiating a different format and then failing.
| * vf_vdpaurb: Pass through non-hardware-decoded contentPhilip Langdale2015-09-151-9/+8
| | | | | | | | | | | | | | | | | | | | Today, vdpaurb will fail if it's used with non-hardware-decoded content. This created work for the user as they have to explicitly add or not add it, depending on the content. As an improvement, we can make vdpaurb pass through any frames that aren't hardware decoded, so that it can always be present in the filter chain, if desired.
| * manpage: add a note about libavfilterwm42015-09-112-0/+8
| |
| * video/filter: remove some vf_lavfi wrapperswm42015-09-118-380/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I see no point in keeping these around. Keeping wrappers for some select libavfilter filters just because MPlayer had these filters is not a good reason. Ultimately, all real filtering work should go to libavfilter, and users should get used to using vf_lavfi directly. We might even not require the awful double-nested syntax for using libavfilter one day. vf_rotate, vf_yadif, vf_stereo3d are kept because mpv uses them internally. (They all extend the lavfi filters or change their defaults.) vf_mirror is kept for symmetry with vf_flip. vf_gradfun and vf_pullup are probably semi-popular, so I'll remove them not yet - only after some more discussion.
| * vf_lavfi: cosmetics: fix coding stylewm42015-09-111-11/+11
| |
| * af_lavfi: implement af-metadata propertywm42015-09-116-10/+63
| | | | | | | | | | | | | | Works like vf-metadata. Unfortunately requires some code duplication (even though it's not much). Fixes #2311.
| * af: use generic statuc codeswm42015-09-111-7/+7
| | | | | | | | | | | | | | The reason MPlayer traditionally duplicated them all over the place is that it wanted every component to be a self-contained library (e.g. audio filters were in "libaf"). But this is not necessarily helpful, and this change makes the following commit a bit simpler.
| * player: prefer logical current directory pathwm42015-09-111-0/+4
| | | | | | | | | | | | | | The "PWD" enviornment variable is described by POSIX. We don't go to length to verify its contents, but just trust it. This affects the logic for resuming playback.
| * vf: vf_stereo3d depends on libavfilterwm42015-09-112-2/+2
| |
| * ao_lavc: minor simplificationwm42015-09-111-2/+2
| |
| * ao_alsa: use sample format determination codeKevin Mitchell2015-09-101-12/+10
| |
| * ao_alsa: add double to sample format listKevin Mitchell2015-09-101-0/+1
| |
| * ao_alsa: put spdif formats into find_alsa_formatKevin Mitchell2015-09-101-9/+9
| |
| * audio/format: revise af_format_conversion_scoreKevin Mitchell2015-09-101-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * (de)planarize -1 * pad 1 byte -8 * truncate 1 byte -1024 * float -> int 1048576 * (8 - dst_bytes) * int -> float -512 Now the score is negative if and only if the conversion is lossy (e.g. previously s24 -> float was given a negative (lossy) score), However, int->float is still considered bad (s16->float is worse than than s16->s32). This penalizes any loss of precision more than performance / bandwidth hits. For example, previously s24->s16p was considered equal to s24->u8. Finally, we penalize padding more than (de)planarizing as this will increase the output size for example with ao_lavc.
| * video: make --field-dominance set interlaced flagKevin Mitchell2015-09-102-4/+10
| | | | | | | | fixes #2289
| * vo_rpi: fix compilationwm42015-09-111-2/+2
| | | | | | | | The recent OpenGL refactor commits forgot to update this file.
| * ao_oss: use new sample format determination codewm42015-09-101-1/+2
| |
| * ao_lavc: use new sample format determination codewm42015-09-103-24/+16
| | | | | | | | | | | | | | This is just a refactor, which makes it use the previously introduced function, and allows us to make af_format_conversion_score() private. (We drop 2 unlikely warning messages too... who cares.)
| * audio/format: add function for determining sample conversion candidateswm42015-09-102-0/+32
| |
| * audio/format: fix interlaved vs. non-interleaved conversionswm42015-09-101-1/+1
| | | | | | | | | | | | | | | | | | | | This mixed up the returned score for some interleaved/non-interleaved comparisons. Changing interleaving subtracted 1 point, while extending sample size by 1 byte also subtracted 1 point. (This scoring system is not ideal - it'd be much cleaner to do a 3-way sample format comparison instead, and sort the formats according to the comparison instead of the score.)
| * audio/format: actually prefer float over double sample formatwm42015-09-101-1/+1
| | | | | | | | | | ...for int->float conversions. This code accidentally inverted the condition.
| * video: do not use deprecated libavutil pixdesc fieldswm42015-09-103-5/+27
| | | | | | | | | | | | These were normalized and are saner now. We want to use the new fields, and also get rid of the deprecation warnings, so use them. There's no release yet which uses these, so some ifdeffery is unfortunately needed.
| * vo_opengl: fix shader compilation with debanding and OSX hwdecwm42015-09-103-8/+10
| | | | | | | | | | | | 2 things are being stupid here: Apple for requiring rectangle textures with their IOSurface interop for no reason, and OpenGL having a different sampler type for rectangle textures.
| * vo_opengl: move sampler type mapping to a functionwm42015-09-102-7/+14
| |
| * command: make "add <property> 0" not change the valuewm42015-09-103-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The value 0 was treated specially, and effectively forced the increment to 1. Interestingly, passing 0 or no value also does not include the scale (from touchpads etc.), but this is probably an accidental behavior that was never intentionally added. Simplify it and make the default increment 1. 0 now means what it should: the value will not be changed. This is not particularly useful, but on the other hand there is no need for surprising and unintuitive semantics. OARG_CYCLEDIR() failed to apply the default value, because m_option_type_cycle_dir was missing a copy handler - add this too.
| * cache: do not include backbuffer size in total stream cache sizewm42015-09-102-2/+4
| | | | | | | | | | | | | | | | | | This causes weirdness with the "cache-size" property and option. Only the read handler of the property included the backbuffer, while all others did not. Make it consistent, and subtract the backbuffer size from the cache size. Fixes #2305.
| * DOCS: cleanup API changes version markerswm42015-09-102-10/+11
| | | | | | | | | | | | Make it so that they don't need to be edited on release (no change in tense). Also, move the "stray" changes after client API version 1.19 to 1.19 itself.
| * vo_opengl: fix deband sub-option handlingwm42015-09-091-1/+6
| | | | | | | | This all has to be done manually.
| * vo_opengl: implement debanding (and remove source-shader)Niklas Haas2015-09-097-98/+228
| | | | | | | | | | | | | | | | | | | | The removal of source-shader is a side effect, since this effectively replaces it - and the video-reading code has been significantly restructured to make more sense and be more readable. This means users no longer have to constantly download and maintain a separate deband.glsl installation alongside mpv, which was the only real use case for source-shader that we found either way.
| * old-makefile: update for recent OpenGL refactorswm42015-09-091-9/+14
| |
| * vo_opengl: move self-contained shader routines to a separate fileNiklas Haas2015-09-095-348/+425
| | | | | | | | | | | | | | | | | | | | | | This is mostly to cut down somewhat on the amount of code bloat in video.c by moving out helper functions (including scaler kernels and color management routines) to a separate file. It would certainly be possible to move out more functions (eg. dithering or CMS code) with some extra effort/refactoring, but this is a start. Signed-off-by: wm4 <wm4@nowhere>
| * vo_opengl: reduce code duplication for scaler optionsNiklas Haas2015-09-091-33/+16
| | | | | | | | | | This simple refactor cuts down on the immense amount of overhead and duplication across all of the related scale-* options.
| * vo_opengl: remove gl_ prefixes from files in video/out/openglNiklas Haas2015-09-0927-56/+56
| | | | | | | | | | This is a bit redundant with the name of the directory itself, and not in line with existing naming conventions.
| * vo_opengl: move gl_* files to their own subdirNiklas Haas2015-09-0927-40/+40
| | | | | | | | | | This is mainly just to keep things a bit more organized and separated inside the codebase.
| * vo_opengl: minor refactorNiklas Haas2015-09-091-5/+5
| | | | | | | | | | Just making the argument order for pass_load_fbotex more consistent with finish_pass_fbo.
| * Use setfield, not --field-dominance. See #2297.Rudolf Polzer2015-09-091-6/+6
| |
| * vo_opengl: filter allowed options in dumb-modewm42015-09-081-14/+14
| | | | | | | | | | | | | | Instead of the other way around of disabling disallowed options. This is more robust and also slightly simpler, at least conceptually. If new vo_opengl features are added, they don't need to be explicitly disabled for dumb-mode just to avoid that it accidentally breaks.
| * vo_opengl: move gl_video_opts copying code to separate functionwm42015-09-082-15/+22
| | | | | | | | | | | | | | | | | | | | Sigh... Hopefully this code will be completely unnecessary one day, as it's only needed due to the sub-option parser craziness. Move dumb_mode to the top of the struct, so the C universal initializer doesn't cause warnings with all those broken compilers.
| * af_lavrresample: remove unnecessary indirectionswm42015-09-081-35/+30
| | | | | | | | | | | | | | Not sure why struct af_resample_opts even exists. It seems useful to group the fields set by user options. But storing the current format conversion parameters doesn't seem very elegant, and having a separate instance in the "ctx" field isn't helpful either.
| * af_lavrresample: add normalize suboptionwm42015-09-082-1/+13
| |
| * vo_opengl: restore single pass optimization as separate code pathwm4