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 /libavutil | |
parent | c6bc18bc121ea66df715123c59f7ef9542c0914a (diff) | |
download | ffmpeg-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.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 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: |