[vlc-devel] [vlc-commits] direct3d11: log the current display format

Steve Lhomme robux4 at gmail.com
Tue Oct 10 18:12:17 CEST 2017


On Mon, Oct 9, 2017 at 6:51 PM, Steve Lhomme <git at videolan.org> wrote:
> vlc | branch: master | Steve Lhomme <robUx4 at videolabs.io> | Thu Sep 14 15:04:18 2017 +0200| [c2a659729ec56891317265ebb2d895addd6215ff] | committer: Jean-Baptiste Kempf
>
> direct3d11: log the current display format
>
> Signed-off-by: Jean-Baptiste Kempf <jb at videolan.org>
>
>> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c2a659729ec56891317265ebb2d895addd6215ff
> ---
>
>  configure.ac                            |  2 +-
>  modules/video_output/win32/direct3d11.c | 35 ++++++++++++++++++++++++++++++++-
>  2 files changed, 35 insertions(+), 2 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 9ff35c7d87..442f74f159 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -2486,7 +2486,7 @@ AM_CONDITIONAL([HAVE_AVCODEC_D3D11VA], [test "${have_avcodec_d3d11va}" = "yes"])
>  dnl
>  dnl DXGI debug
>  dnl
> -AC_CHECK_HEADERS(dxgidebug.h)
> +AC_CHECK_HEADERS(dxgidebug.h dxgi1_6.h)
>
>  dnl
>  dnl  avformat demuxer/muxer plugin
> diff --git a/modules/video_output/win32/direct3d11.c b/modules/video_output/win32/direct3d11.c
> index 7df452b70a..445c177135 100644
> --- a/modules/video_output/win32/direct3d11.c
> +++ b/modules/video_output/win32/direct3d11.c
> @@ -40,7 +40,11 @@
>  #define COBJMACROS
>  #include <initguid.h>
>  #include <d3d11.h>
> -#include <dxgi1_5.h>
> +#ifdef HAVE_DXGI1_6_H
> +# include <dxgi1_6.h>
> +#else
> +# include <dxgi1_5.h>
> +#endif
>  #include <d3dcompiler.h>
>
>  /* avoided until we can pass ISwapchainPanel without c++/cx mode
> @@ -1504,6 +1508,7 @@ static void D3D11SetColorSpace(vout_display_t *vd)
>      int best = -1;
>      int score, best_score = 0;
>      UINT support;
> +    IDXGIOutput *dxgiOutput = NULL;
>      IDXGISwapChain3 *dxgiswapChain3 = NULL;
>      sys->display.colorspace = &color_spaces[0];
>
> @@ -1580,6 +1585,34 @@ done:
>
>      if (dxgiswapChain3)
>          IDXGISwapChain3_Release(dxgiswapChain3);
> +
> +#ifdef HAVE_DXGI1_6_H
> +    if (SUCCEEDED(IDXGISwapChain_GetContainingOutput( sys->dxgiswapChain, &dxgiOutput )))
> +    {
> +        IDXGIOutput6 *dxgiOutput6 = NULL;
> +        if (SUCCEEDED(IDXGIOutput_QueryInterface( dxgiOutput, &IID_IDXGIOutput6, (void **)&dxgiOutput6 )))
> +        {
> +            DXGI_OUTPUT_DESC1 desc1;
> +            if (SUCCEEDED(IDXGIOutput6_GetDesc1( dxgiOutput6, &desc1 )))
> +            {
> +                const dxgi_color_space *csp = NULL;
> +                for (int i=0; color_spaces[i].name; ++i)
> +                {
> +                    if (color_spaces[i].dxgi == desc1.ColorSpace)
> +                    {
> +                        csp = &color_spaces[i];
> +                        break;
> +                    }
> +                }
> +
> +                msg_Dbg(vd, "Output max luminance: %.1f, colorspace %s, bits per pixel %d", desc1.MaxFullFrameLuminance, csp?csp->name:"unknown", desc1.BitsPerColor);
> +                sys->display.luminance_peak = desc1.MaxFullFrameLuminance;

You should remove this line for now. That code is not usable yet.

> +            }
> +            IDXGIOutput6_Release( dxgiOutput6 );
> +        }
> +        IDXGIOutput_Release( dxgiOutput );
> +    }
> +#endif
>  }
>
>  static const d3d_format_t *GetDirectRenderingFormat(vout_display_t *vd, vlc_fourcc_t i_src_chroma)
>
> _______________________________________________
> vlc-commits mailing list
> vlc-commits at videolan.org
> https://mailman.videolan.org/listinfo/vlc-commits


More information about the vlc-devel mailing list