aboutsummaryrefslogtreecommitdiffhomepage
path: root/video/out
Commit message (Collapse)AuthorAge
* vo_opengl: hwdec_vaegl: add experimental P010 supportGravatar wm42017-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | This does not work, because Mesa has no support for the proposed DRM_FORMAT_R16 and DRM_FORMAT_GR16 formats. It's also untested of course. As long as video/decode/vaapi.c doesn't hand down P010 surfaces, this is fine anyway. This can be tested by removing the code that disables P010 output: diff --git a/video/decode/vaapi.c b/video/decode/vaapi.c --- a/video/decode/vaapi.c +++ b/video/decode/vaapi.c @@ -55,13 +55,6 @@ static int init_decoder(struct lavc_ctx *ctx, int w, int h) assert(!ctx->avctx->hw_frames_ctx); - // If we use direct rendering, disallow 10 bit - it's probably not - // implemented yet, and our downstream components can't deal with it. - if (!p->own_ctx && required_sw_format != AV_PIX_FMT_NV12) { - MP_WARN(ctx, "10 bit surfaces are currently supported.\n"); - return -1; - } -
* cuda: use libavutil functions for copying hw surfaces to memoryGravatar wm42017-01-12
| | | | | | | | mp_image_hw_download() is a libavutil wrapper added in the previous commit. We drop our own code completely, as everything is provided by libavutil and our helper wrapper. This breaks the screenshot code, so that has to be adjusted as well.
* cocoa: don't change Space on quit in fullscreenGravatar Akemi2017-01-11
| | | | | | | circumvent undefined behavior when quitting in fullscreen. Fixes #3957
* cocoa: rate limit video outputGravatar Akemi2017-01-11
| | | | | | | | | | | | the display refresh rate can't be estimated correctly in some cases and just increases till it turns off display-resample. cases are off-screen rendering (different space), mpv being completely hidden behind another window or the mission control view. this utilise the unused displaylink callback to limit the refresh rate to the actual display refresh rate.
* cocoa: add border cyclingGravatar Akemi2017-01-11
| | | | Fixes #2430
* cocoa: fix handling of geometry optionGravatar Akemi2017-01-11
| | | | | | | | | | | | | | This flips the y-coordinate to be consistent with other platforms and the manual. furthermore it fixes an unwanted behaviour of the cocoa convertRectFromBacking method, where the x- and y-coordinate was divided by the same factor as the width and height instead of placing the new scaled rectangle at the same relative position as the original unscaled rectangle, by manually calculating the new position. Fixes #3867
* vo_drm: remove 2 redundant include statementsGravatar wm42017-01-09
| | | | They're already pulled in by drm_common.h.
* drm: include <poll.h> instead of <sys/poll.h>Gravatar wm42017-01-09
| | | | | | | I'm not sure what systems have <sys/poll.h> (maybe there are historical reasons why some would), but POSIX defines <poll.h>. Although this code is full of highly OS specific calls (like ioctl()), there's no reason not to use the more standard include path.
* vo_opengl: replace 2 memsetsGravatar wm42017-01-08
| | | | Cosmetic change.
* context_wayland: do not call vo_wayland_request_frame() upon bufferswapGravatar Rostislav Pehlivanov2017-01-07
| | | | | | | | vo_wayland_wait_events() is going to return when its time to swap the buffers anyway, calling request_frame() before makes no sense. Fixes the constant high CPU usage by the compositor when mpv is paused and the window is in view.
* win32: fix for wm_syscommandGravatar pavelxdd2017-01-05
| | | | | | | | According to MSDN, in WM_SYSCOMMAND messages, the four low-order bits of the wParam parameter are used internally by the system. To obtain the correct result when testing the value of wParam, an application must combine the value 0xFFF0 with the wParam value by using the bitwise AND operator.
* vo_opengl: egl: handle potential eglChooseConfig failuresGravatar wm42016-12-31
| | | | | | | | | | | | | | | This is actually a pretty important fix. eglChooseConfig() might be the first thing that fails when porobing for desktop GL / ES2 / ES3 support, because EGL_RENDERABLE_TYPE is set values specific to the underlying APIs. Not sure how the hell this worked before. EGL 1.4 implementations certainly could fail the call with EGL_BAD_ATTRIBUTE if EGL_RENDERABLE_TYPE has EGL_OPENGL_ES3_BIT set. It's quite possible that many EGL implementations tolerate invalid EGLConfig values steming from uininitialized EGLConfig values (and eglCreateWindowSurface() even is specified to return EGL_BAD_CONFIG error code for "not valid" EGLConfigs).
* vo_opengl: egl: fix depth size parameterGravatar wm42016-12-30
| | | | | | This was accidentally flipped from 0 to 1 in a previous commit. Actually simply remove it, because 0 is the default value for this parameter anyway.
* vo_opengl: x11egl: fix alpha modeGravatar wm42016-12-30
| | | | | | | | | | | | | | | | | | The way it should (probably) work is that selecting a RGBA framebuffer format will simply make the compositor use the alpha. It works this way on Wayland. On X11, this is... not done. Instead, both GLX and EGL report two FB configs, which are exactly the same, except for the platform-specific visual. Only the latter (non-default) points to a visual that actually has alpha. So you can't make the pure GLX and EGL APIs select alpha mode, and you have to override manually. Or in other words, alpha was hacked violently into X11, in a way that doesn't really make sense for the sake of compatibility, and forces API users to wade through metaphorical cow shit to deal with it. To be fair, some other platforms actually also require you to enable alpha explicitly (rather than looking at the framebuffer type), but they skip the metaphorical cow shit step.
* vo_opengl: x11: move RGBA visual test to x11_common.cGravatar wm42016-12-30
| | | | | | | | So that the EGL code can use it too. Also print the actual FB config ID, instead of nonsense. (I _think_ once in the past a certain GLX implementation just used numeric config IDs casted to EGLConfig - or at least that would explain this nonsense.)
* vo_opengl: egl_helpers: add a way to override config selectionGravatar wm42016-12-30
| | | | | | | Preparation for the following commits. Since at least theoretically the config selection depends on the context type (EGL_RENDERABLE_TYPE has separate bits for ES 2, ES 3, and desktop GL), doing it any other way would be too painful.
* vo_opengl: egl_helpers: add a way to pass more optionsGravatar wm42016-12-30
| | | | | | | | | | For X11 garbage we have to pass some annoying parameters to EGL context creation. Add some sort of extensible API, so that adding a new parameter doesn't break all callers. We still want to keep it as a single function, because it's so nice isolating all the EGL nonsense API boilerplate like this. (Did I mention yet that X11 and EGL are garbage?) Also somewhat simplifies the vo_flags mess in the helper internals.
* vo_opengl: partially fix rotation for 4:2:2 contentGravatar Niklas Haas2016-12-28
| | | | | | | | | | | | The chroma alignment renormalization code forgot to account for the fact that the chroma subsampling ratio has to be rotated. Unfortunately, doing it this way seems to have somewhat broken the chroma offset rotation logic for odd-sized subsampled image files. While this is a bug, it's much, much less noticeable, so it's not nearly as important as the bug this change fixes. Either way, a future patch needs to still revise this logic, ideally by redesigning the entire rotation mechanism.
* cocoa: fix build on OS X 10.9Gravatar Akemi2016-12-26
| | | | fixes #3946
* Fix mistakes in spelling and grammarGravatar Dario Russo2016-12-21
|
* cocoa: cosmetic fixesGravatar Akemi2016-12-16
|
* cocoa: fullscreen refactoringGravatar Akemi2016-12-15
| | | | | | | | | | this replaces the old fullscreen with the native macOS fullscreen. additional the --fs-black-out-screens was removed since the new API doesn't support it in a way the old one did. it can possibly be re-added if done manually. Fixes #2857 #3272 #1352 #2062 #3864
* win32: change the log level of 'move window' msgGravatar pavelxdd2016-12-14
| | | | It does more harm than good, since it spams terminal a lot
* cocoa: fix dropping of certain urls on the windowGravatar Akemi2016-12-14
| | | | | | the 'path' of an youtube url (youtube.com/watch?v=x) would just be '/watch'. obviously this fails to load.
* win32: window styles improvementsGravatar pavelxdd2016-12-12
| | | | | | | Allow minimizing the borderless/fullscreen window by clicking on the taskbar button or pressing Win+Down hotkey. Also fixes #2229 and probably fixes #2451
* win32: update winapi functions namesGravatar pavelxdd2016-12-12
| | | | | | According to MSDN, GetWindowLong and SetWindowLong have been superseded by GetWindowLongPtr and SetWindowLongPtr. It's a cosmetic code change in this case.
* client API: allow passing NULL to mpv_opengl_cb_uninit_gl()Gravatar wm42016-12-09
| | | | In which case it does nothing.
* vo_rpi: partially undeprecateGravatar wm42016-12-08
| | | | Using vo_opengl + MMAL overlay didn't quite work out.
* Remove compatibility thingsGravatar wm42016-12-07
| | | | | | Possible with bumped FFmpeg/Libav. These are just the simple cases.
* vo_opengl: hwdec_cuda: Don't include hwcontext headersGravatar Philip Langdale2016-12-04
| | | | | After various simplifications, these includes simply aren't needed now.
* vo_opengl: don't rely on viewport to contain window dimensionsGravatar wm42016-12-02
| | | | | | | | | | | | | Apparently we don't always set the viewport to window dimensions anymore, e.g. if nothing is actually rendered. This means the viewport can contain old values. The window screenshot code uses the viewport values to guess the default framebuffer dimensions. With --force-window --idle --no-osc (which draws nothing and issues a glClear() command only), taking a screenshot would yield an image with the wrong size and possibly garbage in it. Fix this by explicitly passing the currently known window dimensions. Abusing the values stored in the viewport was questionable anyway.
* wayland: destroy input before closing the display connection.Gravatar Emmanuel Gil Peyrot2016-11-27
| | | | | | Fixes a segfault introduced in libwayland e8ad23266f36521215dcd7cfcc524e0ef67d66dd, where a poison value has been introduced to catch this kind of use-after-free bug.
* options: remove deprecated sub-option handling for --vo and --aoGravatar wm42016-11-25
| | | | | | | | Long planned. Leads to some sanity. There still are some rather gross things. Especially g_groups is ugly, and a hack that can hopefully be removed. (There is a plan for it, but whether it's implemented depends on how much energy is left.)
* angle_dynamic: silence warnings during compilationGravatar pavelxdd2016-11-25
| | | | | | If Angle is statically linked there were some warnings during compilation. Fixes #3834
* vo_opengl: hwdec_cuda: Prefix cuda symbols to avoid collisionsGravatar Philip Langdale2016-11-24
| | | | | | We want to avoid causing problems if libmpv is used in an application that links cuda, or if the libav* libraries are linked with cuda, as might happen if the scale_npp filter is used.
* vo_opengl: hwdec_cuda: make some init errors verboseGravatar wm42016-11-24
| | | | | Improves autoprobe behavior. This is equivalent to other hwdec interop wrappers. If CUDA is just not available, it should remain silent.
* vo_opengl: hwdec_cuda: fix crash when trying to use hwdec=cuda if cuda SDK ↵Gravatar pavelxdd2016-11-24
| | | | | | is not present If CUDA SDK wasn't installed, mpv crashed immediately with the message "Failed to load CUDA symbols"
* vo_opengl/cuda_dynamic: Use explicit cast to silence warnings on windowsGravatar Philip Langdale2016-11-24
| | | | Fixes #3834
* wscript: Fix cuda test to actually work when cuda SDK is not presentGravatar Philip Langdale2016-11-23
| | | | | | | | | | The test ended up failing if cuda.h wasn't present, even if cuda.h isn't used during the actual build. This test is attempting to establish if the ffmpeg being built against has dynlink_cuda support. While it might theoretically be possible to build against the older normally-linked-cuda version of ffmpeg, it seems more trouble than it's worth.
* angle_dynamic: minor simplificationGravatar wm42016-11-23
| | | | Remove the inverted condition by swapping if branches.
* Support linking ANGLEGravatar Martin Herkt2016-11-23
|
* vo_opengl: hwdec_d3d11egl: fix ANGLE fallback defineGravatar wm42016-11-23
| | | | | | This was a typo in the extensiuon spec and was probably always broken. Could have led to broken builds when used with ancient ANGLE headers (or possibly generic EGL headers).
* vo_opengl: hwdec_cuda: Use dynamic loading for cuda functionsGravatar Philip Langdale2016-11-23
| | | | | This change applies the pattern used in ffmpeg to dynamically load cuda, to avoid requiring the CUDA SDK at build time.
* vo_opengl: hwdec_cuda: Support P016 output surfacesGravatar Philip Langdale2016-11-22
| | | | | | | | | The latest 375.xx nvidia drivers add support for P016 output surfaces. In combination with an ffmpeg change to return those surfaces, we can display them. The bulk of the work is related to knowing which format you're dealing with at the right time. Once you know, it's straight forward.
* win32: fix some Clang warningsGravatar James Ross-Gowan2016-11-17
| | | | | | | | - win32-console-wrapper.c was inconsistently using the explicit Unicode versions of some Windows API functions and structures. - vo.c should use llabs for int64_t, since long is 32-bit on Windows. - vo_direct3d.c had a potential use of an uninitialized variable if it took the first goto error_exit.
* vo_opengl: blend against background color for --alpha=blendGravatar Philip Sequeira2016-11-13
| | | | | Do it after color management, etc. so that it matches the color drawn in the margins.
* cocoa: option to scale window by HiDPI scale factorGravatar Akemi2016-11-11
| | | | | | | | | | Deactivating this options makes it possible to circumvent the default OS X behavior of using points. Windows on HiDPI resolutions won't open in double the size anymore and videos are display in their native resolution when windowed. Fixes #3716
* vo_opengl: fix --blend-subtitles handlingGravatar wm42016-11-07
| | | | | | | | | | | | | The intention was that if --blend-subtitles is enabled, the frame should always be re-rendered instead of using e.g. a cached scaled frame. The reason is that subtitles can change anyway, e.g. if you pause and change subtitle size and such. On the other hand, if the frame is marked as repeated, it should always use the cached copy. Actually "simplify" this and drop the cache only if playback is paused (which frame->still indicates indirectly). Also see PR #3773.
* vo_opengl: fix redrawing with hardware decodingGravatar wm42016-11-07
| | | | | | | | unmap_current_image() is called after rendering. This essentially invalidates the textures, so we can't assume that the image is still present. Also see PR #3773.
* Apply autofit-larger after autofit-smallerGravatar Nils Maier2016-11-03
| | | | | | This prevents the window scaling beyond screen dimensions Fixes #3753