FFmpeg
1.2.4
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
libavcodec
internal.h
Go to the documentation of this file.
1
/*
2
* This file is part of FFmpeg.
3
*
4
* FFmpeg is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) any later version.
8
*
9
* FFmpeg is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Lesser General Public License for more details.
13
*
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with FFmpeg; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
24
#ifndef AVCODEC_INTERNAL_H
25
#define AVCODEC_INTERNAL_H
26
27
#include <stdint.h>
28
29
#include "libavutil/mathematics.h"
30
#include "libavutil/pixfmt.h"
31
#include "
avcodec.h
"
32
33
#define FF_SANE_NB_CHANNELS 128U
34
35
typedef
struct
InternalBuffer
{
36
uint8_t
*
base
[
AV_NUM_DATA_POINTERS
];
37
uint8_t
*
data
[
AV_NUM_DATA_POINTERS
];
38
int
linesize
[
AV_NUM_DATA_POINTERS
];
39
int
width
;
40
int
height
;
41
enum
AVPixelFormat
pix_fmt
;
42
}
InternalBuffer
;
43
44
typedef
struct
AVCodecInternal
{
49
int
buffer_count
;
50
55
InternalBuffer
*
buffer
;
56
63
int
is_copy
;
64
65
#if FF_API_OLD_ENCODE_AUDIO
66
70
int
sample_count;
71
#endif
72
77
int
last_audio_frame
;
78
83
uint8_t
*
audio_data
;
84
88
uint8_t
*
byte_buffer
;
89
unsigned
int
byte_buffer_size
;
90
91
void
*
frame_thread_encoder
;
92
96
int
skip_samples
;
97
}
AVCodecInternal
;
98
99
struct
AVCodecDefault
{
100
const
uint8_t
*
key
;
101
const
uint8_t
*
value
;
102
};
103
112
AVHWAccel
*
ff_find_hwaccel
(
enum
AVCodecID
codec_id
,
enum
AVPixelFormat
pix_fmt
);
113
118
int
ff_match_2uint16
(
const
uint16_t (*
tab
)[2],
int
size
,
int
a
,
int
b
);
119
120
unsigned
int
avpriv_toupper4
(
unsigned
int
x);
121
125
void
ff_init_buffer_info
(
AVCodecContext
*s,
AVFrame
*
frame
);
126
127
128
void
avpriv_color_frame
(
AVFrame
*
frame
,
const
int
color
[4]);
129
133
void
ff_packet_free_side_data
(
AVPacket
*
pkt
);
134
135
extern
volatile
int
ff_avcodec_locked
;
136
int
ff_lock_avcodec
(
AVCodecContext
*log_ctx);
137
int
ff_unlock_avcodec
(
void
);
138
139
int
avpriv_lock_avformat
(
void
);
140
int
avpriv_unlock_avformat
(
void
);
141
147
#define FF_MAX_EXTRADATA_SIZE ((1 << 28) - FF_INPUT_BUFFER_PADDING_SIZE)
148
166
int
ff_alloc_packet2
(
AVCodecContext
*avctx,
AVPacket
*avpkt,
int
size
);
167
168
int
ff_alloc_packet
(
AVPacket
*avpkt,
int
size
);
169
173
static
av_always_inline
int64_t
ff_samples_to_time_base
(
AVCodecContext
*avctx,
174
int64_t
samples
)
175
{
176
if
(samples ==
AV_NOPTS_VALUE
)
177
return
AV_NOPTS_VALUE
;
178
return
av_rescale_q
(samples, (
AVRational
){ 1, avctx->
sample_rate
},
179
avctx->
time_base
);
180
}
181
187
int
ff_get_buffer
(
AVCodecContext
*avctx,
AVFrame
*
frame
);
188
189
int
ff_thread_can_start_frame
(
AVCodecContext
*avctx);
190
191
int
ff_get_logical_cpus
(
AVCodecContext
*avctx);
192
193
int
avpriv_h264_has_num_reorder_frames
(
AVCodecContext
*avctx);
194
195
void
ff_print_debug_info2
(
AVCodecContext
*avctx,
AVFrame
*pict,
uint8_t
*mbskip_table,
196
uint8_t
*visualization_buffer[3],
int
*low_delay,
197
int
mb_width,
int
mb_height,
int
mb_stride,
int
quarter_sample);
198
204
int
ff_codec_open2_recursive
(
AVCodecContext
*avctx,
const
AVCodec
*codec,
AVDictionary
**
options
);
205
209
int
ff_codec_close_recursive
(
AVCodecContext
*avctx);
210
214
int
avpriv_bprint_to_extradata
(
AVCodecContext
*avctx,
struct
AVBPrint
*buf);
215
216
AVDictionary
**
ff_frame_get_metadatap
(
AVFrame
*
frame
);
217
218
#endif
/* AVCODEC_INTERNAL_H */
Generated on Fri Nov 29 2013 19:15:02 for FFmpeg by
1.8.1.2