summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Thompson <sw@jkqxz.net>2017-10-08 15:19:17 +0100
committerMark Thompson <sw@jkqxz.net>2018-02-11 22:11:10 +0000
commitcaecb85014fc81f8734560a150073627eedab78c (patch)
tree61bfe54f2b7bbd11fecfcaaf0988fb14ec7f293c
parentc6bc18bc121ea66df715123c59f7ef9542c0914a (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.c4
-rw-r--r--libavutil/hwcontext_qsv.c11
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: