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
vda.h
Go to the documentation of this file.
1
/*
2
* VDA HW acceleration
3
*
4
* copyright (c) 2011 Sebastien Zwickert
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_VDA_H
24
#define AVCODEC_VDA_H
25
26
/**
27
* @file
28
* @ingroup lavc_codec_hwaccel_vda
29
* Public libavcodec VDA header.
30
*/
31
32
#include <stdint.h>
33
34
// emmintrin.h is unable to compile with -std=c99 -Werror=missing-prototypes
35
// http://openradar.appspot.com/8026390
36
#undef __GNUC_STDC_INLINE__
37
38
#define Picture QuickdrawPicture
39
#include <VideoDecodeAcceleration/VDADecoder.h>
40
#undef Picture
41
42
#include "
libavcodec/version.h
"
43
44
/**
45
* @defgroup lavc_codec_hwaccel_vda VDA
46
* @ingroup lavc_codec_hwaccel
47
*
48
* @{
49
*/
50
51
/**
52
* This structure is used to provide the necessary configurations and data
53
* to the VDA FFmpeg HWAccel implementation.
54
*
55
* The application must make it available as AVCodecContext.hwaccel_context.
56
*/
57
struct
vda_context
{
58
/**
59
* VDA decoder object.
60
*
61
* - encoding: unused
62
* - decoding: Set/Unset by libavcodec.
63
*/
64
VDADecoder
decoder
;
65
66
/**
67
* The Core Video pixel buffer that contains the current image data.
68
*
69
* encoding: unused
70
* decoding: Set by libavcodec. Unset by user.
71
*/
72
CVPixelBufferRef
cv_buffer
;
73
74
/**
75
* Use the hardware decoder in synchronous mode.
76
*
77
* encoding: unused
78
* decoding: Set by user.
79
*/
80
int
use_sync_decoding
;
81
82
/**
83
* The frame width.
84
*
85
* - encoding: unused
86
* - decoding: Set/Unset by user.
87
*/
88
int
width
;
89
90
/**
91
* The frame height.
92
*
93
* - encoding: unused
94
* - decoding: Set/Unset by user.
95
*/
96
int
height
;
97
98
/**
99
* The frame format.
100
*
101
* - encoding: unused
102
* - decoding: Set/Unset by user.
103
*/
104
int
format
;
105
106
/**
107
* The pixel format for output image buffers.
108
*
109
* - encoding: unused
110
* - decoding: Set/Unset by user.
111
*/
112
OSType
cv_pix_fmt_type
;
113
114
/**
115
* The current bitstream buffer.
116
*
117
* - encoding: unused
118
* - decoding: Set/Unset by libavcodec.
119
*/
120
uint8_t
*
priv_bitstream
;
121
122
/**
123
* The current size of the bitstream.
124
*
125
* - encoding: unused
126
* - decoding: Set/Unset by libavcodec.
127
*/
128
int
priv_bitstream_size
;
129
130
/**
131
* The reference size used for fast reallocation.
132
*
133
* - encoding: unused
134
* - decoding: Set/Unset by libavcodec.
135
*/
136
int
priv_allocated_size
;
137
138
/**
139
* Use av_buffer to manage buffer.
140
* When the flag is set, the CVPixelBuffers returned by the decoder will
141
* be released automatically, so you have to retain them if necessary.
142
* Not setting this flag may cause memory leak.
143
*
144
* encoding: unused
145
* decoding: Set by user.
146
*/
147
int
use_ref_buffer
;
148
};
149
150
/** Create the video decoder. */
151
int
ff_vda_create_decoder
(
struct
vda_context
*vda_ctx,
152
uint8_t
*extradata,
153
int
extradata_size);
154
155
/** Destroy the video decoder. */
156
int
ff_vda_destroy_decoder
(
struct
vda_context
*vda_ctx);
157
158
/**
159
* @}
160
*/
161
162
#endif
/* AVCODEC_VDA_H */
Generated on Wed Jul 10 2013 23:48:06 for FFmpeg by
1.8.2