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 */