summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * wayland: use the advertised size in fullscreenEmmanuel Gil Peyrot2016-05-081-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we receive the wl_shell_surface::configure event, it makes sense to respect the aspect ratio of the video in windowed mode, but in fullscreen it forces compositing and wastes resources (until atomic modesetting is available everywhere and we can stop having desynchronised planes). Weston mitigates a resolution mismatch by creating black surfaces and compositing them around the fullscreen surface, placed at the middle, while GNOME puts it at the top-left and leaves the rest of the desktop composited below, both of them producing a subpar experience. Fixes #3021, #2657.
| * win32: make taskbar progress indication optionalmaniak13492016-05-088-5/+45
| | | | | | | | | | | | | | | | | | | | | | Add --taskbar-progress command line option and property which controls taskbar progress indication rendering in Windows 7+. This option is on by default and can be toggled during playback. This option does not affect the creation process of ITaskbarList3. When the option is turned off the progress bar is just hidden with TBPF_NOPROGRESS. Closes #2535
| * demux_lavf: fix a minor memory leakwm42016-05-081-1/+5
| |
| * manpage: document --x11-bypass-compositor=nowm42016-05-081-1/+4
| | | | | | | | Requested.
| * x11: slightly safer X11 error handler behaviorwm42016-05-081-1/+4
| | | | | | | | | | | | | | | | | | | | | | The X11 error handler is global, and not per-display. If another Xlib user exists in the process, they can conflict. In theory, it might happen that e.g. another library sets an error handler (overwriting the mpv one), and some time after mpv closes its display, restores the error handler to mpv's one. To mitigate this, check if the error log instance is actually set, instead of possibly crashing. The change in vo_x11_uninit() is mostly cosmetic.
| * manpage: change gnome-screensaver-command exampleRahul Kalkani2016-05-071-1/+1
| | | | | | | | | | | | Correct options to deactivate is -d or --deactivate. Signed-off-by: wm4 <wm4@nowhere>
| * x11: rename inappropriate --x11-bypass-compositor=never optionwm42016-05-072-3/+3
| | | | | | | | This obviously made no sense.
| * x11: add --x11-bypass-compositor=alwayswm42016-05-063-3/+9
| | | | | | | | Also add missing documentation for fs-only, and correct the default.
| * DOCS: update documentation related to color managementNiklas Haas2016-05-062-6/+12
| | | | | | | | | | | | Some of this documentation was left woefully inaccurate as color management in mpv evolved. This commit updates all of the wording and adds notes and comments where appropriate.
| * ao_alsa: add more shitty workaroundswm42016-05-061-9/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reportedly makes it work on ODROID-C2. The idea for this hack is taken from kodi; they unconditionally set some or all of those flags. I don't trust ALSA enough to hope that setting these flags couldn't break something else, so we try without them first. It's not clear whether this is a driver bug or a bug in the ALSA libs. There is no ALSA bug tracker (the ALSA website has had a dead link to a deleted bug tracker fo years). There's not much we can do other than piling up ridiculous hacks. At least I think that at this point invalid API usage by mpv can be excluded as a cause. ALSA might be the worst audio API ever.
| * manpage: minor fixes to --lavfi-complexwm42016-05-061-2/+3
| |
| * vo_opengl: angle: avoid fullscreen FBO copy for flippingwm42016-05-051-1/+23
| | | | | | | | | | | | | | In order to honor the differences between OpenGL and Direct3D coordinate systems, ANGLE uses a full FBO copy merely to flip the final frame vertically. This can be avoided with the EGL_ANGLE_surface_orientation extension.
| * vo_opengl: angle: call eglTerminate()wm42016-05-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | I hope that this does what we expect it does: destroy the EGLDisplay specific to our HDC. (Some implementations will terminate all EGL contexts in the whole process.) eglReleaseThread() merely calls eglMakeCurrent(0, 0, 0, 0), which is not enough. This commit also fixes the problem fixed with the previous commit, but I think both changes are needed to make our API usage clean.
| * vo_opengl: EGL: fix hwdec probingwm42016-05-053-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | If ANGLE was probed before (but rejected), the ANGLE API can remain "initialized", and eglGetCurrentDisplay() will return a non-NULL EGLDisplay. Then if a native GL context is used, the ANGLE/EGL API will then (apparently) keep working alongside native OpenGL API. Since GL objects are just numbers, they'll simply fail to interact, and OpenGL will get invalid textures. For some reason this will result in black textures. With VAAPI-EGL, something similar could happen in theory, but didn't in practice.
| * command: use NBSP for spacing after current marker for OSD listswm42016-05-041-2/+2
| | | | | | | | | | Requested. Will prevent odd layout for playlists with URLs longer than the screen.
| * client API: access choices as flags if appropriatewm42016-05-043-2/+24
| | | | | | | | | | | | | | | | | | | | | | | | Options/properties that are choices, and which include "yes" or "no" values (or both) can now be read and written as MPV_FORMAT_FLAG. For write access, rejecting flags in these cases was obnoxiously unintuitive and inconvenient. For read access, the value of this is less convincing, and actually it's a major API change. At this point I probably have to admit that the finer details of the client API are very unstable.
| * command: change some hwdec propertieswm42016-05-046-3/+81
| | | | | | | | | | | | | | | | Introduce hwdec-current and hwdec-interop properties. Deprecate hwdec-detected, which never made a lot of sense, and which is replaced by the new properties. hwdec-active also becomes useless, as hwdec-current is a superset, so it's deprecated too (for now).
| * lcms: don't warn/error on 3dlut cache missesNiklas Haas2016-05-041-1/+1
| | | | | | | | | | | | | | | | Cache misses are a normal and expected part of the operation of a cache. It doesn't really make sense to show a user-visible warning for them. To work-around this, just skip trying to open the cache if it doesn't exist yet.
| * lcms: improve black point handling (especially BT.1886)Niklas Haas2016-05-043-12/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | First of all, black point compensation is now on by default. This is really rather harmless and only improves the result (where "improvement" means "less black clipping"). Second, this adds an option to limit the ICC profile's contrast, which helps for untagged matrix profiles that are implicitly black scaled even in colorimetric intent. (Note that this relies on BPC being enabled to work properly, which is why the two changes are tied together) Third, this uses the LittleCMS built in black point estimator instead of relying on the presence of accurate A2B tables. This also checks tags and does some amounts of noise elimination. If the option is unspecified and the profile is missing black point information, print a warning instructing the user to set the option, and fall back to 1000 otherwise.
| * command: slightly nicer OSD list formattingwm42016-05-031-19/+17
| | | | | | | | | | | | | | | | | | For "current" markers on OSD properties like chapter-list. The marker is now an actual arrow instead of "> ", and non-current entries will have the same indentation as the current entry. While I'm not entirely sure about the new look of those lists, it's a bit better than the visual mess that was before.
| * osd: make osd_ass_0/1 defineswm42016-05-034-13/+11
| | | | | | | | So we can concatenate them with strings at compile time.
| * d3d: DXVA2_ModeMPEG2_VLD supports all profileswm42016-05-031-2/+1
| | | | | | | | Fixes hardware decoding of most mpeg2 things.
| * vo_opengl: vdpau: fix certain cases of preemption recovery failureswm42016-05-034-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The vdpau_mixer could fail to be recreated properly if preemption occured at some point before playback initialization (like when using --hwdec-preload and the opengl-cb API). Normally, the vdpau_mixer was supposed to be marked invalid when the components using it detect a preemption, e.g. in hwdec_vdpau.c. This one didn't mark the vdpau_mixer as invalid if preemption was detected in reinit(), only in map_image(). It's cleaner to detect preemption directly in the vdpau_mixer, which ensures it's always recreated correctly.
| * ao_alsa: log final hwparams toowm42016-05-031-1/+2
| | | | | | | | snd_pcm_hw_params() updates them.
| * x11: extend --x11-bypass-compositor with fs-only optionwm42016-05-022-8/+25
| | | | | | | | | | | | | | | | | | | | The "fs-only" choice sets the _NET_WM_BYPASS_COMPOSITOR to 1 if the window is fullscreened, and 0 otherwise. (0 is specified to be the implicit default - i.e. no change is requested in windowed mode.) In particular, change the default to "fs-only". Fixes #2582.
| * wscript: make at least 1 OpenGL output mandatorywm42016-05-011-1/+5
| | | | | | | | | | You have to explicitly disable it if you really want to compile without it (like with libass).
| * av_log: readd ffmpeg library runtime version mismatch warningwm42016-05-011-1/+13
| | | | | | | | It just happens far too often.
| * win32: replace libuuid.a usage with initguid.hJames Ross-Gowan2016-05-016-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Including initguid.h at the top of a file that uses references to GUIDs causes the GUIDs to be declared globally with __declspec(selectany). The 'selectany' attribute tells the linker to consolidate multiple definitions of each GUID, which would be great except that, in Cygwin and MinGW GCC 6.1, this method of linking makes the GUIDs conflict with the ones declared in libuuid.a. Since initguid.h obsoletes libuuid.a in modern compilers that support __declspec(selectany), add initguid.h to all files that use GUIDs and remove libuuid.a from the build. Fixes #3097
| * manpage: fix typoVaidas Kascėnas2016-04-301-1/+1
| | | | | | | | Signed-off-by: wm4 <wm4@nowhere>
| * os x: handle multiple dropped files on the windowNyx0uf2016-04-301-2/+7
| | | | | | | | | | | | Should fix #3076 (partially). Signed-off-by: wm4 <wm4@nowhere>
| * w32_common: respect --fit-border on size checkmaniak13492016-04-301-4/+20
| | | | | | | | | | | | Fit whole window or just a client area in accord with value of --fit-border option. Fixes #2935.
| * options: add --fit-border video optionmaniak13492016-04-303-0/+9
| | | | | | | | | | | | | | Flag that is set by default. Reseting it will result in mpv trying to fit client area with video instead of the whole window with border and decorations on the screen. Marked as (Windows only) for now until it's implemented on other platforms.
| * w32_common: fix size calculations for window resizemaniak13492016-04-301-3/+3
| | | | | | | | | | | | | | Substraction of 1 is not necessary due to .right and .bottom values of RECT struct describing a point one pixel outside of the rectangle. Fixes #2935. (2.b)
| * sd_ass: minor consistency adjustmentwm42016-04-301-2/+2
| |
| * sd_add: replace --sub-ass=no with --ass-style-override=stripwm42016-04-304-7/+15
| | | | | | | | | | | | --sub-ass=no / --ass=no still work, but --ass-style-override=strip is preferred now. With this change, --ass-style-override can control all the types of style overriding.
| * d3d11va: fix invalid deref on decoder init failureKevin Mitchell2016-04-291-1/+1
| | | | | | | | fixes #3092
| * d3d11va, dxva2: return the format struct directlywm42016-04-294-16/+13
| | | | | | | | Slight simplification, IMHO.
| * d3d11va, dxva2: simplify decoder selectionwm42016-04-294-67/+58
| | | | | | | | | | | | | | | | In particular, this moves the depth test to common code. Should be functionally equivalent, except that for DXVA2, the IDirectXVideoDecoderService_GetDecoderRenderTargets API is called more often potentially.
| * video: add IMGFMT_P010 aliaswm42016-04-293-2/+8
| | | | | | | | Gets rid of some silliness, and might be useful in the future.
| * command: don't seek immediately when setting a-b loop when pausedwm42016-04-281-5/+5
| | | | | | | | | | | | | | | | | | | | Because it's annoying and feels unnatural. If the B point is set while paused, don't seek. If not paused, it should properly loop immediately. In theory there's a chance that it will show at least 1 frame after the loop point when setting the B point. But let's not care about that.
| * ao_alsa: log hwparams while restricting themwm42016-04-281-0/+43
| | | | | | | | | | | | They can sometimes fail, so I want logging to determine what's going on. Most of them are at debug log-level, except the final hwparams.
| * vo_opengl: fix build with GLES3 headerswm42016-04-271-0/+2
| | | | | | | | Legacy desktop GL only symbols. Broken by the previous commit.
| * vo_opengl: support GL_EXT_texture_norm16 on GLESwm42016-04-274-7/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This gives us 16 bit fixed-point integer texture formats, including ability to sample from them with linear filtering, and using them as FBO attachments. The integer texture format path is still there for the sake of ANGLE, which does not support GL_EXT_texture_norm16 yet. The change to pass_dither() is needed, because the code path using GL_R16 for the dither texture relies on glTexImage2D being able to convert from GL_FLOAT to GL_R16. GLES does not allow this. This could be trivially fixed by doing the conversion ourselves, but I'm too lazy to do this now.
| * vo_opengl: always use sized internal formatswm42016-04-271-8/+8
| | | | | | | | | | This shouldn't make much of a difference, but should make the following commit simpler.
| * player: strictly wait until done when backsteppingwm42016-04-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | This fixes backstepping getting "stuck" when e.g. holding down a key bound to the backstep command. The reason is that even if the backstep itself is finished, the next backstep might not take the new video PTS as reference if the hr-seek itself isn't finished yet. The intention of not waiting for the hr-seek to finish was faster backstepping by possibly skipping audio decoding. But it probably doesn't matter enough to make the rest of the code more complex.
| * vo_opengl: d3d11egl: minor simplificationwm42016-04-271-5/+1
| | | | | | | | | | This should be ok. eglBindTexImage() just associates the texture, and does not make a copy (not even a conceptual one).
| * vo_opengl: d3d11egl: print warning on unsupported colorspaceswm42016-04-271-0/+11
| | | | | | | | | | Not much we can do about. If there are many complaints, a mechanism to automatically disable interop in such cases could be added.
| * d3d11va: store texture/subindex in IMGFMT_D3D11VA plane pointerswm42016-04-275-141/+72
| | | | | | | | | | | | | | | | | | Basically this gets rid of the need for the accessors in d3d11va.h, and the code can be cleaned up a little bit. Note that libavcodec only defines a ID3D11VideoDecoderOutputView pointer in the last plane pointers, but it tolerates/passes through the other plane pointers we set.
| * vd_lavc: adjust D3D11VA autoprobe orderwm42016-04-271-1/+3
| | | | | | | | | | | | We want to prefer d3d11va over dxva2 anything. But since dxva2 copyback is more efficient than d3d11va's currently, d3d11va-copy should come last.
| * vo_opengl: D3D11VA + ANGLE interopwm42016-04-2712-2/+471
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This uses ID3D11VideoProcessor to convert the video to a RGBA surface, which is then bound to ANGLE. Currently ANGLE does not provide any way to bind nv12 surfaces directly, so this will have to do. ID3D11VideoContext1 would give us slightly more control about