On Thu, 22 Jun 2017 16:02:10 +0300 (EEST) Martin Storsjö <mar...@martin.st> wrote:
> On Thu, 22 Jun 2017, wm4 wrote: > > > Basically copied from VLC (LGPL): > > > > http://git.videolan.org/?p=vlc.git;a=blob;f=modules/video_output/win32/direct3d11.c;h=e9fcb83dcabfe778f26e63d19f218caf06a7c3ae;hb=HEAD#l1482 > > http://git.videolan.org/?p=vlc.git;a=blob;f=modules/codec/avcodec/d3d11va.c;h=85e7d25caebc059a9770da2ef4bb8fe90816d76d;hb=HEAD#l599 > > --- > > Rebased from previous patch set. > > --- > > configure | 2 ++ > > libavutil/hwcontext_d3d11va.c | 32 ++++++++++++++++++++++++++++++++ > > libavutil/hwcontext_d3d11va.h | 4 ++++ > > 3 files changed, 38 insertions(+) > > > > diff --git a/configure b/configure > > index bbed2258b9..020d1e03ee 100755 > > --- a/configure > > +++ b/configure > > @@ -1556,6 +1556,7 @@ HEADERS_LIST=" > > dev_video_meteor_ioctl_meteor_h > > direct_h > > dlfcn_h > > + dxgidebug_h > > dxva_h > > gsm_h > > io_h > > @@ -4650,6 +4651,7 @@ check_struct windows.h "CONDITION_VARIABLE" Ptr > > check_header d3d11.h > > check_header direct.h > > check_header dlfcn.h > > +check_header dxgidebug.h > > check_header dxva.h > > check_header dxva2api.h > > check_header io.h > > diff --git a/libavutil/hwcontext_d3d11va.c b/libavutil/hwcontext_d3d11va.c > > index 376c76e5cf..a4924e34d2 100644 > > --- a/libavutil/hwcontext_d3d11va.c > > +++ b/libavutil/hwcontext_d3d11va.c > > @@ -16,6 +16,8 @@ > > * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 > > USA > > */ > > > > +#include "config.h" > > + > > #include <windows.h> > > > > // Include thread.h before redefining _WIN32_WINNT, to get > > @@ -32,6 +34,10 @@ > > #include <d3d11.h> > > #include <dxgi1_2.h> > > > > +#if HAVE_DXGIDEBUG_H > > +#include <dxgidebug.h> > > +#endif > > + > > #include "avassert.h" > > #include "common.h" > > #include "hwcontext.h" > > @@ -476,8 +482,18 @@ static int d3d11va_device_create(AVHWDeviceContext > > *ctx, const char *device, > > IDXGIAdapter *pAdapter = NULL; > > ID3D10Multithread *pMultithread; > > UINT creationFlags = D3D11_CREATE_DEVICE_VIDEO_SUPPORT; > > + int is_debug = !!av_dict_get(opts, "debug", NULL, 0); > > int ret; > > > > + // (On UWP we can't check this.) > > +#if HAVE_LOADLIBRARY > > + if (!LoadLibrary("d3d11_1sdklayers.dll")) > > + is_debug = 0; > > +#endif > > + > > + if (is_debug) > > + creationFlags |= D3D11_CREATE_DEVICE_DEBUG; > > + > > if ((ret = ff_thread_once(&functions_loaded, load_functions)) != 0) > > return AVERROR_UNKNOWN; > > if (!mD3D11CreateDevice || !mCreateDXGIFactory) { > > @@ -511,6 +527,22 @@ static int d3d11va_device_create(AVHWDeviceContext > > *ctx, const char *device, > > ID3D10Multithread_Release(pMultithread); > > } > > > > +#if !defined(UWP) && HAVE_DXGIDEBUG_H > > We don't have any UWP define here any longer; shouldn't this be this be > #if HAVE_LOADLIBRARY && HAVE_DXGIDBEUG_H instead? Right. Can whoever applies this fix it? _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel