summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2017-01-16 15:31:54 +0100
committerwm4 <wm4@nowhere>2017-01-16 16:10:22 +0100
commitbbdecb792a5d2bd8602e4934b4533d19ff868be1 (patch)
tree40b074534985af88291eae9a25db0ef28bc7232e
parent348c610b68edb578b98d08b27760f09cb7063fe2 (diff)
downloadmpv-bbdecb792a5d2bd8602e4934b4533d19ff868be1.tar.bz2
mpv-bbdecb792a5d2bd8602e4934b4533d19ff868be1.tar.xz
hwdec: add a AVBufferRef(AVHWDeviceContext) field
This makes "generic" interaction with libav* components easier.
-rw-r--r--video/hwdec.h3
-rw-r--r--video/vaapi.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/video/hwdec.h b/video/hwdec.h
index 2d088399f1..9d1035cd6e 100644
--- a/video/hwdec.h
+++ b/video/hwdec.h
@@ -47,6 +47,9 @@ struct mp_hwdec_ctx {
// HWDEC_CUDA: CUcontext*
void *ctx;
+ // libavutil-wrapped context, if available.
+ struct AVBufferRef *av_device_ref; // AVVAAPIDeviceContext*
+
// List of IMGFMT_s, terminated with 0. NULL if N/A.
int *supported_formats;
diff --git a/video/vaapi.c b/video/vaapi.c
index 69c0163972..6386660c8c 100644
--- a/video/vaapi.c
+++ b/video/vaapi.c
@@ -164,6 +164,8 @@ static void open_lavu_vaapi_device(struct mp_vaapi_ctx *ctx)
if (av_hwdevice_ctx_init(ctx->av_device_ref) < 0)
av_buffer_unref(&ctx->av_device_ref);
+
+ ctx->hwctx.av_device_ref = ctx->av_device_ref;
}
struct mp_vaapi_ctx *va_initialize(VADisplay *display, struct mp_log *plog,