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
.
decode
=
decode_frame
,
50
.capabilities =
CODEC_CAP_DR1
,
51
.
flush
=
flush
,
52
.
sample_fmts
= (
const
enum
AVSampleFormat
[]) {
AV_SAMPLE_FMT_FLTP
,
53
AV_SAMPLE_FMT_FLT
,
54
AV_SAMPLE_FMT_NONE
},
55
};
56
#endif
57
#if CONFIG_MP2FLOAT_DECODER
58
AVCodec
ff_mp2float_decoder = {
59
.
name
=
"mp2float"
,
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_FLTP
,
69
AV_SAMPLE_FMT_FLT
,
70
AV_SAMPLE_FMT_NONE
},
71
};
72
#endif
73
#if CONFIG_MP3FLOAT_DECODER
74
AVCodec
ff_mp3float_decoder = {
75
.
name
=
"mp3float"
,
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_FLTP
,
85
AV_SAMPLE_FMT_FLT
,
86
AV_SAMPLE_FMT_NONE
},
87
};
88
#endif
89
#if CONFIG_MP3ADUFLOAT_DECODER
90
AVCodec
ff_mp3adufloat_decoder = {
91
.
name
=
"mp3adufloat"
,
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_FLTP
,
101
AV_SAMPLE_FMT_FLT
,
102
AV_SAMPLE_FMT_NONE
},
103
};
104
#endif
105
#if CONFIG_MP3ON4FLOAT_DECODER
106
AVCodec
ff_mp3on4float_decoder = {
107
.
name
=
"mp3on4float"
,
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_FLTP
,
118
AV_SAMPLE_FMT_NONE
},
119
};
120
#endif
Generated on Sun Mar 23 2014 23:50:00 for FFmpeg by
1.8.2