Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4349 Serge 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_DXVA_H
24
#define AVCODEC_DXVA_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 < 0x0600
33
#undef _WIN32_WINNT
34
#endif
35
 
36
#if !defined(_WIN32_WINNT)
37
#define _WIN32_WINNT 0x0600
38
#endif
39
 
40
#include 
41
#include 
42
#include 
43
 
44
/**
45
 * @defgroup lavc_codec_hwaccel_dxva2 DXVA2
46
 * @ingroup lavc_codec_hwaccel
47
 *
48
 * @{
49
 */
50
 
51
#define FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG 1 ///< Work around for DXVA2 and old UVD/UVD+ ATI video cards
52
 
53
/**
54
 * This structure is used to provides the necessary configurations and data
55
 * to the DXVA2 FFmpeg HWAccel implementation.
56
 *
57
 * The application must make it available as AVCodecContext.hwaccel_context.
58
 */
59
struct dxva_context {
60
    /**
61
     * DXVA2 decoder object
62
     */
63
    IDirectXVideoDecoder *decoder;
64
 
65
    /**
66
     * DXVA2 configuration used to create the decoder
67
     */
68
    const DXVA2_ConfigPictureDecode *cfg;
69
 
70
    /**
71
     * The number of surface in the surface array
72
     */
73
    unsigned surface_count;
74
 
75
    /**
76
     * The array of Direct3D surfaces used to create the decoder
77
     */
78
    LPDIRECT3DSURFACE9 *surface;
79
 
80
    /**
81
     * A bit field configuring the workarounds needed for using the decoder
82
     */
83
    uint64_t workaround;
84
 
85
    /**
86
     * Private to the FFmpeg AVHWAccel implementation
87
     */
88
    unsigned report_id;
89
};
90
 
91
/**
92
 * @}
93
 */
94
 
95
#endif /* AVCODEC_DXVA_H */