Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
libavresample
audio_data.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2012 Justin Ruggles <justin.ruggles@gmail.com>
3
*
4
* This file is part of Libav.
5
*
6
* Libav is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* Libav is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with Libav; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#ifndef AVRESAMPLE_AUDIO_DATA_H
22
#define AVRESAMPLE_AUDIO_DATA_H
23
24
#include <stdint.h>
25
26
#include "
libavutil/audio_fifo.h
"
27
#include "
libavutil/log.h
"
28
#include "
libavutil/samplefmt.h
"
29
#include "
avresample.h
"
30
34
typedef
struct
AudioData
{
35
const
AVClass
*
class
;
36
uint8_t
*
data
[
AVRESAMPLE_MAX_CHANNELS
];
37
uint8_t
*
buffer
;
38
unsigned
int
buffer_size
;
39
int
allocated_samples
;
40
int
nb_samples
;
41
enum
AVSampleFormat
sample_fmt
;
42
int
channels
;
43
int
allocated_channels
;
44
int
is_planar
;
45
int
planes
;
46
int
sample_size
;
47
int
stride
;
48
int
read_only
;
49
int
allow_realloc
;
50
int
ptr_align
;
51
int
samples_align
;
52
const
char
*
name
;
53
}
AudioData
;
54
55
int
ff_audio_data_set_channels
(
AudioData
*
a
,
int
channels);
56
76
int
ff_audio_data_init
(
AudioData
*
a
,
uint8_t
**src,
int
plane_size,
int
channels,
77
int
nb_samples
,
enum
AVSampleFormat
sample_fmt
,
78
int
read_only,
const
char
*
name
);
79
91
AudioData
*
ff_audio_data_alloc
(
int
channels,
int
nb_samples
,
92
enum
AVSampleFormat
sample_fmt
,
93
const
char
*
name
);
94
104
int
ff_audio_data_realloc
(
AudioData
*
a
,
int
nb_samples
);
105
113
void
ff_audio_data_free
(
AudioData
**
a
);
114
122
int
ff_audio_data_copy
(
AudioData
*out,
AudioData
*in);
123
136
int
ff_audio_data_combine
(
AudioData
*dst,
int
dst_offset,
AudioData
*src,
137
int
src_offset,
int
nb_samples
);
138
147
void
ff_audio_data_drain
(
AudioData
*
a
,
int
nb_samples
);
148
159
int
ff_audio_data_add_to_fifo
(
AVAudioFifo
*af,
AudioData
*
a
,
int
offset,
160
int
nb_samples
);
161
171
int
ff_audio_data_read_from_fifo
(
AVAudioFifo
*af,
AudioData
*
a
,
int
nb_samples
);
172
173
#endif
/* AVRESAMPLE_AUDIO_DATA_H */