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.
pull/279/head
Mark Thompson 7 years ago
parent c6bc18bc12
commit caecb85014
  1. 4
      libavutil/hwcontext.c
  2. 11
      libavutil/hwcontext_qsv.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;

@ -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:

Loading…
Cancel
Save