]> git.sesse.net Git - ffmpeg/commitdiff
lavc: set avctx->hwaccel before init
authorwm4 <nfxjfg@googlemail.com>
Tue, 6 Jun 2017 16:51:08 +0000 (18:51 +0200)
committerwm4 <nfxjfg@googlemail.com>
Tue, 27 Jun 2017 16:05:02 +0000 (18:05 +0200)
So a hwaccel can access avctx->hwaccel in init for whatever reason. This
is for the new d3d hwaccel API. We could create separate entrypoints for
each of the 3 hwaccel types (dxva2, d3d11va, new d3d11va), but this
seems nicer.

Merges Libav commit bd747b9226414007f0207fa201976af7217e3b77.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
libavcodec/decode.c

index f7dea930eda56e3dbedba931c0f456b5e9031b28..dccce01402b26c79c40cbb9804e345e00770e4ac 100644 (file)
@@ -1248,16 +1248,16 @@ static int setup_hwaccel(AVCodecContext *avctx,
             return AVERROR(ENOMEM);
     }
 
+    avctx->hwaccel = hwa;
     if (hwa->init) {
         ret = hwa->init(avctx);
         if (ret < 0) {
             av_freep(&avctx->internal->hwaccel_priv_data);
+            avctx->hwaccel = NULL;
             return ret;
         }
     }
 
-    avctx->hwaccel = hwa;
-
     return 0;
 }