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 "libavutil/tx.h"
27 typedef struct Coeffs
{
32 typedef struct RGBFloat
{
36 typedef struct YUVFloat
{
45 typedef struct ShowCQTContext
{
50 enum AVPixelFormat format
;
57 int remaining_fill_max
;
63 AVComplexFloat
*fft_data
;
64 AVComplexFloat
*fft_input
;
65 AVComplexFloat
*fft_result
;
66 AVComplexFloat
*cqt_result
;
80 void (*cqt_calc
)(AVComplexFloat
*dst
, const AVComplexFloat
*src
, const Coeffs
*coeffs
,
81 int len
, int fft_len
);
82 void (*permute_coeffs
)(float *v
, int len
);
83 void (*draw_bar
)(AVFrame
*out
, const float *h
, const float *rcp_h
,
84 const ColorFloat
*c
, int bar_h
, float bar_t
);
85 void (*draw_axis
)(AVFrame
*out
, AVFrame
*axis
, const ColorFloat
*c
, int off
);
86 void (*draw_sono
)(AVFrame
*out
, AVFrame
*sono
, int off
, int idx
);
87 void (*update_sono
)(AVFrame
*sono
, const ColorFloat
*c
, int idx
);
88 /* performance debugging */
91 int64_t process_cqt_time
;
92 int64_t update_sono_time
;
103 int fullhd
; /* deprecated */
113 float coeffclamp
; /* deprecated - ignored */
126 void ff_showcqt_init_x86(ShowCQTContext
*s
);