summaryrefslogtreecommitdiffstats
path: root/video/decode/vd_lavc.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-11-04 00:00:18 +0100
committerwm4 <wm4@nowhere>2013-11-04 00:11:07 +0100
commit571e697a7c557d10bcc9130915c431829981d877 (patch)
tree027490a8aca629a9c3d321556b5bc6da5159d844 /video/decode/vd_lavc.c
parent6f17410f88fd3765b6598b4e706b1d03ee85efe8 (diff)
downloadmpv-571e697a7c557d10bcc9130915c431829981d877.tar.bz2
mpv-571e697a7c557d10bcc9130915c431829981d877.tar.xz
vo_opengl: add infrastructure for hardware decoding OpenGL interop
Most hardware decoding APIs provide some OpenGL interop. This allows using vo_opengl, without having to read the video data back from GPU. This requires adding a backend for each hardware decoding API. (Each backend is an entry in gl_hwdec_vaglx[].) The backends expose video data as a set of OpenGL textures. Add infrastructure to support this. The next commit will add support for VA-API.
Diffstat (limited to 'video/decode/vd_lavc.c')
-rw-r--r--video/decode/vd_lavc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/video/decode/vd_lavc.c b/video/decode/vd_lavc.c
index ebfd986a95..47bfd96e84 100644
--- a/video/decode/vd_lavc.c
+++ b/video/decode/vd_lavc.c
@@ -46,6 +46,7 @@
#include "video/img_format.h"
#include "video/mp_image_pool.h"
#include "video/filter/vf.h"
+#include "video/decode/dec_video.h"
#include "demux/stheader.h"
#include "demux/demux_packet.h"
#include "osdep/numcores.h"
@@ -196,6 +197,12 @@ int hwdec_get_max_refs(struct lavc_ctx *ctx)
return ctx->avctx->codec_id == AV_CODEC_ID_H264 ? 16 : 2;
}
+void hwdec_request_api(struct mp_hwdec_info *info, const char *api_name)
+{
+ if (info && info->load_api)
+ info->load_api(info, api_name);
+}
+
static int hwdec_probe(struct vd_lavc_hwdec *hwdec, struct mp_hwdec_info *info,
const char *decoder, const char **hw_decoder)
{