summaryrefslogtreecommitdiffstats
path: root/libavutil
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 /libavutil
parentc6bc18bc121ea66df715123c59f7ef9542c0914a (diff)
downloadffmpeg-streaming-caecb85014fc81f8734560a150073627eedab78c.zip
ffmpeg-streaming-caecb85014fc81f8734560a150073627eedab78c.tar.gz
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.
Diffstat (limited to 'libavutil')
-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 2630087..cccbd62 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 9270b22..9fa603c 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:
OpenPOWER on IntegriCloud