Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
f0d3e43b
Commit
f0d3e43b
authored
Jan 04, 2016
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ac3enc: Reshuffle functions to avoid forward declarations
parent
e22c63ac
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
64 additions
and
73 deletions
+64
-73
ac3enc_fixed.c
libavcodec/ac3enc_fixed.c
+28
-30
ac3enc_float.c
libavcodec/ac3enc_float.c
+36
-34
ac3enc_template.c
libavcodec/ac3enc_template.c
+0
-9
No files found.
libavcodec/ac3enc_fixed.c
View file @
f0d3e43b
...
...
@@ -38,36 +38,6 @@
static
const
AVClass
ac3enc_class
=
{
"Fixed-Point AC-3 Encoder"
,
av_default_item_name
,
ac3_options
,
LIBAVUTIL_VERSION_INT
};
static
int
normalize_samples
(
AC3EncodeContext
*
s
);
#include "ac3enc_template.c"
/**
* Finalize MDCT and free allocated memory.
*
* @param s AC-3 encoder private context
*/
av_cold
void
AC3_NAME
(
mdct_end
)(
AC3EncodeContext
*
s
)
{
ff_mdct_end
(
&
s
->
mdct
);
}
/**
* Initialize MDCT tables.
*
* @param s AC-3 encoder private context
* @return 0 on success, negative error code on failure
*/
av_cold
int
AC3_NAME
(
mdct_init
)(
AC3EncodeContext
*
s
)
{
int
ret
=
ff_mdct_init
(
&
s
->
mdct
,
9
,
0
,
-
1
.
0
);
s
->
mdct_window
=
ff_ac3_window
;
return
ret
;
}
/*
* Normalize the input samples to use the maximum available precision.
* This assumes signed 16-bit input samples.
...
...
@@ -126,6 +96,34 @@ static CoefType calc_cpl_coord(CoefSumType energy_ch, CoefSumType energy_cpl)
}
#include "ac3enc_template.c"
/**
* Finalize MDCT and free allocated memory.
*
* @param s AC-3 encoder private context
*/
av_cold
void
AC3_NAME
(
mdct_end
)(
AC3EncodeContext
*
s
)
{
ff_mdct_end
(
&
s
->
mdct
);
}
/**
* Initialize MDCT tables.
*
* @param s AC-3 encoder private context
* @return 0 on success, negative error code on failure
*/
av_cold
int
AC3_NAME
(
mdct_init
)(
AC3EncodeContext
*
s
)
{
int
ret
=
ff_mdct_init
(
&
s
->
mdct
,
9
,
0
,
-
1
.
0
);
s
->
mdct_window
=
ff_ac3_window
;
return
ret
;
}
static
av_cold
int
ac3_fixed_encode_init
(
AVCodecContext
*
avctx
)
{
AC3EncodeContext
*
s
=
avctx
->
priv_data
;
...
...
libavcodec/ac3enc_float.c
View file @
f0d3e43b
...
...
@@ -39,6 +39,42 @@
static
const
AVClass
ac3enc_class
=
{
"AC-3 Encoder"
,
av_default_item_name
,
ac3_options
,
LIBAVUTIL_VERSION_INT
};
/*
* Scale MDCT coefficients from float to 24-bit fixed-point.
*/
static
void
scale_coefficients
(
AC3EncodeContext
*
s
)
{
int
chan_size
=
AC3_MAX_COEFS
*
s
->
num_blocks
;
int
cpl
=
s
->
cpl_on
;
s
->
ac3dsp
.
float_to_fixed24
(
s
->
fixed_coef_buffer
+
(
chan_size
*
!
cpl
),
s
->
mdct_coef_buffer
+
(
chan_size
*
!
cpl
),
chan_size
*
(
s
->
channels
+
cpl
));
}
/*
* Clip MDCT coefficients to allowable range.
*/
static
void
clip_coefficients
(
AudioDSPContext
*
adsp
,
float
*
coef
,
unsigned
int
len
)
{
adsp
->
vector_clipf
(
coef
,
coef
,
len
,
COEF_MIN
,
COEF_MAX
);
}
/*
* Calculate a single coupling coordinate.
*/
static
CoefType
calc_cpl_coord
(
CoefSumType
energy_ch
,
CoefSumType
energy_cpl
)
{
float
coord
=
0
.
125
;
if
(
energy_cpl
>
0
)
coord
*=
sqrtf
(
energy_ch
/
energy_cpl
);
return
FFMIN
(
coord
,
COEF_MAX
);
}
#include "ac3enc_template.c"
...
...
@@ -82,40 +118,6 @@ av_cold int ff_ac3_float_mdct_init(AC3EncodeContext *s)
}
/*
* Scale MDCT coefficients from float to 24-bit fixed-point.
*/
static
void
scale_coefficients
(
AC3EncodeContext
*
s
)
{
int
chan_size
=
AC3_MAX_COEFS
*
s
->
num_blocks
;
int
cpl
=
s
->
cpl_on
;
s
->
ac3dsp
.
float_to_fixed24
(
s
->
fixed_coef_buffer
+
(
chan_size
*
!
cpl
),
s
->
mdct_coef_buffer
+
(
chan_size
*
!
cpl
),
chan_size
*
(
s
->
channels
+
cpl
));
}
/*
* Clip MDCT coefficients to allowable range.
*/
static
void
clip_coefficients
(
AudioDSPContext
*
adsp
,
float
*
coef
,
unsigned
int
len
)
{
adsp
->
vector_clipf
(
coef
,
coef
,
len
,
COEF_MIN
,
COEF_MAX
);
}
/*
* Calculate a single coupling coordinate.
*/
static
CoefType
calc_cpl_coord
(
CoefSumType
energy_ch
,
CoefSumType
energy_cpl
)
{
float
coord
=
0
.
125
;
if
(
energy_cpl
>
0
)
coord
*=
sqrtf
(
energy_ch
/
energy_cpl
);
return
FFMIN
(
coord
,
COEF_MAX
);
}
av_cold
int
ff_ac3_float_encode_init
(
AVCodecContext
*
avctx
)
{
AC3EncodeContext
*
s
=
avctx
->
priv_data
;
...
...
libavcodec/ac3enc_template.c
View file @
f0d3e43b
...
...
@@ -36,15 +36,6 @@
#include "ac3enc.h"
#include "eac3enc.h"
/* prototypes for static functions in ac3enc_fixed.c and ac3enc_float.c */
static
void
scale_coefficients
(
AC3EncodeContext
*
s
);
static
void
clip_coefficients
(
AudioDSPContext
*
adsp
,
CoefType
*
coef
,
unsigned
int
len
);
static
CoefType
calc_cpl_coord
(
CoefSumType
energy_ch
,
CoefSumType
energy_cpl
);
int
AC3_NAME
(
allocate_sample_buffers
)(
AC3EncodeContext
*
s
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment