aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* build: improve DVB checkGravatar wm42015-02-27
| | | | | | A use of NO_STREAM_ID_FILTER was added to the DVB code recently. While I have no idea what it's needed for, it makes mpv fail to compile on FreeBSD 10.1. Add it to the dvb configure check.
* options: handle choice -> flag fallback automaticallyGravatar wm42015-02-27
| | | | | | | | | | | | | | | In the past it happened quite often that flag options (yes/no) were changed to choice options (yes/no/some more). The problem with this was that while flag options don't need a parameter, this wasn't the case with choice options. A hack was introduced to compensate for this: setting M_OPT_OPTIONAL_PARAM on the option, and an empty string ("") was added as choice, so that the choice could be used like a flag. So, for example, "--mute" would set the choice "". Fix this by 1. not requiring a parameter if there's a "yes" choice, and 2. redirect an empty parameter to "yes". The effect is that a choice option with the choices ["yes", "no"] is pretty much equivalent to a flag option.
* options: minor simplification in flag option parserGravatar wm42015-02-27
|
* demux: bump default demuxer queue sizesGravatar wm42015-02-27
| | | | | | | | | | Now that we have fast stream switching, we can bump these sizes, as the queues cause no delay in switching anymore. Of course, the fast stream switching works for mkv and mp4 only. Other formats will incur a quite terrible delay especially in network mode, which this commit changes to 10 seconds. Let's see if someone complains...
* client API: make some more properties observableGravatar wm42015-02-27
| | | | A/V sync things.
* manpage: update wording on speedGravatar Niklas Haas2015-02-27
| | | | | | The way I interpreted it, it seemed like this was not default behavior and could be enabled with --audio-pitch-correction - it should be made clearer that this is actually *the default behavior*.
* vo_opengl: implement antiringing for tensor scalersGravatar Niklas Haas2015-02-27
| | | | | | | | | | | | This is based on pretty much the same (somewhat naive) logic right now. I'm not convinced that the extra logic that eg. madVR includes is worth enough to warrant heavily confusing the logic for it. This shouldn't slow down the logic at all in any sane shader compiler, and indeed it doesn't on any shader compiler that I tested. Note that this currently doesn't affect cscale at all, due to the weird implementation details of that.
* input: handle closed pipe correctlyGravatar wm42015-02-26
|
* input: if FD is not writable, just don't write to the FDGravatar wm42015-02-26
| | | | This is for the case if the FD is a uni-directional pipe.
* input: allow passing FDs to --input-fileGravatar wm42015-02-26
|
* input: avoid creating world-writeable file with --input-unix-socketGravatar wm42015-02-26
| | | | | This requires fchmod(), which is not necessarily available everywhere. It also might not work at all. (It does work on Linux.)
* audio: accept 1.0 and 2.0 as aliases for mono and stereoGravatar wm42015-02-26
|
* player: adjust A/V desync messageGravatar wm42015-02-26
| | | | | | Broken drivers are an issue rather often. Maybe this gives the user an idea that this could be the reason. (We can't dump much more info on a 80x24 terminal.)
* vo_opengl: test FBOs only if they're going to be usedGravatar wm42015-02-26
| | | | | | | | | | Change test_fbo() so that it checks the FBO lazily, and restructure check_gl_features() to invoke it only if we know that a FBO will be needed for a certain enabled feature. This can avoid strange error messages when using --vo=opengl and the FBO format does not work. It's also less confusing when reading the verbose log (users might think that the FBO is actually used, etc.).
* vo_xv: don't attempt to clear window before mappedGravatar wm42015-02-26
| | | | | | | | This can happen with the "no-colorkey" suboption. Then the code in xv_draw_colorkey() can be run before vo_x11_config_vo_window(), when vo_gc is not allocated yet. Fixes #1629.
* ytdl: add "--ytdl-params" optionGravatar Thiago Kenji Okada2015-02-25
| | | | | | | | | | | This option allows the user to pass non-supported options directly to youtube-dl, such as "--proxy URL", "--username USERNAME" and '--password PASSWORD". There is no sanity checking so it's possible to break things (i.e. if you pass "--version" mpv exits with random JSON error). Signed-off-by: wm4 <wm4@nowhere>
* cache: use MPCLAMP() macroGravatar wm42015-02-25
|
* cache: limit to file sizeGravatar wm42015-02-25
| | | | | Saves some memory. Should be especially helpful if many small files are loaded, like when mass-loading subtitle files and the cache is enabled.
* remove dead commentGravatar Stefano Pigozzi2015-02-25
|
* build: move QuartzCore linking to the cocoa checkGravatar Stefano Pigozzi2015-02-25
| | | | | It's needed for the DisplayLink functions so it must be enabled for the basic cocoa code.
* sd_ass: replace a deprecated libass API callGravatar wm42015-02-25
|
* demux_mkv_timeline: fix potential issue when enabling cacheGravatar wm42015-02-25
| | | | | | | | | | | | If the cache is enabled, the demuxer is closed and opened again (because currently, the cache can not be enabled atfer data was already read). The call for opening a new demuxer uses the same params struct, which references the ctx->uids array. But there is a MP_TARRAY_GROW() invocation somewhere on the way, which can reallocate the ctx->uids array, making params.uids a dangling pointer. This issue probably existed for a longer time, probably since 5cd33853 (slightly more obvious since f50b105d).
* demux_mkv_timeline: move uids array to context tooGravatar wm42015-02-25
| | | | | | | Again removes some indirections and extra arguments. Also replace some memcpy/memmoves with assignments. (Assignments became possible only later, when reference UIDs were turned into a struct.)
* demux_mkv_timeline: pass sources array as part of contextGravatar wm42015-02-25
| | | | Removes tripple pointer indirections and such.
* demux_mkv: minor refactor for deferred cue readingGravatar wm42015-02-25
| | | | | | Should behave about the same, but reduces code some duplication with seeking and reading a header element pointed to by a SeekHead. It also makes behavior with incomplete files slightly better.
* demux_mkv: don't spam too many warnings with partial filesGravatar wm42015-02-25
| | | | | Limit it to a single message. It often printed more than that, and in some cases (old files with "cluster" index), spammed a lot.
* manpage: adjust --ass-style-override descriptionGravatar wm42015-02-25
| | | | | No "modified libass" is needed anymore. Also, it said that the "force" choice is more reliable than "force", which makes no sense.
* vo_opengl: greatly increase smoothmotion performanceGravatar Niklas Haas2015-02-24
| | | | | | | | | | | | | | | | | | | | Instead of rendering and upscaling each video frame on every vsync, this version of the algorithm only draws them once and caches the result, so the only operation that has to run on every vsync is a cheap linear interpolation, plus CMS/dithering. On my machine, this is a huge speedup for 24 Hz content (on a 60 Hz monitor), up to 120% faster. (The speedup is not quite 250% because of the overhead that the larger FBOs and CMS provides) In terms of the implementation, this commit basically swaps interpolation and upscaling - upscaling is moved to inter_program, and interpolation is moved to the final_program. Furthermore, the main bulk of the frame rendering logic (upscaling etc.) was moved to a separete function, which is called from gl_video_interpolate_frame only if it's actually necessarily, and skipped otherwise.
* manpage: update documentation for smoothmotionGravatar Niklas Haas2015-02-24
| | | | | | | | | | | Hopefully, this will really clear up how the thing is supposed to work (and that it's not SVP, nor MVTools). I also removed instances of the word "interpolation", since that's a term that's easily misleading. Finally, I expanded on smoothmotion-threshold since the purpose/meaning was a bit confusing.
* sub: fully update plaintext subtitle styles at runtimeGravatar wm42015-02-24
| | | | | | | | | | | | | | | Update options like --sub-text-margin-y at runtime. These are somewhat of a problem, because ass_set_selective_style_override() (intentionally) does not override them. This should be fixed in libass (by providing additional override modes), but for now this will do. Also change the signature of mp_ass_configure(), so we can get access to the track. Additionally, drop the redundant setting of the style Alignment (it's overwritten by mp_ass_set_style()). See #1622 (again).
* sub: move mp_ass_configure() codeGravatar wm42015-02-24
| | | | | sd_ass.c is the only user, and the function is starting to become extremely "special". No other changes.
* osd: force alignment for OSD barGravatar wm42015-02-24
| | | | | | | | Overwrite the alignment applied by the OSD style. Additionally, remove the initialization of the Alignment field in create_ass_track(); the value is always overwritten by mp_ass_set_style() later. Fixes #1626.
* osd: always reset style paramsGravatar wm42015-02-24
| | | | | | | There was some logic to set certain things on init only. Not sure why this was done (saving some cheap calculations?) - but since the next call would override these style settings by applying the usual subtitle style, I don't think this was intended.
* vo_opengl: another GLES2 issueGravatar wm42015-02-24
| | | | | | | | | | GLES2 randomly does not support the transpose parameter in matrix uniform calls. So we have to do this manually. Sure it was worth to mutilate the standard just so all these shitty SoC vendors can safe 3 lines of code. (Obviously trying to handle all of GLES2 to GL 4.x in a single codebase was a mistake.)
* vo_opengl: extend ifdef against shader arraysGravatar wm42015-02-24
| | | | | | | GLES2 shaders do not have line continuation characters. Abuse the HAVE_ARRAYS define to exclude code which uses arrays, and which also happens to cover all code that defines multi-line macros. (So yes, this is a hack.)
* old-build: proper atomics are not strictly requiredGravatar wm42015-02-24
|
* video: remove redundant codec parametersGravatar wm42015-02-24
| | | | | | | Remove coded_width and coded_height. This was originally added in commit fd7dde40, when BITMAPINFOHEADER was killed. The separate fields became redundant in commit e68f4be1. Remove them (nothing passed to the decoders actually changes with _this_ commit).
* sub: apply text subtitle style overrides more eagerlyGravatar wm42015-02-24
| | | | | | | | | | Basically abuse the style override mechanism meant for ASS (mp_ass_set_style()) to update text subtitle styling at runtime too. This even has the advantage that the style will be overridden, even if the text subtitle converted (like sd_lavc_conv.c) dares to add a fixed style in the styles section. Probably helps with #1622.
* ytdl: add --no-warningsGravatar wm42015-02-24
| | | | | | Silences "[ytdl_hook] WARNING: video doesn't have subtitles", which was an annoying and pointless message printed with almost all youtube videos.
* libass: remove redundant checks for LIBASS_VERSIONGravatar Ben Boeckel2015-02-24
| | | | Since 0.12.1 is the minimum, just assume it in the code too.
* ytdl: Adapt to new subtitles structureGravatar Jaime Marquínez Ferrándiz2015-02-24
| | | | The requested formats can be sorted by preference and the result gives now an url or the subtitles file content
* filter_kernels: rename bilinear_slow to triangleGravatar Niklas Haas2015-02-24
| | | | | | | | This is essentially what it is, and it's a useful for windowing or downscaling. For upscaling we already have bilinear, no need to cause extra confusion between biliner and bilinear_slow. Also made it a bit more well-behaved.
* filter_kernels: add robidoux and robidouxsharpGravatar Niklas Haas2015-02-24
| | | | | | | | These are EWA-based versions of the keys B/C splines, of which mitchell is already a member. They are slightly softer and slightly sharper than mitchell, respectively. Very easy to define in terms of things we already have.
* filter_kernels: redefine redundant filtersGravatar Niklas Haas2015-02-24
| | | | | | mitchell, hermite and catmull_rom are all B/C splines and can share the code which was already written for mitchell. This just redefines them in terms of that.
* filter_kernels: add ewa_lanczossharp aliasGravatar Niklas Haas2015-02-24
| | | | | This is essentially a preconfigured version of ewa_lanczos, with the "best" parameters for general purpose usage.
* vo_opengl: support polar filters of any radiusGravatar Niklas Haas2015-02-24
| | | | | We can now truly pass a radius of 3.2383154841662362 or another real zero of the jinc function to get a better result.
* vo_opengl: explicitly check potential candidates for polar filtersGravatar Niklas Haas2015-02-24
| | | | | | | This adds a small check for candidates that could potentially be inside the radius, but aren't necessarily. This speeds up performance by a negligible amount on my hardware, but it's mainly a prerequisite for a further change (using a larger true radius).
* ao/wasapi: move resume to audio threadGravatar Kevin Mitchell2015-02-23
| | | | | | | | | | | | | | This echanges the two events hForceFeed/hFeedDone for hResume. This like the last commit makes things more deterministic. Importantly, the forcefeed is only done if there is not already a full buffer yet to be played by the device. This should fix some of the problems with exclusive mode. This commit also removes the necessity to have a proxy to the AudioClient object in the main thread. fixes #1529
* ao_wasapi: move reset into audio threadGravatar Kevin Mitchell2015-02-23
| | | | | | | | | This makes things a bit more deterministic. It ensures that the audio thread isn't doing anything between IAudioClient_Stop(), IAudioClient_Reset() and setting the sample_count to 0. Buffer overfilling on resume is still a problem in exclusive mode (see next commit).
* filter_kernels: add blur parameter to jincGravatar Niklas Haas2015-02-23
| | | | | This affects all filters that use it, eg. ewa_lanczos. Setting it to something like 0.95 can be done to make the filter a bit less blurry.