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_float.c
Go to the documentation of this file.
1
/*
2
* Float MPEG Audio decoder
3
* Copyright (c) 2010 Michael Niedermayer
4
*
5
* This file is part of FFmpeg.
6
*
7
* FFmpeg is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* FFmpeg is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with FFmpeg; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
22
#include "config.h"
23
#include "
libavutil/samplefmt.h
"
24
25
#define USE_FLOATS 1
26
27
#include "
mpegaudio.h
"
28
29
#define SHR(a,b) ((a)*(1.0f/(1<<(b))))
30
#define FIXR_OLD(a) ((int)((a) * FRAC_ONE + 0.5))
31
#define FIXR(x) ((float)(x))
32
#define FIXHR(x) ((float)(x))
33
#define MULH3(x, y, s) ((s)*(y)*(x))
34
#define MULLx(x, y, s) ((y)*(x))
35
#define RENAME(a) a ## _float
36
#define OUT_FMT AV_SAMPLE_FMT_FLT
37
#define OUT_FMT_P AV_SAMPLE_FMT_FLTP
38
39
#include "
mpegaudiodec_template.c
"
40
41
#if CONFIG_MP1FLOAT_DECODER
42
AVCodec
ff_mp1float_decoder = {
43
.
name
=
"mp1float"
,
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
.close =
decode_close
,
50
.
decode
=
decode_frame
,
51
.capabilities =
CODEC_CAP_DR1
,
52
.
flush
=
flush
,
53
.
sample_fmts
= (
const
enum
AVSampleFormat
[]) {
AV_SAMPLE_FMT_FLTP
,
54
AV_SAMPLE_FMT_FLT
,
55
AV_SAMPLE_FMT_NONE
},
56
};
57
#endif
58
#if CONFIG_MP2FLOAT_DECODER
59
AVCodec
ff_mp2float_decoder = {
60
.
name
=
"mp2float"
,
61
.long_name =
NULL_IF_CONFIG_SMALL
(
"MP2 (MPEG audio layer 2)"
),
62
.type =
AVMEDIA_TYPE_AUDIO
,
63
.id =
AV_CODEC_ID_MP2
,
64
.priv_data_size =
sizeof
(
MPADecodeContext
),
65
.
init
=
decode_init
,
66
.
decode
=
decode_frame
,
67
.close =
decode_close
,
68
.capabilities =
CODEC_CAP_DR1
,
69
.
flush
=
flush
,
70
.
sample_fmts
= (
const
enum
AVSampleFormat
[]) {
AV_SAMPLE_FMT_FLTP
,
71
AV_SAMPLE_FMT_FLT
,
72
AV_SAMPLE_FMT_NONE
},
73
};
74
#endif
75
#if CONFIG_MP3FLOAT_DECODER
76
AVCodec
ff_mp3float_decoder = {
77
.
name
=
"mp3float"
,
78
.long_name =
NULL_IF_CONFIG_SMALL
(
"MP3 (MPEG audio layer 3)"
),
79
.type =
AVMEDIA_TYPE_AUDIO
,
80
.id =
AV_CODEC_ID_MP3
,
81
.priv_data_size =
sizeof
(
MPADecodeContext
),
82
.
init
=
decode_init
,
83
.close =
decode_close
,
84
.
decode
=
decode_frame
,
85
.capabilities =
CODEC_CAP_DR1
,
86
.
flush
=
flush
,
87
.
sample_fmts
= (
const
enum
AVSampleFormat
[]) {
AV_SAMPLE_FMT_FLTP
,
88
AV_SAMPLE_FMT_FLT
,
89
AV_SAMPLE_FMT_NONE
},
90
};
91
#endif
92
#if CONFIG_MP3ADUFLOAT_DECODER
93
AVCodec
ff_mp3adufloat_decoder = {
94
.
name
=
"mp3adufloat"
,
95
.long_name =
NULL_IF_CONFIG_SMALL
(
"ADU (Application Data Unit) MP3 (MPEG audio layer 3)"
),
96
.type =
AVMEDIA_TYPE_AUDIO
,
97
.id =
AV_CODEC_ID_MP3ADU
,
98
.priv_data_size =
sizeof
(
MPADecodeContext
),
99
.
init
=
decode_init
,
100
.close =
decode_close
,
101
.
decode
= decode_frame_adu,
102
.capabilities =
CODEC_CAP_DR1
,
103
.
flush
=
flush
,
104
.
sample_fmts
= (
const
enum
AVSampleFormat
[]) {
AV_SAMPLE_FMT_FLTP
,
105
AV_SAMPLE_FMT_FLT
,
106
AV_SAMPLE_FMT_NONE
},
107
};
108
#endif
109
#if CONFIG_MP3ON4FLOAT_DECODER
110
AVCodec
ff_mp3on4float_decoder = {
111
.
name
=
"mp3on4float"
,
112
.long_name =
NULL_IF_CONFIG_SMALL
(
"MP3onMP4"
),
113
.type =
AVMEDIA_TYPE_AUDIO
,
114
.id =
AV_CODEC_ID_MP3ON4
,
115
.priv_data_size =
sizeof
(MP3On4DecodeContext),
116
.
init
= decode_init_mp3on4,
117
.close = decode_close_mp3on4,
118
.
decode
= decode_frame_mp3on4,
119
.capabilities =
CODEC_CAP_DR1
,
120
.
flush
= flush_mp3on4,
121
.
sample_fmts
= (
const
enum
AVSampleFormat
[]) {
AV_SAMPLE_FMT_FLTP
,
122
AV_SAMPLE_FMT_NONE
},
123
};
124
#endif
Generated on Sun Mar 8 2015 02:34:56 for FFmpeg by
1.8.2