From b22172f6f3530b8bd9d1d2c38a31b1e9c3729e42 Mon Sep 17 00:00:00 2001 From: Mark Thompson Date: Sat, 4 Mar 2017 23:57:28 +0000 Subject: hwcontext: Add device derivation Creates a new device context from another of a different type which refers to the same underlying hardware. (cherry picked from commit b266ad56fe0e4ce5bb70118ba2e2b1dabfaf76ce) --- libavutil/hwcontext_internal.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'libavutil/hwcontext_internal.h') diff --git a/libavutil/hwcontext_internal.h b/libavutil/hwcontext_internal.h index cf05323e15..6451c0e2c5 100644 --- a/libavutil/hwcontext_internal.h +++ b/libavutil/hwcontext_internal.h @@ -66,6 +66,8 @@ typedef struct HWContextType { int (*device_create)(AVHWDeviceContext *ctx, const char *device, AVDictionary *opts, int flags); + int (*device_derive)(AVHWDeviceContext *dst_ctx, + AVHWDeviceContext *src_ctx, int flags); int (*device_init)(AVHWDeviceContext *ctx); void (*device_uninit)(AVHWDeviceContext *ctx); @@ -95,6 +97,12 @@ typedef struct HWContextType { struct AVHWDeviceInternal { const HWContextType *hw_type; void *priv; + + /** + * For a derived device, a reference to the original device + * context it was derived from. + */ + AVBufferRef *source_device; }; struct AVHWFramesInternal { -- cgit v1.2.3