diff options
author | Mark Thompson <sw@jkqxz.net> | 2017-10-08 15:19:17 +0100 |
---|---|---|
committer | Mark Thompson <sw@jkqxz.net> | 2018-02-11 22:11:10 +0000 |
commit | caecb85014fc81f8734560a150073627eedab78c (patch) | |
tree | 61bfe54f2b7bbd11fecfcaaf0988fb14ec7f293c | |
parent | c6bc18bc121ea66df715123c59f7ef9542c0914a (diff) |
hwcontext: Perform usual initialisation on derived device contexts
The initialisation should be common. For libmfx, it was previously
happening in the derivation function and this moves it out.
-rw-r--r-- | libavutil/hwcontext.c | 4 | ||||
-rw-r--r-- | libavutil/hwcontext_qsv.c | 11 |
2 files changed, 4 insertions, 11 deletions
diff --git a/libavutil/hwcontext.c b/libavutil/hwcontext.c index 2630087b5d..cccbd6234e 100644 --- a/libavutil/hwcontext.c +++ b/libavutil/hwcontext.c @@ -645,6 +645,10 @@ int av_hwdevice_ctx_create_derived(AVBufferRef **dst_ref_ptr, goto fail; done: + ret = av_hwdevice_ctx_init(dst_ref); + if (ret < 0) + goto fail; + *dst_ref_ptr = dst_ref; return 0; diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c index 9270b2258f..9fa603c350 100644 --- a/libavutil/hwcontext_qsv.c +++ b/libavutil/hwcontext_qsv.c @@ -989,7 +989,6 @@ static int qsv_device_derive_from_child(AVHWDeviceContext *ctx, int flags) { AVQSVDeviceContext *hwctx = ctx->hwctx; - QSVDeviceContext *s = ctx->internal->priv; mfxVersion ver = { { 3, 1 } }; mfxHDL handle; @@ -1058,16 +1057,6 @@ static int qsv_device_derive_from_child(AVHWDeviceContext *ctx, goto fail; } - ret = qsv_device_init(ctx); - if (ret < 0) - goto fail; - if (s->handle_type != handle_type) { - av_log(ctx, AV_LOG_ERROR, "Error in child device handle setup: " - "type mismatch (%d != %d).\n", s->handle_type, handle_type); - err = AVERROR_UNKNOWN; - goto fail; - } - return 0; fail: |