aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Lhomme <robux4@gmail.com>2017-01-13 14:01:07 +0100
committerMichael Niedermayer <michael@niedermayer.cc>2017-01-16 02:54:04 +0100
commit8fb48659018f17827c2d5a3ba72263f421fdfa2d (patch)
treed6548da5046a4958b1bc05b72bf5accf284b25ca
parent153b36fc62849e0e1540a43829794e0503994ebb (diff)
downloadffmpeg-8fb48659018f17827c2d5a3ba72263f421fdfa2d.tar.gz
dxva2: allow an empty array of ID3D11VideoDecoderOutputView
We can pick the correct slice index directly from the ID3D11VideoDecoderOutputView casted from data[3]. Also added myself as maintainer for DXVA2 and D3D11VA. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--MAINTAINERS3
-rw-r--r--libavcodec/dxva2_internal.h4
-rw-r--r--libavcodec/version.h2
3 files changed, 5 insertions, 4 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index cb9516d39d..981d71b195 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -260,7 +260,8 @@ Codecs:
Hardware acceleration:
crystalhd.c Philip Langdale
- dxva2* Hendrik Leppkes, Laurent Aimar
+ dxva2* Hendrik Leppkes, Laurent Aimar, Steve Lhomme
+ d3d11va* Steve Lhomme
mediacodec* Matthieu Bouron
vaapi* Gwenole Beauchesne
vaapi_encode* Mark Thompson
diff --git a/libavcodec/dxva2_internal.h b/libavcodec/dxva2_internal.h
index e5322efd54..dfff4d6b47 100644
--- a/libavcodec/dxva2_internal.h
+++ b/libavcodec/dxva2_internal.h
@@ -78,7 +78,7 @@ typedef union {
#define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) (avctx->pix_fmt == AV_PIX_FMT_D3D11VA_VLD ? ctx->d3d11va.cfg->ConfigResidDiffAccelerator : ctx->dxva2.cfg->ConfigResidDiffAccelerator)
#define DXVA_CONTEXT_VALID(avctx, ctx) (DXVA_CONTEXT_DECODER(avctx, ctx) && \
DXVA_CONTEXT_CFG(avctx, ctx) && \
- DXVA_CONTEXT_COUNT(avctx, ctx))
+ (avctx->pix_fmt == AV_PIX_FMT_D3D11VA_VLD || ctx->dxva2.surface_count))
#elif CONFIG_DXVA2
#define DXVA_CONTEXT_WORKAROUND(avctx, ctx) (ctx->dxva2.workaround)
#define DXVA_CONTEXT_COUNT(avctx, ctx) (ctx->dxva2.surface_count)
@@ -98,7 +98,7 @@ typedef union {
#define DXVA_CONTEXT_CFG_BITSTREAM(avctx, ctx) (ctx->d3d11va.cfg->ConfigBitstreamRaw)
#define DXVA_CONTEXT_CFG_INTRARESID(avctx, ctx) (ctx->d3d11va.cfg->ConfigIntraResidUnsigned)
#define DXVA_CONTEXT_CFG_RESIDACCEL(avctx, ctx) (ctx->d3d11va.cfg->ConfigResidDiffAccelerator)
-#define DXVA_CONTEXT_VALID(avctx, ctx) (ctx->d3d11va.decoder && ctx->d3d11va.cfg && ctx->d3d11va.surface_count)
+#define DXVA_CONTEXT_VALID(avctx, ctx) (ctx->d3d11va.decoder && ctx->d3d11va.cfg)
#endif
unsigned ff_dxva2_get_surface_index(const AVCodecContext *avctx,
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 6b3e62e17f..2a0df198ea 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -29,7 +29,7 @@
#define LIBAVCODEC_VERSION_MAJOR 57
#define LIBAVCODEC_VERSION_MINOR 72
-#define LIBAVCODEC_VERSION_MICRO 100
+#define LIBAVCODEC_VERSION_MICRO 101
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \