mpv/player
wm4 9f595f3a80 vo_gpu: make screenshots use the GL renderer
Using the GL renderer for color conversion will make sure screenshots
will use the same conversion as normal video rendering. It can do this
for all types of screenshots.

The logic when to write 16 bit PNGs changes. To approximate the old
behavior, we decide by looking whether the source video format has more
than 8 bits per component. We apply this logic even for window
screenshots. Also, 16 bit PNGs now always include an unused alpha
channel. The reason is that FFmpeg has RGB48 and RGBA64 formats, but no
RGB064. RGB48 is 3 bytes and usually not supported by GPUs for
rendering, so we have to use RGBA64, which forces an alpha channel.

Will break for users who use --target-trc and similar options.

I considered creating a new gl_video context, but it could double GPU
memory use, so I didn't.

This uses FBOs instead of glGetTexImage(), because that increases the
chance it could work on GLES (e.g. ANGLE). Untested. No support for the
Vulkan and D3D11 backends yet.

Fixes #5498. Also fixes #5240, because the code for reading back is not
used with the new code path.
2018-02-11 17:45:51 -08:00
..
javascript js: implement mp.msg.trace() 2017-12-16 02:25:24 -08:00
lua ytdl_hook: pass http proxy to ffmpeg 2018-01-30 12:19:34 +00:00
audio.c audio: move to decoder wrapper 2018-01-30 03:10:27 -08:00
client.c client: Allow "C.UTF-8" as LC_NUMERIC locale 2017-11-30 21:06:37 +02:00
client.h
command.c player: correctly set track information on adding external files 2018-02-10 06:50:32 -08:00
command.h player: update duration based on highest timestamp demuxed 2017-12-24 21:49:12 +01:00
configfiles.c player: silence config file loading message on resuming 2018-01-13 03:26:45 -08:00
core.h player: correctly set track information on adding external files 2018-02-10 06:50:32 -08:00
external_files.c player: make track language matching case insensitive 2017-12-23 15:14:13 -07:00
external_files.h
javascript.c lua+js: implement utils.file_info() 2017-12-13 21:55:28 +02:00
loadfile.c player: correctly set track information on adding external files 2018-02-10 06:50:32 -08:00
lua.c msg: reinterpret a bunch of message levels 2017-12-15 22:28:47 -08:00
main.c audio: move to decoder wrapper 2018-01-30 03:10:27 -08:00
misc.c options: move most subtitle and OSD rendering options to sub structs 2018-01-02 14:27:37 -08:00
osd.c video: make decoder wrapper a filter 2018-01-30 03:10:27 -08:00
playloop.c audio: move to decoder wrapper 2018-01-30 03:10:27 -08:00
screenshot.c vo_gpu: make screenshots use the GL renderer 2018-02-11 17:45:51 -08:00
screenshot.h
scripting.c msg: reinterpret a bunch of message levels 2017-12-15 22:28:47 -08:00
sub.c video: make decoder wrapper a filter 2018-01-30 03:10:27 -08:00
video.c video: fix passing down FPS to vf_vapoursynth 2018-02-03 05:01:29 -08:00