aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* vf_format: by default, pass through video without changeGravatar wm42015-03-31
| | | | | | Instead of forcing a useless format (packed YUV??) by default. Also cleanup.
* csputils: unify names for colorspace/etc. namesGravatar wm42015-03-31
|
* build: make posix_spawn() mandatoryGravatar wm42015-03-30
| | | | | | | 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 defaultGravatar wm42015-03-30
|
* RPI supportGravatar wm42015-03-29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 argsGravatar wd02015-03-29
| | | | | | 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 0Gravatar wm42015-03-29
| | | | | | | | | 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 commentGravatar wm42015-03-29
| | | | The stream filter non-sense was removed, which makes it much easier.
* ao_alsa: add an option to ignore ALSA channel map negotiationGravatar wm42015-03-28
| | | | This was requested, more or less.
* ao/wasapi: use built in KSDATAFORMATsGravatar Kevin Mitchell2015-03-27
| | | | | Rather than defining them ourselves. Thanks to rossy for figuring out the headers.
* manpage: update warning on blend-subtitlesGravatar Niklas Haas2015-03-27
|
* vo_opengl: treat non-blended subtitles as sRGBGravatar Niklas Haas2015-03-27
| | | | | | | | 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 brokenGravatar wm42015-03-27
|
* old-configure: disable wayland backend if wayland wasn't foundGravatar Dmitrij D. Czarkoff2015-03-26
|
* old-configure: BSD-compliant use of mktempGravatar Dmitrij D. Czarkoff2015-03-26
| | | | | | | | | | 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 changesGravatar Dmitrij D. Czarkoff2015-03-26
| | | | Lua binaries' names and cdrom/dvd device names.
* ao/wasapi: add missing "if" bracesGravatar Kevin Mitchell2015-03-26
|
* ao/wasapi: rewrite format searchGravatar Kevin Mitchell2015-03-26
| | | | | | | More clearly separate the exclusive and shared mode format discovery. Make the exclusive mode search more systematic in particular about channel maps (i.e., use chmap_sel). Assume that the same sample format / sample rates work for all channels to narrow the search space.
* video: fix seek-to-last-frameGravatar wm42015-03-26
| | | | | Accidentally broken in 79779616; we really need to check for true EOF, not just whether there are no frames yet.
* manpage: fix typoGravatar wm42015-03-26
|
* ao_sndio: open device in blocking mode, don't inflate buffer artificiallyGravatar Dmitrij D. Czarkoff2015-03-26
| | | | | | The code actually uses blocking mode, so opening sound device in non-blocking mode results in choppy sound. Also, inflating the buffer isn't necessary in blocking mode, so the function may simply return without doing anything.
* vo_opengl: add FBOTEX_FUZZY aliasGravatar Niklas Haas2015-03-26
| | | | Minor reusability factor
* vo_opengl: simplify sampler preludeGravatar Niklas Haas2015-03-26
| | | | | This moves common re-definitions to a custom function and also shortens the names to make stuff less verbose in general.
* vo_opengl: reset surfaces on equalizer updatesGravatar Niklas Haas2015-03-26
| | | | | This makes the VO more responsive to equalizer changes (eg. brightness) when interpolation is used.
* vo_opengl: increase shader cache sizeGravatar Niklas Haas2015-03-26
| | | | | | | This is a minor precaution, because in some cases the number of shader programs can already hit 10. (chroma merging + separated cscale/scale + + sub blending (interpolated) + sub blending (non-interpolated) + output (interpolated) + output (non-interpolated) + OSD)
* player: relax assertion on mp_set_playlist_entryGravatar Niklas Haas2015-03-26
| | | | | This assertion crashed when e was NULL, which can happen when using force.
* vo_opengl: draw subtitles directly onto the videoGravatar Niklas Haas2015-03-26
| | | | | | | | | | | | | | | | This has a number of user-visible changes: 1. A new flag blend-subtitles (default on for opengl-hq) to control this behavior. 2. The OSD itself will not be color managed or affected by gamma controls. To get subtitle CMS/gamma, blend-subtitles must be used. 3. When enabled, this will make subtitles be cleanly interpolated by :interpolation, and also dithered etc. (just like the normal output). Signed-off-by: wm4 <wm4@nowhere>
* vo_opengl: set cscale=spline36 as default for opengl-hqGravatar Niklas Haas2015-03-25
| | | | | | | Bilinear scaling is not a suitable default for something named "hq"; the whole reason this was done in the past was because cscale used to be obscenely slow. This is no longer the case, with cscale being nearly free.
* vo_opengl: correct OSD PTS when using interpolationGravatar Niklas Haas2015-03-25
|
* vf_vapoursynth: handle approximate EOF drainingGravatar wm42015-03-25
| | | | | | | | | | | | | Handling this perfectly with VapourSynth is probably not possible: you either need to tell it the total number of input frames in advance, or deliver an infinite stream. With playback, EOF can happen at an unpredictable point, for which the VapourSynth API has no mechanism at all. We handle EOF by returning an error to the filter, which will the filter return all pending frame callbacks. We still can try to handle it approximately: if the filter requests a frame past EOF, then send it an error. This seems to work relatively well with filters which don't request future frames.
* video: make frame skipping code slightly more readableGravatar wm42015-03-25
|
* video: refactor aspects of queue and EOF handlingGravatar wm42015-03-25
| | | | | Instead of touching the 2-entry queue in mpctx->next_frame directly, move some of it to functions.
* vo_opengl: minor simplificationGravatar wm42015-03-25
| | | | We don't need alternative function names in the GL loader anymore.
* vo_opengl: check extensions properlyGravatar wm42015-03-25
| | | | | | | | | With the previous commit, we have no need anymore to check a part of an extension string (for ignoring a prefix). So check the extension string properly, instead of just using the broken old strstr() method, which could accidentally ignore prefixes or suffixes. Do this by extending the check to whether the extension name is properly delimited by spaces or string start/end.
* vo_opengl: cleanup swap_control extension loadingGravatar wm42015-03-25
| | | | | | | | | | | | | | | | Instead of somehow looking for the substring "_swap_control" and trying to several arbitrary function names, do it cleanly. The old approach has the problem that it's not very exact, and may even load a pointer to a function which doesn't exist. (Some GL implementations like Mesa return function pointers even the functions which don't exist, and calling them crashes.) I couldn't find any evidence that glXSwapInterval, wglSwapIntervalSGI, or wglSwapInterval actually exist, so don't include them. They were carried over from MPlayer times. To make diagnostics easier, print a warning in verbose mode if the function could not be loaded.
* vo_opengl: drop support for old framebuffer extensionGravatar wm42015-03-25
| | | | | | | | Drop support for GL_EXT_framebuffer_object. It has 2 problems: semantics might be slightly different from the "proper" GL_ARB_framebuffer_object extension (but is likely completely untested), and also our extension loader is too dumb to load the same group of function pointers represented by different extensions only once.
* mixer: fix how volume is restored with per-app system mixersGravatar wm42015-03-24
| | | | | | | | | | This broke with PulseAudio: when changing some audio filters (like for playback speed), mixer_reinit_audio() was called - and it overwrote the volume with whatever mpv thought the volume was before. If the volume was changed externally before and while mpv was running, this would reset the volume to the old value. Fixes #1335.
* ao_pulse: drop video role; fixes random mutingGravatar wm42015-03-24
| | | | | | | | | The details are described in #1173. This "features" causes problems to users so often, it's better to remove it. Fixes #1173.
* lua: replace getcwd() implementationGravatar wm42015-03-24
|
* command: add property returning current working directoryGravatar wm42015-03-24
| | | | Requested; fixes #1717.
* options: add conversion to string for geometry option typesGravatar wm42015-03-24
| | | | | | | | Pretty messy, which is why it wasn't done at first. (Also, I'd really like to have simpler syntax and semantics for this damn option, but who knows when this will happen.) Fixes #1705.
* demux: fix rar support for files containing DTS audio tracksGravatar wm42015-03-24
| | | | | | | | | | | | | | | | | With a recent cleanup, rar support was stuffed into demux_playlist.c (because "opening" rar files pretty much just lists archive contents and adds them to a playlist using a special rar:// protocol, which will actually access the rar file contents). Since demux_playlist.c is probed _after_ demux_lavf.c (and should/must be), libavformat was given the chance to detect DTS streams embedded within the rar file. This is not really what we want, and a regression what happened before rar listing was moved to demux_playlist.c. Fix it by moving the rar listing into its own pseudo-demuxer, and let ir probe before demux_lavf.c. (Yes, this feature still has users.)
* input: remove Linux joystick supportGravatar wm42015-03-24
| | | | | | | | | | | Why did this exist in the first place? Other than being completely useless, this even caused some regressions in the past. For example, there was the case of a laptop exposing its accelerometer as joystick device, which led to extremely fun things due to the default mappings of axis movement being mapped to seeking. I suppose those who really want to use their joystick to control a media player (???) can configure it as mouse device or so.
* input: remove classic LIRC supportGravatar wm42015-03-24
| | | | It's much easier to configure remotes as X11 input devices.
* audio: remove internal libmpg123 wrapperGravatar wm42015-03-24
| | | | | | | We've been prefering the libavcodec mp3 decoder for half a year now. There is likely no benefit at all for using the libmpg123 one. It's just a maintenance burden, and tricks users into thinking it's a required dependency.
* demux_lavf: print seek failures in verbose modeGravatar wm42015-03-24
| | | | | Don't bother with making these visible by default, because often they are bogus and/or useless.
* audio: increase maximum amount of audio skipped for seekingGravatar wm42015-03-24
| | | | | | | | | | | Precise seeking requires skipping audio, since the demuxer usually doesn't seek precisely enough. There is a sanity check that prevents skipping more than 300 seconds of audio. This still fails with very large mp3s. For example, with a 1GB sized mp3 with Xing headers, entries will be 4 MB apart on average, and occasionally much more. Just bump the limit. I'm not even sure why it was added in the first place; I suppose it's most important for files with real PTS resets.
* subprocess-win: clarify argument escaping logicGravatar James Ross-Gowan2015-03-24
| | | | This bit always seemed confusing to me.
* subprocess-win: handle empty arguments correctlyGravatar James Ross-Gowan2015-03-24
|
* vo_wayland: fix null dereferenceGravatar Jari Vetoniemi2015-03-23
| | | | | If compositor sends configure event before back_buffer is allocated, it will cause null dereference.