0
0
mirror of https://github.com/mpv-player/mpv.git synced 2024-09-20 20:03:10 +02:00
mpv/video/out
wm4 5827d9cc09 vo_opengl: fix rotation
This has been completely broken since commit 93546f0c. But even before,
rotation handling did not make too much sense. In particular, it rotated
the contents of the cropped image, instead of adjusting the crop
rectangle as well. The result was that things like panscan or zooming
did not behave as expected with rotation applied.

The same is true for vertical flipping. Flipping is triggered by
negative image stride. OpenGL does not support flipping the image on
upload, so it's done as part of the rendering. It can be triggered with
--vf=flip, but other filters and even decoders could setup negative
stride to flip the image.

Fix these issues by applying transforms to texture coordinates properly,
and by making rotation and flipping part of these transforms.

This still doesn't work properly for separated scaling. The issue is
that we'd have to adjust how the passes are done. For now, pick a very
stupid solution by rotating the image to a FBO, and then scaling from
that. This has the avantage that the scale logic doesn't have to be
complicated for such a rare case. It could be improved later.

Prescaling is apparently still broken. I don't know if chroma
positioning works properly either. None of this should affect the case
with no rotation.
2016-03-28 17:02:27 +02:00
..
cocoa cocoa: support the "window-minimized" property 2015-03-08 22:00:47 +01:00
opengl vo_opengl: fix rotation 2016-03-28 17:02:27 +02:00
wayland Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
win32 mpv_talloc.h: rename from talloc.h 2016-01-11 21:05:55 +01:00
aspect.c video: switch from using display aspect to sample aspect 2015-12-19 20:45:36 +01:00
aspect.h Update license headers 2015-04-13 12:10:01 +02:00
bitmap_packer.c Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
bitmap_packer.h
cocoa_common.h vo_opengl: cocoa: switch to new internal API 2015-10-01 22:42:25 +02:00
cocoa_common.m cocoa: get fps only from dislaylink 2016-01-14 11:11:43 +01:00
d3d_shader_420p.h vo_direct3d: support NV12 with shaders 2015-03-02 19:09:18 +01:00
d3d_shader_nv12.h vo_direct3d: support NV12 with shaders 2015-03-02 19:09:18 +01:00
d3d_shader_yuv.hlsl vo_direct3d: support NV12 with shaders 2015-03-02 19:09:18 +01:00
dither.c Change GPL/LGPL dual-licensed files to LGPL 2016-01-19 18:36:34 +01:00
dither.h gl_video: improve dithering 2013-05-26 16:44:20 +02:00
drm_common.c Change GPL/LGPL dual-licensed files to LGPL 2016-01-19 18:36:34 +01:00
drm_common.h Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
filter_kernels.c filter_kernels: improve the gaussian function 2016-01-07 12:17:34 +01:00
filter_kernels.h filter_kernels.h: adjust the license 2016-01-19 18:41:11 +01:00
vo_caca.c video/out: remove an unused parameter 2015-10-03 18:20:16 +02:00
vo_direct3d.c video: remove some useless old RGB formats 2016-01-25 10:43:35 +01:00
vo_drm.c Change GPL/LGPL dual-licensed files to LGPL 2016-01-19 18:36:34 +01:00
vo_image.c mpv_talloc.h: rename from talloc.h 2016-01-11 21:05:55 +01:00
vo_lavc.c mpv_talloc.h: rename from talloc.h 2016-01-11 21:05:55 +01:00
vo_null.c video/out: remove an unused parameter 2015-10-03 18:20:16 +02:00
vo_opengl_cb.c vo_opengl_cb: unbreak destroying+recreating GL context 2016-02-15 14:50:03 +01:00
vo_opengl.c Change GPL/LGPL dual-licensed files to LGPL 2016-01-19 18:36:34 +01:00
vo_rpi.c vo_opengl, vo_rpi: unbreak a few things 2016-02-24 10:23:50 +01:00
vo_sdl.c video: remove some useless old RGB formats 2016-01-25 10:43:35 +01:00
vo_vaapi.c vaapi: replace VA_STR_FOURCC 2016-01-11 20:30:36 +01:00
vo_vdpau.c mpv_talloc.h: rename from talloc.h 2016-01-11 21:05:55 +01:00
vo_wayland.c video: remove some useless old RGB formats 2016-01-25 10:43:35 +01:00
vo_x11.c vo_xv, vo_x11: warn that these VOs should not be used 2016-03-06 19:22:15 +01:00
vo_xv.c vo_xv, vo_x11: warn that these VOs should not be used 2016-03-06 19:22:15 +01:00
vo.c mpv_talloc.h: rename from talloc.h 2016-01-11 21:05:55 +01:00
vo.h vo: get rid of vo_get_window_title() 2015-12-06 18:41:31 +01:00
w32_common.c w32_common: switch to UniformResourceLocatorW 2016-02-02 21:51:50 +01:00
w32_common.h vo_direct3d: fix operation 2015-10-31 12:52:02 +01:00
wayland_common.c Revert "wayland: set fs mode on every configure" 2016-03-19 14:09:13 +01:00
wayland_common.h Relicense some non-MPlayer source files to LGPL 2.1 or later 2016-01-19 18:36:06 +01:00
win_state.c video: switch from using display aspect to sample aspect 2015-12-19 20:45:36 +01:00
win_state.h video/out: separate out code to compute window size 2014-05-06 20:22:32 +02:00
x11_common.c x11, input: move mime type drag&drop negotiation to common code 2016-03-15 22:42:06 +01:00
x11_common.h x11: move vo->input_ctx accesses to x11->input_ctx 2016-03-15 22:11:31 +01:00
x11_icon.bin x11: add window icon 2013-09-01 23:27:33 +02:00