1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-22 06:42:03 +00:00
mpv/video/decode
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
..
dec_video.c player: make decoding cover art more robust 2015-06-18 18:39:46 +02:00
dec_video.h player: make decoding cover art more robust 2015-06-18 18:39:46 +02:00
dxva2.c client API, dxva2: add a workaround for OpenGL fullscreen issues 2015-07-03 16:38:12 +02:00
gpu_memcpy_sse4.h
lavc.h vdpau: add support for the "new" libavcodec vdpau API 2015-05-28 21:56:13 +02:00
rpi.c RPI support 2015-03-29 16:09:56 +02:00
vaapi.c video: reduce error message when loading hwdec backend fails 2015-06-20 22:26:57 +02:00
vd_lavc.c video: replace our own refcounting with libavutil's 2015-07-05 23:56:00 +02:00
vd.h Update license headers 2015-04-13 12:10:01 +02:00
vda.c vda: add support for nv12 image formats 2015-05-13 19:57:39 +02:00
vdpau_old.c video: rename vdpau.c to vdpau_old.c 2015-05-28 21:56:09 +02:00
vdpau.c vdpau: add support for the "new" libavcodec vdpau API 2015-05-28 21:56:13 +02:00