Sign in
Register
Home
Projects
Help
Search
:
Paris Hackday Code
Overview
Members
Activity
Repository
Code docs
FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
ffmpeg
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 */
vaapi_context::slice_data
const uint8_t * slice_data
Definition:
vaapi.h:160
vaapi_context::iq_matrix_buf_id
uint32_t iq_matrix_buf_id
Definition:
vaapi.h:89
vaapi_context::bitplane_buf_id
uint32_t bitplane_buf_id
Definition:
vaapi.h:97
vaapi_context::context_id
uint32_t context_id
Definition:
vaapi.h:73
vaapi_context
Definition:
vaapi.h:50
vaapi_context::slice_params_alloc
unsigned int slice_params_alloc
Definition:
vaapi.h:145
uint8_t
uint8_t
Definition:
audio_convert.c:194
vaapi_context::slice_data_size
uint32_t slice_data_size
Definition:
vaapi.h:168
vaapi_context::slice_param_size
unsigned int slice_param_size
Definition:
vaapi.h:137
vaapi_context::display
void * display
Definition:
vaapi.h:57
vaapi_context::slice_buf_ids
uint32_t * slice_buf_ids
Definition:
vaapi.h:105
vaapi_context::slice_count
unsigned int slice_count
Definition:
vaapi.h:153
vaapi_context::slice_buf_ids_alloc
unsigned int slice_buf_ids_alloc
Definition:
vaapi.h:121
vaapi_context::n_slice_buf_ids
unsigned int n_slice_buf_ids
Definition:
vaapi.h:113
vaapi_context::slice_params
void * slice_params
Definition:
vaapi.h:129
vaapi_context::pic_param_buf_id
uint32_t pic_param_buf_id
Definition:
vaapi.h:81
vaapi_context::config_id
uint32_t config_id
Definition:
vaapi.h:65
Generated on Wed Aug 6 2025 06:53:35 for FFmpeg by
1.8.11
Loading...