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 Libav.
3
*
4
* Libav 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
* Libav 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 Libav; 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_DECODE_AUDIO
66
70
int
sample_count;
71
#endif
72
77
int
last_audio_frame
;
78
83
uint8_t
*
audio_data
;
84
}
AVCodecInternal
;
85
86
struct
AVCodecDefault
{
87
const
uint8_t
*
key
;
88
const
uint8_t
*
value
;
89
};
90
99
AVHWAccel
*
ff_find_hwaccel
(
enum
AVCodecID
codec_id
,
enum
AVPixelFormat
pix_fmt
);
100
105
int
ff_match_2uint16
(
const
uint16_t (*
tab
)[2],
int
size
,
int
a,
int
b
);
106
107
unsigned
int
avpriv_toupper4
(
unsigned
int
x);
108
109
int
avpriv_lock_avformat
(
void
);
110
int
avpriv_unlock_avformat
(
void
);
111
117
#define FF_MAX_EXTRADATA_SIZE ((1 << 28) - FF_INPUT_BUFFER_PADDING_SIZE)
118
135
int
ff_alloc_packet
(
AVPacket
*avpkt,
int
size
);
136
140
static
av_always_inline
int64_t
ff_samples_to_time_base
(
AVCodecContext
*avctx,
141
int64_t
samples
)
142
{
143
return
av_rescale_q
(samples, (
AVRational
){ 1, avctx->
sample_rate
},
144
avctx->
time_base
);
145
}
146
152
int
ff_get_buffer
(
AVCodecContext
*avctx,
AVFrame
*frame);
153
154
#endif
/* AVCODEC_INTERNAL_H */