duckstation

duckstation, but archived from the revision just before upstream changed it to a proprietary software project, this version is the libre one
git clone https://git.neptards.moe/u3shit/duckstation.git
Log | Files | Refs | README | LICENSE

dxva2.h (2128B)


      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 
     23 #ifndef AVCODEC_DXVA2_H
     24 #define AVCODEC_DXVA2_H
     25 
     26 /**
     27  * @file
     28  * @ingroup lavc_codec_hwaccel_dxva2
     29  * Public libavcodec DXVA2 header.
     30  */
     31 
     32 #if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0602
     33 #undef _WIN32_WINNT
     34 #define _WIN32_WINNT 0x0602
     35 #endif
     36 
     37 #include <stdint.h>
     38 #include <d3d9.h>
     39 #include <dxva2api.h>
     40 
     41 /**
     42  * @defgroup lavc_codec_hwaccel_dxva2 DXVA2
     43  * @ingroup lavc_codec_hwaccel
     44  *
     45  * @{
     46  */
     47 
     48 /**
     49  * This structure is used to provides the necessary configurations and data
     50  * to the DXVA2 FFmpeg HWAccel implementation.
     51  *
     52  * The application must make it available as AVCodecContext.hwaccel_context.
     53  */
     54 struct dxva_context {
     55     /**
     56      * DXVA2 decoder object
     57      */
     58     IDirectXVideoDecoder *decoder;
     59 
     60     /**
     61      * DXVA2 configuration used to create the decoder
     62      */
     63     const DXVA2_ConfigPictureDecode *cfg;
     64 
     65     /**
     66      * The number of surface in the surface array
     67      */
     68     unsigned surface_count;
     69 
     70     /**
     71      * The array of Direct3D surfaces used to create the decoder
     72      */
     73     LPDIRECT3DSURFACE9 *surface;
     74 
     75     /**
     76      * A bit field configuring the workarounds needed for using the decoder
     77      */
     78     uint64_t workaround;
     79 
     80     /**
     81      * Private to the FFmpeg AVHWAccel implementation
     82      */
     83     unsigned report_id;
     84 };
     85 
     86 /**
     87  * @}
     88  */
     89 
     90 #endif /* AVCODEC_DXVA2_H */