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
libavcodec
mpegaudiodec_fixed.c
Go to the documentation of this file.
1
/*
2
* Fixed-point MPEG audio decoder
3
*
4
* This file is part of FFmpeg.
5
*
6
* FFmpeg 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
* FFmpeg 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 FFmpeg; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
*/
20
21
#include "config.h"
22
#include "
libavutil/samplefmt.h
"
23
24
#define USE_FLOATS 0
25
26
#include "
mpegaudio.h
"
27
28
#define SHR(a,b) ((a)>>(b))
29
/* WARNING: only correct for positive numbers */
30
#define FIXR_OLD(a) ((int)((a) * FRAC_ONE + 0.5))
31
#define FIXR(a) ((int)((a) * FRAC_ONE + 0.5))
32
#define FIXHR(a) ((int)((a) * (1LL<<32) + 0.5))
33
#define MULH3(x, y, s) MULH((s)*(x), y)
34
#define MULLx(x, y, s) MULL(x,y,s)
35
#define RENAME(a) a ## _fixed
36
#define OUT_FMT AV_SAMPLE_FMT_S16
37
#define OUT_FMT_P AV_SAMPLE_FMT_S16P
38
39
#include "
mpegaudiodec_template.c
"
40
41
#if CONFIG_MP1_DECODER
42
AVCodec
ff_mp1_decoder = {
43
.
name
=
"mp1"
,
44
.long_name =
NULL_IF_CONFIG_SMALL
(
"MP1 (MPEG audio layer 1)"
),
45
.type =
AVMEDIA_TYPE_AUDIO
,
46
.id =
AV_CODEC_ID_MP1
,
47
.priv_data_size =
sizeof
(
MPADecodeContext
),
48
.
init
=
decode_init
,
49
.
decode
=
decode_frame
,
50
.capabilities =
CODEC_CAP_DR1
,
51
.
flush
=
flush
,
52
.
sample_fmts
= (
const
enum
AVSampleFormat
[]) {
AV_SAMPLE_FMT_S16P
,
53
AV_SAMPLE_FMT_S16
,
54
AV_SAMPLE_FMT_NONE
},
55
};
56
#endif
57
#if CONFIG_MP2_DECODER
58
AVCodec
ff_mp2_decoder = {
59
.
name
=
"mp2"
,
60
.long_name =
NULL_IF_CONFIG_SMALL
(
"MP2 (MPEG audio layer 2)"
),
61
.type =
AVMEDIA_TYPE_AUDIO
,
62
.id =
AV_CODEC_ID_MP2
,
63
.priv_data_size =
sizeof
(
MPADecodeContext
),
64
.
init
=
decode_init
,
65
.
decode
=
decode_frame
,
66
.capabilities =
CODEC_CAP_DR1
,
67
.
flush
=
flush
,
68
.
sample_fmts
= (
const
enum
AVSampleFormat
[]) {
AV_SAMPLE_FMT_S16P
,
69
AV_SAMPLE_FMT_S16
,
70
AV_SAMPLE_FMT_NONE
},
71
};
72
#endif
73
#if CONFIG_MP3_DECODER
74
AVCodec
ff_mp3_decoder = {
75
.
name
=
"mp3"
,
76
.long_name =
NULL_IF_CONFIG_SMALL
(
"MP3 (MPEG audio layer 3)"
),
77
.type =
AVMEDIA_TYPE_AUDIO
,
78
.id =
AV_CODEC_ID_MP3
,
79
.priv_data_size =
sizeof
(
MPADecodeContext
),
80
.
init
=
decode_init
,
81
.
decode
=
decode_frame
,
82
.capabilities =
CODEC_CAP_DR1
,
83
.
flush
=
flush
,
84
.
sample_fmts
= (
const
enum
AVSampleFormat
[]) {
AV_SAMPLE_FMT_S16P
,
85
AV_SAMPLE_FMT_S16
,
86
AV_SAMPLE_FMT_NONE
},
87
};
88
#endif
89
#if CONFIG_MP3ADU_DECODER
90
AVCodec
ff_mp3adu_decoder = {
91
.
name
=
"mp3adu"
,
92
.long_name =
NULL_IF_CONFIG_SMALL
(
"ADU (Application Data Unit) MP3 (MPEG audio layer 3)"
),
93
.type =
AVMEDIA_TYPE_AUDIO
,
94
.id =
AV_CODEC_ID_MP3ADU
,
95
.priv_data_size =
sizeof
(
MPADecodeContext
),
96
.
init
=
decode_init
,
97
.
decode
= decode_frame_adu,
98
.capabilities =
CODEC_CAP_DR1
,
99
.
flush
=
flush
,
100
.
sample_fmts
= (
const
enum
AVSampleFormat
[]) {
AV_SAMPLE_FMT_S16P
,
101
AV_SAMPLE_FMT_S16
,
102
AV_SAMPLE_FMT_NONE
},
103
};
104
#endif
105
#if CONFIG_MP3ON4_DECODER
106
AVCodec
ff_mp3on4_decoder = {
107
.
name
=
"mp3on4"
,
108
.long_name =
NULL_IF_CONFIG_SMALL
(
"MP3onMP4"
),
109
.type =
AVMEDIA_TYPE_AUDIO
,
110
.id =
AV_CODEC_ID_MP3ON4
,
111
.priv_data_size =
sizeof
(MP3On4DecodeContext),
112
.
init
= decode_init_mp3on4,
113
.close = decode_close_mp3on4,
114
.
decode
= decode_frame_mp3on4,
115
.capabilities =
CODEC_CAP_DR1
,
116
.
flush
= flush_mp3on4,
117
.
sample_fmts
= (
const
enum
AVSampleFormat
[]) {
AV_SAMPLE_FMT_S16P
,
118
AV_SAMPLE_FMT_NONE
},
119
};
120
#endif
Generated on Sun Mar 8 2015 02:34:56 for FFmpeg by
1.8.2