1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-23 00:06:56 +00:00
mpv/video
Niklas Haas 7f67a553f6 vo_gpu_next: don't allocate dr_buf as part of the AVBufferRef
Some decoders, notably hevcdec, will unconditionally memset() the entire
AVBufferRef based on the AVBufferRef size. This is bad news for us,
since it also overwrites our `struct dr_buf`.

Rewrite this code to make it more robust - keep track of the DR buf
metadata in a separate allocation instead. Has the unfortunate downside
of technically being undefined behavior if `opaque` is not at least 64
bits in size, though, but avoids this issue.

Maybe there's a better way for us to unconditionally keep track of DR
allocation metadata. I could try adding it into the `mp_image` itself.
Maybe on a rainy day. For now, this works.

Fixes #9949
Might fix #9526
2022-03-06 15:53:47 +01:00
..
decode vo_gpu: hwdec: load hwdec interops on-demand by default 2022-02-17 20:02:32 -08:00
filter vo_gpu: hwdec: load hwdec interops on-demand by default 2022-02-17 20:02:32 -08:00
out vo_gpu_next: don't allocate dr_buf as part of the AVBufferRef 2022-03-06 15:53:47 +01:00
csputils.c csputils: add mappings for DCI-P3 (ST.431-2) and P3-D65 (ST.432-1) 2020-12-30 20:03:54 +02:00
csputils.h csputils: add MP_CHROMA_TOPLEFT 2020-12-02 01:36:29 +01:00
cuda.c video: cuda: add explicit context creation for copy hwaccels 2019-12-29 14:32:47 -08:00
d3d.c video: remove mp_image_params.hw_flags field 2019-10-17 22:43:14 +02:00
d3d.h video: move d3d.c out of decode sub directory 2017-12-01 17:58:56 +01:00
fmt-conversion.c video: alias IMGFMT_RGB30 to AV_PIX_FMT_X2RGB10 2020-06-17 19:43:09 +02:00
fmt-conversion.h
hwdec.c vo_gpu: hwdec: load hwdec interops on-demand by default 2022-02-17 20:02:32 -08:00
hwdec.h vo_gpu: hwdec: load hwdec interops on-demand by default 2022-02-17 20:02:32 -08:00
image_loader.c screenshot, vo_image: use global swscale/zimg parameters 2019-10-31 15:44:09 +01:00
image_loader.h
image_writer.c image_writer: replace deprecated av_init_packet() 2022-01-10 22:56:52 +01:00
image_writer.h screenshot, vo_image: use global swscale/zimg parameters 2019-10-31 15:44:09 +01:00
img_format.c video: some concessions to big endian hosts 2020-06-17 19:44:45 +02:00
img_format.h img_format: expose another helper 2020-05-21 02:29:05 +02:00
mp_image_pool.c mp_image_pool: expose a function for reporting hw download format 2019-10-02 21:07:14 +02:00
mp_image_pool.h mp_image_pool: expose a function for reporting hw download format 2019-10-02 21:07:14 +02:00
mp_image.c mp_image: fix mp_image_plane_w/h 2022-02-24 18:36:28 +01:00
mp_image.h mp_image: add dolbyvision metadata 2022-01-09 13:06:27 +01:00
repack.c osdep: rename MP_UNREACHABLE 2021-11-03 15:15:20 +01:00
repack.h repack: add support for converting from/to float formats 2020-05-09 18:02:57 +02:00
sws_utils.c sws_utils: work around libswscale corrupting memory yet again 2020-09-17 15:24:27 +02:00
sws_utils.h sws_utils: work around libswscale corrupting memory yet again 2020-09-17 15:24:27 +02:00
vaapi.c vaapi: correct broken NULL check 2020-06-03 15:12:08 +02:00
vaapi.h vo_gpu: hwdec_vaapi: Suppress format errors when probing 2019-07-08 01:57:02 +02:00
vdpau_functions.inc
vdpau_mixer.c
vdpau_mixer.h
vdpau.c video: remove RGB32/BGR32 aliases 2020-05-11 19:57:34 +02:00
vdpau.h vd_lavc, vdpau, vaapi: restore emulated API avoidance 2017-12-02 04:53:51 +01:00
zimg.c csputils: add MP_CHROMA_TOPLEFT 2020-12-02 01:36:29 +01:00
zimg.h zimg: add slice threading and use it by default 2020-07-15 22:59:17 +02:00