1 /*
2  * DXVA2 HW acceleration
3  *
4  * copyright (c) 2009 Laurent Aimar
5  *
6  * This file is part of FFmpeg.
7  *
8  * FFmpeg is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public
10  * License as published by the Free Software Foundation; either
11  * version 2.1 of the License, or (at your option) any later version.
12  *
13  * FFmpeg is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with FFmpeg; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21  */
22 module ffmpeg.libavcodec.dxva2;
23 
24 import ffmpeg.libavcodec;
25 
26 extern (C) @nogc nothrow:
27 
28 /**
29  * @file
30  * @ingroup lavc_codec_hwaccel_dxva2
31  * Public libavcodec DXVA2 header.
32  */
33 
34 enum _WIN32_WINNT = 0x0602;
35 
36 /**
37  * @defgroup lavc_codec_hwaccel_dxva2 DXVA2
38  * @ingroup lavc_codec_hwaccel
39  *
40  * @{
41  */
42 
43 enum FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG = 1; ///< Work around for DXVA2 and old UVD/UVD+ ATI video cards
44 enum FF_DXVA2_WORKAROUND_INTEL_CLEARVIDEO = 2; ///< Work around for DXVA2 and old Intel GPUs with ClearVideo interface
45 
46 /**
47  * This structure is used to provides the necessary configurations and data
48  * to the DXVA2 FFmpeg HWAccel implementation.
49  *
50  * The application must make it available as AVCodecContext.hwaccel_context.
51  */
52 struct dxva_context;/+
53 {
54     /**
55      * DXVA2 decoder object
56      */
57     IDirectXVideoDecoder* decoder;
58 
59     /**
60      * DXVA2 configuration used to create the decoder
61      */
62     const(DXVA2_ConfigPictureDecode)* cfg;
63 
64     /**
65      * The number of surface in the surface array
66      */
67     uint surface_count;
68 
69     /**
70      * The array of Direct3D surfaces used to create the decoder
71      */
72     LPDIRECT3DSURFACE9* surface;
73 
74     /**
75      * A bit field configuring the workarounds needed for using the decoder
76      */
77     ulong workaround;
78 
79     /**
80      * Private to the FFmpeg AVHWAccel implementation
81      */
82     uint report_id;
83 }+/
84 
85 /**
86  * @}
87  */
88 
89 /* AVCODEC_DXVA2_H */