1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-27 17:42:17 +00:00
mpv/libvo
wm4 1eaf5d2626 vo_direct3d: implement YUV conversion using shaders
Use the 3D rendering functions and shaders to render the video frame. This
is very similar to vo_gl. Most planar formats with varying chroma shifts
and bit depths are supported (including 10 bit), as well as some RGB
formats. The old code that used D3D's StretchRect function is still
available, but will by default be used with the least priority.

Also implement video equalizers and colorspace selection. These use the
same code as vo_gl and vo_vdpau, and are available only if shader YUV
conversion is active.

The rendering is extremely simple and naive, there are no filters etc.

Since compiling shaders seems to require the 500 MB DirectX SDK, all
shaders come in pre-compiled form, and there is no make rule to compile
them. mplayer should be compilable without 500 MB of garbage.
The main problem is that compiling shaders within an application seems to
require d3dx9_*.dll, which isn't installed by default.

Add an option ("disable-texture-align") that allows making the video
textures exactly the same size as the source video. The code used to align
the OSD texture size on 16 for unknown reasons, but since this was perhaps
a good reason, this behavior is kept for video textures as well. (There is
a chance that the alignment improves performance and stability with some
drivers.) Passing this option disables this behavior. It is useful for
reducing texture filtering artifacts at the bottom/right borders.
2012-03-17 21:05:34 +01:00
..
aclib_template.c
aclib.c
aspect.c VO: silence "[ASPECT] Warning: No suitable new res found!" 2011-07-05 00:38:34 +03:00
aspect.h
cocoa_common.h vo_gl: cocoa: point swapinterval to cocoa_common function 2011-12-06 23:11:50 +01:00
cocoa_common.m vo_gl: cocoa: point swapinterval to cocoa_common function 2011-12-06 23:11:50 +01:00
csputils.c vo_gl: improve 10-bit YUV->RGB conversion accuracy slightly 2012-03-09 20:48:55 +02:00
csputils.h vo_gl: improve 10-bit YUV->RGB conversion accuracy slightly 2012-03-09 20:48:55 +02:00
d3d_shader_yuv.h vo_direct3d: implement YUV conversion using shaders 2012-03-17 21:05:34 +01:00
d3d_shader_yuv.hlsl vo_direct3d: implement YUV conversion using shaders 2012-03-17 21:05:34 +01:00
eosd_packer.c libvo, vo_vdpau: make the EOSD packer code from vo_vdpau generic 2011-12-25 20:42:18 +01:00
eosd_packer.h libvo, vo_vdpau: make the EOSD packer code from vo_vdpau generic 2011-12-25 20:42:18 +01:00
fastmemcpy.h
geometry.c
geometry.h
gl_common.c vo_gl: add "backend" suboption to allow selecting the GUI backend 2012-02-09 04:58:41 +01:00
gl_common.h vo_gl: add "backend" suboption to allow selecting the GUI backend 2012-02-09 04:58:41 +01:00
gtf.c
gtf.h
matrixview_font.h
mga_template.c mpcodecs: remove mp_image_t.x/y 2012-02-24 15:25:22 +01:00
old_vo_defines.h
old_vo_wrapper.c libvo: remove title argument from struct vo_driver.config 2011-12-06 20:32:33 +01:00
old_vo_wrapper.h libvo: remove title argument from struct vo_driver.config 2011-12-06 20:32:33 +01:00
osd_template.c
osd.c
osd.h
osx_common.c input: move all key code lists to input/keycodes.h 2011-05-02 00:43:31 +03:00
osx_common.h
sdl_common.c vo: sdl: handle key modifiers 2011-10-24 07:21:32 +03:00
sdl_common.h vo_gl/sdl: use desktop resolution for fullscreen mode 2011-10-24 06:18:29 +03:00
spuenc.c
spuenc.h
vdpau_template.c vo_vdpau: implement screenshots 2011-11-25 23:56:28 +02:00
vesa_lvo.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
vesa_lvo.h
video_out_internal.h cleanup: remove more warnings 2011-05-02 00:46:48 +03:00
video_out.c windows support: prefer vo_direct3d over vo_directx 2012-03-17 20:58:16 +01:00
video_out.h vo: reject vo_redraw_frame() if no frames have been drawn 2012-02-28 03:17:25 +02:00
videodev_mjpeg.h
vo_3dfx.c vo_dga: replace xf86dga.h with Xxf86dga.h 2011-04-20 04:22:53 +03:00
vo_aa.c cleanup: shut up more warnings 2011-05-06 18:33:16 +03:00
vo_bl.c
vo_caca.c input: move all key code lists to input/keycodes.h 2011-05-02 00:43:31 +03:00
vo_corevideo.h
vo_corevideo.m vo_corevideo: fix key interpretation with modifiers 2011-11-26 20:04:16 +02:00
vo_dfbmga.c cleanup: some warning fixes and minor cleanups 2011-06-29 09:17:19 +03:00
vo_dga.c vo_dga: replace xf86dga.h with Xxf86dga.h 2011-04-20 04:22:53 +03:00
vo_direct3d.c vo_direct3d: implement YUV conversion using shaders 2012-03-17 21:05:34 +01:00
vo_directfb2.c mpcodecs: remove mp_image_t.x/y 2012-02-24 15:25:22 +01:00
vo_directx.c vo_directx: do not clip overlay against screen size 2012-03-17 20:58:16 +01:00
vo_dxr3.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
vo_fbdev2.c cleanup: vo_fbdev: simplify some code 2011-05-02 00:36:20 +03:00
vo_fbdev.c Merge branch 'mplayer1_changes' 2011-05-02 00:46:03 +03:00
vo_ggi.c input: move all key code lists to input/keycodes.h 2011-05-02 00:43:31 +03:00
vo_gif89a.c
vo_gl.c Merge remote-tracking branch 'origin/master' into my_master 2012-03-16 19:14:44 +01:00
vo_ivtv.c
vo_ivtv.h
vo_jpeg.c windows support: unicode filenames 2012-03-09 20:48:54 +02:00
vo_kva.c mpcodecs: remove mp_image_t.x/y 2012-02-24 15:25:22 +01:00
vo_md5sum.c cleanup: vo_md5sum: Remove unused define/undef 2011-01-31 16:03:10 +02:00
vo_mga.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
vo_mpegpes.c cleanup: silence some clang warnings 2011-07-06 13:01:08 +03:00
vo_null.c
vo_png.c vo_png: set AVCodecContext parameters before opening it 2012-02-28 22:17:24 +02:00
vo_pnm.c windows support: unicode filenames 2012-03-09 20:48:54 +02:00
vo_quartz.c input: move all key code lists to input/keycodes.h 2011-05-02 00:43:31 +03:00
vo_s3fb.c cleanup: mark some vo_directfb2.c and vo_s3fb.c functions static 2011-06-29 11:43:19 +03:00
vo_sdl.c build: switch to libavutil bswap.h and intreadwrite.h 2012-02-01 22:46:27 +02:00
vo_svga.c mpcodecs: remove mp_image_t.x/y 2012-02-24 15:25:22 +01:00
vo_tdfx_vid.c
vo_tdfxfb.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
vo_tga.c
vo_v4l2.c
vo_v4l2.h
vo_vdpau.c Merge remote-tracking branch 'origin/master' into my_master 2012-03-16 19:14:44 +01:00
vo_vesa.c vidix: drop VIDIX support 2011-01-31 16:03:10 +02:00
vo_wii.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
vo_x11.c vo_xv: avoid clearing too much on resize 2011-07-06 08:36:46 +03:00
vo_xmga.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
vo_xover.c
vo_xv.c Merge remote-tracking branch 'wm4/window_title' 2011-12-07 00:13:51 +02:00
vo_xvr100.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
vo_yuv4mpeg.c sub/OSD: move some related files to sub/ 2011-01-26 20:39:05 +02:00
w32_common.c win32: different method to force window aspect ratio 2012-03-17 20:58:16 +01:00
w32_common.h
x11_common.c x11: fix crash when using switch_video (broken by UTF-8 input changes) 2012-02-24 09:39:00 +01:00
x11_common.h x11: allow unicode input 2012-01-18 04:13:27 +01:00