1
0
mirror of https://github.com/mpv-player/mpv synced 2025-02-19 22:36:55 +00:00
mpv/video
wm4 7b9d726588 video: replace our own refcounting with libavutil's
mpv had refcounted frames before libav*, so we were not using
libavutil's facilities. Change this and drop our own code.

Since AVFrames are not actually refcounted, and only the image data
they reference, the semantics change a bit. This affects mainly
mp_image_pool, which was operating on whole images instead of buffers.
While we could work on AVBufferRefs instead (and use AVBufferPool),
this doesn't work for use with hardware decoding, which doesn't
map cleanly to FFmpeg's reference counting. But it worked out. One
weird consequence is that we still need our custom image data
allocation function (for normal image data), because AVFrame's uses
multiple buffers.

There also seems to be a timing-dependent problem with vaapi (the
pool appears to be "leaking" surfaces). I don't know if this is a new
problem, or whether the code changes just happened to cause it more
often. Raising the number of reserved surfaces seemed to fix it, but
since it appears to be timing dependent, and I couldn't find anything
wrong with the code, I'm just going to assume it's not a new bug.
2015-07-05 23:56:00 +02:00
..
decode video: replace our own refcounting with libavutil's 2015-07-05 23:56:00 +02:00
filter vf_sub: minor simplification 2015-06-05 18:59:13 +02:00
out vo: free frames before killing VO 2015-07-04 17:27:13 +02:00
csputils.c csputils: improve contrast semantics for limited range output 2015-04-29 22:09:09 +02:00
csputils.h Update license headers 2015-04-13 12:10:01 +02:00
d3d.h vo_direct3d, dxva2: use the same D3D device 2015-07-03 16:04:42 +02:00
fmt-conversion.c Update license headers 2015-04-13 12:10:01 +02:00
fmt-conversion.h Update license headers 2015-04-13 12:10:01 +02:00
hwdec.h vo_direct3d, dxva2: use the same D3D device 2015-07-03 16:04:42 +02:00
image_writer.c screenshots: add option to prevent 16 bit output 2015-04-29 21:05:04 +02:00
image_writer.h screenshots: add option to prevent 16 bit output 2015-04-29 21:05:04 +02:00
img_format.c Update license headers 2015-04-13 12:10:01 +02:00
img_format.h Update license headers 2015-04-13 12:10:01 +02:00
img_fourcc.h build: deal with endian mess 2014-07-10 00:58:56 +02:00
mp_image_pool.c video: replace our own refcounting with libavutil's 2015-07-05 23:56:00 +02:00
mp_image_pool.h video: introduce failure path for image allocations 2014-06-17 22:43:43 +02:00
mp_image.c video: replace our own refcounting with libavutil's 2015-07-05 23:56:00 +02:00
mp_image.h video: replace our own refcounting with libavutil's 2015-07-05 23:56:00 +02:00
sws_utils.c sws_utils: re-use avcolorspace for sws colorspaces 2015-05-04 01:34:25 +02:00
sws_utils.h vf_scale: libswscale is being stupid 2015-03-01 22:32:38 +01:00
vaapi.c vaapi: treat cropped decoder output slightly more correctly 2015-06-29 15:13:45 +02:00
vaapi.h video: reduce error message when loading hwdec backend fails 2015-06-20 22:26:57 +02:00
vdpau_functions.inc vo_vdpau: directly get surface size from surface for screenshots 2015-06-05 22:34:16 +02:00
vdpau_mixer.c vdpau: retrieve mixer parameters directly from the hw surface 2015-05-28 21:54:02 +02:00
vdpau_mixer.h vdpau: retrieve mixer parameters directly from the hw surface 2015-05-28 21:54:02 +02:00
vdpau.c video: reduce error message when loading hwdec backend fails 2015-06-20 22:26:57 +02:00
vdpau.h video: reduce error message when loading hwdec backend fails 2015-06-20 22:26:57 +02:00