aboutsummaryrefslogtreecommitdiffstats
path: root/libavutil/hwcontext_internal.h
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2017-03-04 23:57:28 +0000
committerMark Thompson <sw@jkqxz.net>2017-03-20 23:15:43 +0000
commitb266ad56fe0e4ce5bb70118ba2e2b1dabfaf76ce (patch)
tree9ffc32c7d86e1c40ea8c4c343a8339b7d6387b48 /libavutil/hwcontext_internal.h
parentb864230c49089b087eef56988a3d6a784f6f9827 (diff)
downloadffmpeg-b266ad56fe0e4ce5bb70118ba2e2b1dabfaf76ce.tar.gz
hwcontext: Add device derivation
Creates a new device context from another of a different type which refers to the same underlying hardware.
Diffstat (limited to 'libavutil/hwcontext_internal.h')
-rw-r--r--libavutil/hwcontext_internal.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/libavutil/hwcontext_internal.h b/libavutil/hwcontext_internal.h
index 11e3a68e4c..66f54142e8 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 {