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
libswresample
audioconvert.h
Go to the documentation of this file.
1
/*
2
* audio conversion
3
* Copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
4
* Copyright (c) 2008 Peter Ross
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 SWR_AUDIOCONVERT_H
24
#define SWR_AUDIOCONVERT_H
25
26
/**
27
* @file
28
* Audio format conversion routines
29
*/
30
31
32
#include "
swresample_internal.h
"
33
#include "
libavutil/cpu.h
"
34
35
36
typedef
void
(
conv_func_type
)(
uint8_t
*po,
const
uint8_t
*pi,
int
is,
int
os,
uint8_t
*
end
);
37
typedef
void
(
simd_func_type
)(
uint8_t
**dst,
const
uint8_t
**
src
,
int
len
);
38
39
typedef
struct
AudioConvert
{
40
int
channels
;
41
int
in_simd_align_mask
;
42
int
out_simd_align_mask
;
43
conv_func_type
*
conv_f
;
44
simd_func_type
*
simd_f
;
45
const
int
*
ch_map
;
46
uint8_t
silence
[8];
///< silence input sample
47
}
AudioConvert
;
48
49
/**
50
* Create an audio sample format converter context
51
* @param out_fmt Output sample format
52
* @param in_fmt Input sample format
53
* @param channels Number of channels
54
* @param flags See AV_CPU_FLAG_xx
55
* @param ch_map list of the channels id to pick from the source stream, NULL
56
* if all channels must be selected
57
* @return NULL on error
58
*/
59
AudioConvert
*
swri_audio_convert_alloc
(
enum
AVSampleFormat
out_fmt,
60
enum
AVSampleFormat
in_fmt,
61
int
channels,
const
int
*ch_map,
62
int
flags
);
63
64
/**
65
* Free audio sample format converter context.
66
* and set the pointer to NULL
67
*/
68
void
swri_audio_convert_free
(
AudioConvert
**ctx);
69
70
/**
71
* Convert between audio sample formats
72
* @param[in] out array of output buffers for each channel. set to NULL to ignore processing of the given channel.
73
* @param[in] in array of input buffers for each channel
74
* @param len length of audio frame size (measured in samples)
75
*/
76
int
swri_audio_convert
(
AudioConvert
*ctx,
AudioData
*
out
,
AudioData
*
in
,
int
len
);
77
78
#endif
/* AUDIOCONVERT_H */
Generated on Sun Mar 23 2014 23:49:52 for FFmpeg by
1.8.2