2 * Copyright (c) 2015 Muhammad Faiz <mfcc64@gmail.com>
4 * This file is part of FFmpeg.
6 * FFmpeg is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * FFmpeg is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with FFmpeg; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 #ifndef AVFILTER_SHOWCQT_H
22 #define AVFILTER_SHOWCQT_H
24 #include "libavcodec/avfft.h"
28 typedef struct Coeffs {
33 typedef struct RGBFloat {
37 typedef struct YUVFloat {
46 typedef struct ShowCQTContext {
51 enum AVPixelFormat format;
58 int remaining_fill_max;
64 FFTComplex *fft_result;
65 FFTComplex *cqt_result;
79 void (*cqt_calc)(FFTComplex *dst, const FFTComplex *src, const Coeffs *coeffs,
80 int len, int fft_len);
81 void (*permute_coeffs)(float *v, int len);
82 void (*draw_bar)(AVFrame *out, const float *h, const float *rcp_h,
83 const ColorFloat *c, int bar_h, float bar_t);
84 void (*draw_axis)(AVFrame *out, AVFrame *axis, const ColorFloat *c, int off);
85 void (*draw_sono)(AVFrame *out, AVFrame *sono, int off, int idx);
86 void (*update_sono)(AVFrame *sono, const ColorFloat *c, int idx);
87 /* performance debugging */
90 int64_t process_cqt_time;
91 int64_t update_sono_time;
102 int fullhd; /* deprecated */
112 float coeffclamp; /* deprecated - ignored */
125 void ff_showcqt_init_x86(ShowCQTContext *s);