FFmpeg
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
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 Sat May 25 2013 03:58:31 for FFmpeg by
1.8.2