[FFmpeg-cvslog] hwcontext: Perform usual initialisation on derived device contexts

Mark Thompson git at videolan.org
Mon Oct 9 02:50:23 EEST 2017


ffmpeg | branch: master | Mark Thompson <sw at jkqxz.net> | Sun Oct  8 15:19:17 2017 +0100| [309d660775e2b47af6723a0477c4d753bc0c54f4] | committer: Mark Thompson

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.  For VAAPI,
it fixes some failures when deriving from a DRM device because this
initialisation did not run.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=309d660775e2b47af6723a0477c4d753bc0c54f4
---

 libavutil/hwcontext.c     |  4 ++++
 libavutil/hwcontext_qsv.c | 10 ----------
 2 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/libavutil/hwcontext.c b/libavutil/hwcontext.c
index 2f4ee9661e..048e82126f 100644
--- a/libavutil/hwcontext.c
+++ b/libavutil/hwcontext.c
@@ -650,6 +650,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 75057f7d52..f1d16d8bf9 100644
--- a/libavutil/hwcontext_qsv.c
+++ b/libavutil/hwcontext_qsv.c
@@ -1037,16 +1037,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:



More information about the ffmpeg-cvslog mailing list