mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
ac3enc: merge log2_tab() into normalize_samples()
This commit is contained in:
parent
7dcdf974d0
commit
668afae438
@ -71,19 +71,6 @@ void AC3_NAME(apply_window)(DSPContext *dsp, int16_t *output,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Calculate the log2() of the maximum absolute value in an array.
|
|
||||||
* @param tab input array
|
|
||||||
* @param n number of values in the array
|
|
||||||
* @return log2(max(abs(tab[])))
|
|
||||||
*/
|
|
||||||
static int log2_tab(AC3EncodeContext *s, int16_t *src, int len)
|
|
||||||
{
|
|
||||||
int v = s->ac3dsp.ac3_max_msb_abs_int16(src, len);
|
|
||||||
return av_log2(v);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Normalize the input samples to use the maximum available precision.
|
* Normalize the input samples to use the maximum available precision.
|
||||||
* This assumes signed 16-bit input samples.
|
* This assumes signed 16-bit input samples.
|
||||||
@ -92,7 +79,8 @@ static int log2_tab(AC3EncodeContext *s, int16_t *src, int len)
|
|||||||
*/
|
*/
|
||||||
int AC3_NAME(normalize_samples)(AC3EncodeContext *s)
|
int AC3_NAME(normalize_samples)(AC3EncodeContext *s)
|
||||||
{
|
{
|
||||||
int v = 14 - log2_tab(s, s->windowed_samples, AC3_WINDOW_SIZE);
|
int v = s->ac3dsp.ac3_max_msb_abs_int16(s->windowed_samples, AC3_WINDOW_SIZE);
|
||||||
|
v = 14 - av_log2(v);
|
||||||
if (v > 0)
|
if (v > 0)
|
||||||
s->ac3dsp.ac3_lshift_int16(s->windowed_samples, AC3_WINDOW_SIZE, v);
|
s->ac3dsp.ac3_lshift_int16(s->windowed_samples, AC3_WINDOW_SIZE, v);
|
||||||
/* +6 to right-shift from 31-bit to 25-bit */
|
/* +6 to right-shift from 31-bit to 25-bit */
|
||||||
|
Loading…
Reference in New Issue
Block a user