[FFmpeg-cvslog] avfilter/avf_showspectrum: convert some doubles to floats
Paul B Mahol
git at videolan.org
Tue Apr 30 21:37:20 EEST 2019
ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Tue Apr 30 20:33:14 2019 +0200| [5a39b797ac46bbf992e76ea363f2c5fab7ebc29f] | committer: Paul B Mahol
avfilter/avf_showspectrum: convert some doubles to floats
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5a39b797ac46bbf992e76ea363f2c5fab7ebc29f
---
libavfilter/avf_showspectrum.c | 68 +++++++++++++++++++++---------------------
1 file changed, 34 insertions(+), 34 deletions(-)
diff --git a/libavfilter/avf_showspectrum.c b/libavfilter/avf_showspectrum.c
index 8186023a0a..f175bf1cb5 100644
--- a/libavfilter/avf_showspectrum.c
+++ b/libavfilter/avf_showspectrum.c
@@ -392,29 +392,29 @@ static int run_channel_fft(AVFilterContext *ctx, void *arg, int jobnr, int nb_jo
}
if (s->stop) {
- double theta, phi, psi, a, b, S, c;
+ float theta, phi, psi, a, b, S, c;
FFTComplex *g = s->fft_data[ch];
FFTComplex *h = s->fft_scratch[ch];
int L = s->buf_size;
int N = s->win_size;
int M = s->win_size / 2;
- phi = 2.0 * M_PI * (s->stop - s->start) / (double)inlink->sample_rate / (M - 1);
- theta = 2.0 * M_PI * s->start / (double)inlink->sample_rate;
+ phi = 2.f * M_PI * (s->stop - s->start) / (float)inlink->sample_rate / (M - 1);
+ theta = 2.f * M_PI * s->start / (float)inlink->sample_rate;
for (int n = 0; n < M; n++) {
- h[n].re = cos(n * n / 2.0 * phi);
- h[n].im = sin(n * n / 2.0 * phi);
+ h[n].re = cosf(n * n / 2.f * phi);
+ h[n].im = sinf(n * n / 2.f * phi);
}
for (int n = M; n < L; n++) {
- h[n].re = 0.0;
- h[n].im = 0.0;
+ h[n].re = 0.f;
+ h[n].im = 0.f;
}
for (int n = L - N; n < L; n++) {
- h[n].re = cos((L - n) * (L - n) / 2.0 * phi);
- h[n].im = sin((L - n) * (L - n) / 2.0 * phi);
+ h[n].re = cosf((L - n) * (L - n) / 2.f * phi);
+ h[n].im = sinf((L - n) * (L - n) / 2.f * phi);
}
for (int n = 0; n < N; n++) {
@@ -423,14 +423,14 @@ static int run_channel_fft(AVFilterContext *ctx, void *arg, int jobnr, int nb_jo
}
for (int n = N; n < L; n++) {
- g[n].re = 0.;
- g[n].im = 0.;
+ g[n].re = 0.f;
+ g[n].im = 0.f;
}
for (int n = 0; n < N; n++) {
- psi = n * theta + n * n / 2.0 * phi;
- c = cos(psi);
- S = -sin(psi);
+ psi = n * theta + n * n / 2.f * phi;
+ c = cosf(psi);
+ S = -sinf(psi);
a = c * g[n].re - S * g[n].im;
b = S * g[n].re + c * g[n].im;
g[n].re = a;
@@ -457,9 +457,9 @@ static int run_channel_fft(AVFilterContext *ctx, void *arg, int jobnr, int nb_jo
av_fft_calc(s->ifft[ch], g);
for (int k = 0; k < M; k++) {
- psi = k * k / 2.0 * phi;
- c = cos(psi);
- S = -sin(psi);
+ psi = k * k / 2.f * phi;
+ c = cosf(psi);
+ S = -sinf(psi);
a = c * g[k].re - S * g[k].im;
b = S * g[k].re + c * g[k].im;
s->fft_data[ch][k].re = a;
@@ -555,15 +555,15 @@ static void color_range(ShowSpectrumContext *s, int ch,
if (s->color_mode == CHANNEL) {
if (s->nb_display_channels > 1) {
- *uf *= 0.5 * sin((2 * M_PI * ch) / s->nb_display_channels + M_PI * s->rotation);
- *vf *= 0.5 * cos((2 * M_PI * ch) / s->nb_display_channels + M_PI * s->rotation);
+ *uf *= 0.5f * sinf((2 * M_PI * ch) / s->nb_display_channels + M_PI * s->rotation);
+ *vf *= 0.5f * cosf((2 * M_PI * ch) / s->nb_display_channels + M_PI * s->rotation);
} else {
- *uf *= 0.5 * sin(M_PI * s->rotation);
- *vf *= 0.5 * cos(M_PI * s->rotation + M_PI_2);
+ *uf *= 0.5f * sinf(M_PI * s->rotation);
+ *vf *= 0.5f * cosf(M_PI * s->rotation + M_PI_2);
}
} else {
- *uf += *uf * sin(M_PI * s->rotation);
- *vf += *vf * cos(M_PI * s->rotation + M_PI_2);
+ *uf += *uf * sinf(M_PI * s->rotation);
+ *vf += *vf * cosf(M_PI * s->rotation + M_PI_2);
}
*uf *= s->saturation;
@@ -854,7 +854,7 @@ static int draw_legend(AVFilterContext *ctx, int samples)
}
for (y = 0; ch == 0 && y < h; y += h / 10) {
- float value = 120.0 * log10(1. - y / (float)h);
+ float value = 120.f * log10f(1.f - y / (float)h);
char *text;
if (value < -120)
@@ -896,19 +896,19 @@ static float get_value(AVFilterContext *ctx, int ch, int y)
a = av_clipf(a, 0, 1);
break;
case SQRT:
- a = av_clipf(sqrt(a), 0, 1);
+ a = av_clipf(sqrtf(a), 0, 1);
break;
case CBRT:
- a = av_clipf(cbrt(a), 0, 1);
+ a = av_clipf(cbrtf(a), 0, 1);
break;
case FOURTHRT:
- a = av_clipf(sqrt(sqrt(a)), 0, 1);
+ a = av_clipf(sqrtf(sqrtf(a)), 0, 1);
break;
case FIFTHRT:
- a = av_clipf(pow(a, 0.20), 0, 1);
+ a = av_clipf(powf(a, 0.20), 0, 1);
break;
case LOG:
- a = 1 + log10(av_clipd(a, 1e-6, 1)) / 6; // zero = -120dBFS
+ a = 1.f + log10f(av_clipf(a, 1e-6, 1)) / 6.f; // zero = -120dBFS
break;
default:
av_assert0(0);
@@ -1128,7 +1128,7 @@ static int config_output(AVFilterLink *outlink)
generate_window_func(s->window_func_lut, s->win_size, s->win_func, &overlap);
if (s->overlap == 1)
s->overlap = overlap;
- s->hop_size = (1. - s->overlap) * s->win_size;
+ s->hop_size = (1.f - s->overlap) * s->win_size;
if (s->hop_size < 1) {
av_log(ctx, AV_LOG_ERROR, "overlap %f too big\n", s->overlap);
return AVERROR(EINVAL);
@@ -1137,7 +1137,7 @@ static int config_output(AVFilterLink *outlink)
for (s->win_scale = 0, i = 0; i < s->win_size; i++) {
s->win_scale += s->window_func_lut[i] * s->window_func_lut[i];
}
- s->win_scale = 1. / sqrt(s->win_scale);
+ s->win_scale = 1.f / sqrtf(s->win_scale);
/* prepare the initial picref buffer (black frame) */
av_frame_free(&s->outpicref);
@@ -1198,8 +1198,8 @@ static int config_output(AVFilterLink *outlink)
#define RE(y, ch) s->fft_data[ch][y].re
#define IM(y, ch) s->fft_data[ch][y].im
-#define MAGNITUDE(y, ch) hypot(RE(y, ch), IM(y, ch))
-#define PHASE(y, ch) atan2(IM(y, ch), RE(y, ch))
+#define MAGNITUDE(y, ch) hypotf(RE(y, ch), IM(y, ch))
+#define PHASE(y, ch) atan2f(IM(y, ch), RE(y, ch))
static int calc_channel_magnitudes(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
{
@@ -1639,7 +1639,7 @@ static int showspectrumpic_request_frame(AVFilterLink *outlink)
if (consumed >= spb) {
int h = s->orientation == VERTICAL ? s->h : s->w;
- scale_magnitudes(s, 1. / (consumed / spf));
+ scale_magnitudes(s, 1.f / (consumed / spf));
plot_spectrum_column(inlink, fin);
consumed = 0;
x++;
More information about the ffmpeg-cvslog
mailing list