aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* osx: fix key input in certain circumstancesGravatar Akemi2017-03-26
| | | | | | | | | | | | | for a reason i can just assume some key events can vanish from the event chain and mpv seems unresponsive. after quite some testing i could confirm that the events are present at the first entry point of the event chain, the sendEvent method of the Application, and that they vanish at a point afterwards. now we use that entry point to grab keyDown and keyUp events. we also stop propagating those key events to prevent the no key input' error sound. if we ever need the key events somewhere down the event chain we need to start propagating them again. though this is not necessary currently.
* osx: initial Touch Bar supportGravatar Akemi2017-03-26
|
* command: add expand-text command to property-expand a stringGravatar Avi Halachmi (:avih)2017-03-26
|
* osc: make the title toggleable between media-title and filenameGravatar Ricardo Constantino2017-03-26
| | | | Close #4221
* player: make new stream output more consistent with other outputGravatar wm42017-03-26
| | | | It seems we generally skip the space, such as seen on the AO init line.
* player: print additional stream infoGravatar Dan Oscarsson2017-03-26
| | | | | | In print_stream print additional stream info for audio and video track. While it may be incorrect it is mostly correct and good info to have.
* command: change and simplify filter toggle syntaxGravatar wm42017-03-26
| | | | | | | | | | | "@name:!" becomes simply "@name". This is actually slightly more complex to parse, but makes for a much simpler syntax and will be less weird to the user. Suggested by haasn. The old syntax is now rejected with an error. Also add some more explicit error checks, instead of e.g. allowing empty filter names and erroring only when it's not found.
* vo_opengl: angle: add --angle-flip to set the present modelGravatar James Ross-Gowan2017-03-26
| | | | | | | | DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL might be buggy on some hardware. Additionaly DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL might be supported on some Windows 7 systems with the platform update, but it might have poor performance. In these cases, the user might want to disable the use of DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL swap chains with --angle-flip=no.
* m_option: consistent af/vf filter entry "enabled" flag default valueGravatar wm42017-03-25
| | | | | | | It should default to true, but setting the filter list via mpv_node (relevant for client API and Lua scripting) left it to false. Also "document" the flag.
* command: add better runtime filter toggling methodGravatar wm42017-03-25
| | | | | | | | | | Basically, see the example in input.rst. This is better than the "old" vf-toggle method, because it doesn't require the user to duplicate the filter string in mpv.conf and input.conf. Some aspects of this changes are untested, so enjoy your alpha testing.
* manpage: minor addition for --video-syncGravatar wm42017-03-25
| | | | Nobody needs to read all the text below it, really.
* sub: add SDH subtitle filterGravatar Dan Oscarsson2017-03-25
| | | | | | | | | | Add subtitle filter to remove additions for deaf or hard-of-hearing (SDH). This is for English, but may in part work for others too. This is an ASS filter and the intention is that it can always be enabled as it by default do not remove parts that may be normal text. Harder filtering can be enabled with an additional option. Signed-off-by: wm4 <wm4@nowhere>
* command: add demux-start-time propertyGravatar Matthias Hunstock2017-03-25
| | | | Add a demux_start_time property, update docs.
* droptarget: fix style and refactorGravatar James Ross-Gowan2017-03-26
| | | | | | | | | | | This makes the code more closely match mpv's style. Specifically, it changes some names from camelCase to snake_case, removes some Hungarian notation, replaces direct vtbl access with COM macros, makes use of the SAFE_RELEASE macro, moves some declarations closer to their first use, and fixes the brace style, as well as a few other things. This also makes the IDropTargetVtbl static and it fixes the buggy QueryInterface implementation.
* w32_common: move the IDropTarget impl to a separate fileGravatar James Ross-Gowan2017-03-26
| | | | | | This was mostly self-contained, so its removal makes w32_common.c a bit easier to read. Also, because it was self contained and its author has agreed to LGPL relicencing, the new file has the LGPL licence header.
* vo_opengl: replace uniform variable image_size with input_sizeGravatar igv2017-03-25
| | | | | | input_size can be the size of a cropped image Signed-off-by: wm4 <wm4@nowhere>
* vo_opengl: add tex_offset uniform variable to user shadersGravatar igv2017-03-25
|
* vo_opengl: make size of a cropped source image available to user shadersGravatar igv2017-03-25
|
* TOOLS: add lua script for runtime acompressor ffmpeg filter controlGravatar Jan Janssen2017-03-25
|
* af_drc: removeGravatar Jan Janssen2017-03-25
| | | | | | | | | | | | | | | | Remove low quality drc filter. Anyone whishing to have dynamic range compression should use the much more powerful acompressor ffmpeg filter: mpv --af=lavfi=[acompressor] INPUT Or with parameters: mpv --af=lavfi=[acompressor=threshold=-25dB:ratio=3:makeup=8dB] INPUT Refer to https://ffmpeg.org/ffmpeg-filters.html#acompressor for a full list of supported parameters. Signed-off-by: wm4 <wm4@nowhere>
* manpage: add empty line between protocol header/descriptionGravatar wm42017-03-25
| | | | Appears to give better formatting. (I'll never understand rst...)
* manpage: explain more about outstanding dvdnav bugsGravatar Frederick Eaton2017-03-25
|
* osc: fix PlayResX undefined warning when aspect is 0Gravatar Ricardo Constantino2017-03-24
|
* osc: bottom/topbar: don't clip title verticallyGravatar Ricardo Constantino2017-03-24
|
* osc: bottom/topbar: increase timecodes width a bitGravatar Ricardo Constantino2017-03-24
| | | | | | | Compensates for wider fonts like DejaVu Sans Mono. Further compensate for the minus sign in the right timecode by 10px. Closes #3952
* osc: refactor cache status displayGravatar Ricardo Constantino2017-03-24
| | | | This removes the twitch of the right-aligned cache status.
* osc: refactor osc message scalingGravatar Ricardo Constantino2017-03-24
| | | | | | | | | | Will still hide playlist items with long enough filenames and osd-font-size but not as soon. osc messages should now preserve their scaling with fullscreen toggling and cycling through audio-only files and files with video. Closes #4081, #4083, #4102
* vo_x11: fix an unused variable warningGravatar wm42017-03-24
|
* command: add a property to signal whether networking is usedGravatar wm42017-03-24
| | | | | | Requested. The property semantics are a bit muddy due to lack of effort. Anticipated use is different display of cache status, so it should not matter anyway.
* vo_x11: reduce flickering on playlist navigationGravatar rr-2017-03-24
| | | | | | | | | | The delay between call to .resize, which cleared the buffer, and actually rendering the first video frame, was significant, resulting in short flicker on navigation and resizing. This was especially visible when zooming and navigating between images. Now the clearing is scheduled to happen just before the rendering, which looks to be good enough even without double buffering.
* mpv.desktop: fix some mistakes in mpv.desktopGravatar giwhub2017-03-23
| | | | Signed-off-by: wm4 <wm4@nowhere>
* encode_lavc: fix build failure after libavcodec major bumpGravatar wm42017-03-23
|
* video: fix a typo in a commentGravatar wm42017-03-23
|
* vd_lavc: fix potential build failure with vaapiGravatar wm42017-03-23
| | | | | | | If vaapi was found, but neither the old or new libavcodec vaapi hwaccel API, then HAVE_VAAPI_HWACCEL will be defined, but not _OLD or _NEW. The HAVE_VAAPI_HWACCEL define pretty much exists only for acrobatics with our own waf dependency checker helper code.
* vdpau: support new vdpau libavcodec decode APIGravatar wm42017-03-23
| | | | | | | | | | | | | | | | | | | The new API works like the new vaapi API, using generic hwaccel support. One minor detail is the error message that will be printed if using non-4:2:0 surfaces (which as far as I can tell is completely broken in the nVidia drivers and thus not supported by mpv). The HEVC warning (which is completely broken in the nVidia drivers but should work with Mesa) had to be added to the generic hwaccel code. This also trashes display preemption recovery. Fuck that. It never really worked. If someone complains, I might attempt to add it back somehow. This is the 4th iteration of the libavcodec vdpau API (after the separate decoder API, the manual hwaccel API, and the automatic vdpau hwaccel API). Fortunately, further iterations will be generic, and not require much vdpau-specific changes (if any at all).
* vo_opengl: add a backend start_frame callback for context_vdpauGravatar wm42017-03-20
| | | | | | Might be useful for other backends too. For context_vdpau, resize handling, presentation, and handling the mapping state becomes somewhat less awkward.
* vo_opengl: read framebuffer depth from actual FBO used for renderingGravatar wm42017-03-20
| | | | | | | | | | | | In some cases, such as when using the libmpv opengl-cb API, or with certain vo_opengl backends, the main framebuffer is never accessed. Instead, rendering is done to a FBO that acts as back buffer. This meant an incorrect/broken bit depth could be used for dithering. Change it to read the framebuffer depth lazily on the first render call. Also move the main FBO field out of the GL struct to MPGLContext, because the renderer's init function does not need to access it anymore.
* vo_opengl: move some init_gl code to utility functionsGravatar wm42017-03-20
|
* manpage: fix a typoGravatar wm42017-03-20
|
* vo_opengl: add a --opengl-es=force2 optionGravatar wm42017-03-20
| | | | | | | Useful for testing. Unfortunately, the nVidia EGL driver ignores this, and returns a GLES 3.2 context anyway (which it is allowed to do). Might still be useable with ANGLE, which will really give you a GLES 2 context if you ask for it.
* vo_opengl: properly respect dither option if dumb mode is usedGravatar wm42017-03-20
| | | | | | | When dumb mode is used (the "simple" rendering path), respect the dither options. Options should never be ignored (except in GLESv2 mode); either they should be respected in dumb mode, or they should disable dumb mode. In this case, the former applies.
* vo_opengl: context_vdpau: resize output surfaces lazilyGravatar wm42017-03-19
| | | | | | | This actually fixes the dreaded errors during resizing. It works pretty much like before, except each surface is reallocated before it's used. It implies surfaces with the old size remain in the presentation queue and will be displayed.
* vo_opengl: context_vdpau: minor fixesGravatar wm42017-03-19
| | | | | | | | | | | | | | | | | | Don't assume 0 is an invalid object handle. vdpau with its weird API design makes all objects indexes, with 0 being a perfectly valid and common value. You need to use VDP_INVALID_HANDLE, which is not 0. Don't crash if init fails at vdpau initialization. It's because mp_vdpau_destroy(NULL) crashes. Simplify it. Destroy output surface backed FBO before output surface. Also, strictly bookkeep the map/unmap calls (and unmap surfaces before destroying the FBO/texture). I can't see a change in the weird errors when resizing the window, but I guess it's slightly more correct. Add the GL_WRITE_DISCARD_NV symbol to header_fixes.h, because we might fail compilation with headers that do not contain the vdpau extension (well, probably doesn't matter).
* vo_opengl: fix some undefined behaviorGravatar wm42017-03-18
| | | | | | | The gl_timer_last_us() function could access samples[-1]. Fix by coercing to unsigned, so the % will put it into index [0,max). The real value returned in this corner case doesn't mean too much, I guess.
* vo_opengl: add experimental vdpauglx backendGravatar wm42017-03-18
| | | | | | | | | | | | | | | | As the manpage says, this has no value other than adding bugs. It uses code based on context_x11.c, and basically does very stripped down context creation (no alpha support etc.). It uses vdpau for display, and maps vdpau output surfaces as FBOs to render into them. This might be good to experiment with asynchronous presentation. For now, it presents synchronously, with a 4 frame delay (which should whack off A/V sync). The forced 4 frame delay is probably also why interaction feels slower. There are some weird vdpau errors on resizing and uninit. No idea what causes them.
* vo_opengl: add log field to MGLContextGravatar wm42017-03-18
| | | | | | Should have done this 1000 years ago. Now GL backends can use mp_log macros directly on the MPGLContext, instead of doing stupid things like for example MP_WARN(ctx->vo, ...).
* screenshot: change details of --screenshot-format handlingGravatar wm42017-03-18
| | | | | | | | | | | | | | | | This is just a pointless refactor with the only goal of making image_writer_opts.format a number. The pointless part of it is that instead of using some sort of arbitrary ID (in place of a file extension string), we use a AV_CODEC_ID_. There was also some idea of falling back to the libavcodec MJPEG encoder if mpv was not linked against libjpeg, but this fails. libavcodec insist on having AV_PIX_FMT_YUVJ420P, which we pretend does not exist, and which we always map to AV_PIX_FMT_YUV420P (without the J indicating full range), so encoder init fails. This is pretty dumb, but whatever. The not-caring factor is raised by the fact that we don't know that we should convert to full range, because encoders have no proper way to signal this. (Be reminded that AV_PIX_FMT_YUVJ420P is deprecated.)
* image_writer: remove useless formatsGravatar wm42017-03-18
| | | | Nobody cares about those.
* ao_jack: update latency on buffer_size/graph changeGravatar Cheng Sun2017-03-18
| | | | | | | The buffer_size may be updated before the process callback is called for the first time. Or, the connection graph could change, which changes the latency of the pipeline after mpv's output. Ensure we keep on top of these changes by registering callbacks to update our latency estimation.
* screenshot: minor simplificationGravatar wm42017-03-18
| | | | | | | | This also will set image=NULL, if the video frame is marked as hwaccel, and could not be copied to normal RAM. This will probably change the error message (due to screenshot_get() returning NULL, instead of making image conversion fail at a later point), but the behavior is the same anyway.