vlc | branch: master | Steve Lhomme <[email protected]> | Thu Jun 22 14:31:20 2017 +0200| [85fd3054eef69066ffd25e0b0d7e386a740a2a65] | committer: Jean-Baptiste Kempf
d3d11_fmt: add a helper function to find the actual picture_sys_t to use the decoder and filters fill context but the vout uses picture_sys_t by default Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=85fd3054eef69066ffd25e0b0d7e386a740a2a65 --- modules/video_chroma/d3d11_fmt.h | 6 ++++++ modules/video_output/win32/direct3d11.c | 6 ++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/modules/video_chroma/d3d11_fmt.h b/modules/video_chroma/d3d11_fmt.h index 3fdbad2137..4631da185c 100644 --- a/modules/video_chroma/d3d11_fmt.h +++ b/modules/video_chroma/d3d11_fmt.h @@ -50,6 +50,12 @@ struct picture_sys_t #include "../codec/avcodec/va_surface.h" +static inline picture_sys_t *ActivePictureSys(picture_t *p_pic) +{ + struct va_pic_context *pic_ctx = (struct va_pic_context*)p_pic->context; + return pic_ctx ? &pic_ctx->picsys : p_pic->p_sys; +} + /* index to use for texture/resource that use a known DXGI format * (ie not DXGI_FORMAT_UNKNWON) */ #define KNOWN_DXGI_INDEX 0 diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c index d1628e6086..d5a4db7106 100644 --- a/modules/video_output/win32/direct3d11.c +++ b/modules/video_output/win32/direct3d11.c @@ -1112,8 +1112,7 @@ static void Prepare(vout_display_t *vd, picture_t *picture, subpicture_t *subpic if( sys->context_lock != INVALID_HANDLE_VALUE ) WaitForSingleObjectEx( sys->context_lock, INFINITE, FALSE ); #endif - struct va_pic_context *pic_ctx = (struct va_pic_context*)picture->context; - picture_sys_t *p_sys = pic_ctx ? &pic_ctx->picsys : picture->p_sys; + picture_sys_t *p_sys = ActivePictureSys(picture); if (!is_d3d11_opaque(picture->format.i_chroma) || sys->legacy_shader) { D3D11_TEXTURE2D_DESC texDesc; if (!is_d3d11_opaque(picture->format.i_chroma)) @@ -1208,8 +1207,7 @@ static void Display(vout_display_t *vd, picture_t *picture, subpicture_t *subpic if (!is_d3d11_opaque(picture->format.i_chroma) || sys->legacy_shader) DisplayD3DPicture(sys, &sys->picQuad, sys->stagingSys.resourceView); else { - struct va_pic_context *pic_ctx = (struct va_pic_context*)picture->context; - picture_sys_t *p_sys = pic_ctx ? &pic_ctx->picsys : picture->p_sys; + picture_sys_t *p_sys = ActivePictureSys(picture); DisplayD3DPicture(sys, &sys->picQuad, p_sys->resourceView); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
