FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavcodec
vaapi.h
Go to the documentation of this file.
1
/*
2
* Video Acceleration API (shared data between FFmpeg and the video player)
3
* HW decode acceleration for MPEG-2, MPEG-4, H.264 and VC-1
4
*
5
* Copyright (C) 2008-2009 Splitted-Desktop Systems
6
*
7
* This file is part of FFmpeg.
8
*
9
* FFmpeg is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU Lesser General Public
11
* License as published by the Free Software Foundation; either
12
* version 2.1 of the License, or (at your option) any later version.
13
*
14
* FFmpeg is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
* Lesser General Public License for more details.
18
*
19
* You should have received a copy of the GNU Lesser General Public
20
* License along with FFmpeg; if not, write to the Free Software
21
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22
*/
23
24
#ifndef AVCODEC_VAAPI_H
25
#define AVCODEC_VAAPI_H
26
27
/**
28
* @file
29
* @ingroup lavc_codec_hwaccel_vaapi
30
* Public libavcodec VA API header.
31
*/
32
33
#include <stdint.h>
34
35
/**
36
* @defgroup lavc_codec_hwaccel_vaapi VA API Decoding
37
* @ingroup lavc_codec_hwaccel
38
* @{
39
*/
40
41
/**
42
* This structure is used to share data between the FFmpeg library and
43
* the client video application.
44
* This shall be zero-allocated and available as
45
* AVCodecContext.hwaccel_context. All user members can be set once
46
* during initialization or through each AVCodecContext.get_buffer()
47
* function call. In any case, they must be valid prior to calling
48
* decoding functions.
49
*/
50
struct
vaapi_context
{
51
/**
52
* Window system dependent data
53
*
54
* - encoding: unused
55
* - decoding: Set by user
56
*/
57
void
*
display
;
58
59
/**
60
* Configuration ID
61
*
62
* - encoding: unused
63
* - decoding: Set by user
64
*/
65
uint32_t
config_id
;
66
67
/**
68
* Context ID (video decode pipeline)
69
*
70
* - encoding: unused
71
* - decoding: Set by user
72
*/
73
uint32_t
context_id
;
74
75
/**
76
* VAPictureParameterBuffer ID
77
*
78
* - encoding: unused
79
* - decoding: Set by libavcodec
80
*/
81
uint32_t
pic_param_buf_id
;
82
83
/**
84
* VAIQMatrixBuffer ID
85
*
86
* - encoding: unused
87
* - decoding: Set by libavcodec
88
*/
89
uint32_t
iq_matrix_buf_id
;
90
91
/**
92
* VABitPlaneBuffer ID (for VC-1 decoding)
93
*
94
* - encoding: unused
95
* - decoding: Set by libavcodec
96
*/
97
uint32_t
bitplane_buf_id
;
98
99
/**
100
* Slice parameter/data buffer IDs
101
*
102
* - encoding: unused
103
* - decoding: Set by libavcodec
104
*/
105
uint32_t *
slice_buf_ids
;
106
107
/**
108
* Number of effective slice buffer IDs to send to the HW
109
*
110
* - encoding: unused
111
* - decoding: Set by libavcodec
112
*/
113
unsigned
int
n_slice_buf_ids
;
114
115
/**
116
* Size of pre-allocated slice_buf_ids
117
*
118
* - encoding: unused
119
* - decoding: Set by libavcodec
120
*/
121
unsigned
int
slice_buf_ids_alloc
;
122
123
/**
124
* Pointer to VASliceParameterBuffers
125
*
126
* - encoding: unused
127
* - decoding: Set by libavcodec
128
*/
129
void
*
slice_params
;
130
131
/**
132
* Size of a VASliceParameterBuffer element
133
*
134
* - encoding: unused
135
* - decoding: Set by libavcodec
136
*/
137
unsigned
int
slice_param_size
;
138
139
/**
140
* Size of pre-allocated slice_params
141
*
142
* - encoding: unused
143
* - decoding: Set by libavcodec
144
*/
145
unsigned
int
slice_params_alloc
;
146
147
/**
148
* Number of slices currently filled in
149
*
150
* - encoding: unused
151
* - decoding: Set by libavcodec
152
*/
153
unsigned
int
slice_count
;
154
155
/**
156
* Pointer to slice data buffer base
157
* - encoding: unused
158
* - decoding: Set by libavcodec
159
*/
160
const
uint8_t
*
slice_data
;
161
162
/**
163
* Current size of slice data
164
*
165
* - encoding: unused
166
* - decoding: Set by libavcodec
167
*/
168
uint32_t
slice_data_size
;
169
};
170
171
/* @} */
172
173
#endif
/* AVCODEC_VAAPI_H */
Generated on Sun Mar 8 2015 02:35:01 for FFmpeg by
1.8.2