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
a69cf50d
Commit
a69cf50d
authored
Jan 08, 2016
by
Paul B Mahol
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avfilter/avf_showspectrum: add cool color map
Signed-off-by:
Paul B Mahol
<
onemda@gmail.com
>
parent
b7b4d99a
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
5 deletions
+17
-5
filters.texi
doc/filters.texi
+4
-0
avf_showspectrum.c
libavfilter/avf_showspectrum.c
+13
-5
No files found.
doc/filters.texi
View file @
a69cf50d
...
...
@@ -14642,6 +14642,8 @@ each channel is displayed using the fire color scheme
each channel is displayed using the fiery color scheme
@item fruit
each channel is displayed using the fruit color scheme
@item cool
each channel is displayed using the cool color scheme
@end table
Default value is @samp{channel}.
...
...
@@ -14778,6 +14780,8 @@ each channel is displayed using the fire color scheme
each channel is displayed using the fiery color scheme
@item fruit
each channel is displayed using the fruit color scheme
@item cool
each channel is displayed using the cool color scheme
@end table
Default value is @samp{intensity}.
...
...
libavfilter/avf_showspectrum.c
View file @
a69cf50d
...
...
@@ -43,7 +43,7 @@
enum
DisplayMode
{
COMBINED
,
SEPARATE
,
NB_MODES
};
enum
DisplayScale
{
LINEAR
,
SQRT
,
CBRT
,
LOG
,
FOURTHRT
,
FIFTHRT
,
NB_SCALES
};
enum
ColorMode
{
CHANNEL
,
INTENSITY
,
RAINBOW
,
MORELAND
,
NEBULAE
,
FIRE
,
FIERY
,
FRUIT
,
NB_CLMODES
};
enum
ColorMode
{
CHANNEL
,
INTENSITY
,
RAINBOW
,
MORELAND
,
NEBULAE
,
FIRE
,
FIERY
,
FRUIT
,
COOL
,
NB_CLMODES
};
enum
SlideMode
{
REPLACE
,
SCROLL
,
FULLFRAME
,
RSCROLL
,
NB_SLIDES
};
enum
Orientation
{
VERTICAL
,
HORIZONTAL
,
NB_ORIENTATIONS
};
...
...
@@ -103,6 +103,7 @@ static const AVOption showspectrum_options[] = {
{
"fire"
,
"fire based coloring"
,
0
,
AV_OPT_TYPE_CONST
,
{.
i64
=
FIRE
},
0
,
0
,
FLAGS
,
"color"
},
{
"fiery"
,
"fiery based coloring"
,
0
,
AV_OPT_TYPE_CONST
,
{.
i64
=
FIERY
},
0
,
0
,
FLAGS
,
"color"
},
{
"fruit"
,
"fruit based coloring"
,
0
,
AV_OPT_TYPE_CONST
,
{.
i64
=
FRUIT
},
0
,
0
,
FLAGS
,
"color"
},
{
"cool"
,
"cool based coloring"
,
0
,
AV_OPT_TYPE_CONST
,
{.
i64
=
COOL
},
0
,
0
,
FLAGS
,
"color"
},
{
"scale"
,
"set display scale"
,
OFFSET
(
scale
),
AV_OPT_TYPE_INT
,
{.
i64
=
SQRT
},
LINEAR
,
NB_SCALES
-
1
,
FLAGS
,
"scale"
},
{
"sqrt"
,
"square root"
,
0
,
AV_OPT_TYPE_CONST
,
{.
i64
=
SQRT
},
0
,
0
,
FLAGS
,
"scale"
},
{
"cbrt"
,
"cubic root"
,
0
,
AV_OPT_TYPE_CONST
,
{.
i64
=
CBRT
},
0
,
0
,
FLAGS
,
"scale"
},
...
...
@@ -204,6 +205,10 @@ static const struct ColorTable {
{
0
.
60
,
151
/
256
.,
(
50
-
128
)
/
256
.,
(
146
-
128
)
/
256
.
},
{
0
.
70
,
191
/
256
.,
(
63
-
128
)
/
256
.,
(
178
-
128
)
/
256
.
},
{
1
,
98
/
256
.,
(
80
-
128
)
/
256
.,
(
221
-
128
)
/
256
.
}},
[
COOL
]
=
{
{
0
,
0
,
0
,
0
},
{
.
15
,
0
,
.
5
,
-
.
5
},
{
1
,
1
,
-
.
5
,
.
5
}},
};
static
av_cold
void
uninit
(
AVFilterContext
*
ctx
)
...
...
@@ -472,6 +477,7 @@ static void color_range(ShowSpectrumContext *s, int ch,
case
FIRE
:
case
FIERY
:
case
FRUIT
:
case
COOL
:
case
INTENSITY
:
*
uf
=
*
yf
;
*
vf
=
*
yf
;
...
...
@@ -599,18 +605,19 @@ static int plot_spectrum_column(AVFilterLink *inlink, AVFrame *insamples)
/* apply scale */
switch
(
s
->
scale
)
{
case
LINEAR
:
a
=
av_clipf
(
a
,
0
,
1
);
break
;
case
SQRT
:
a
=
sqrt
(
a
);
a
=
av_clipf
(
sqrt
(
a
),
0
,
1
);
break
;
case
CBRT
:
a
=
cbrt
(
a
);
a
=
av_clipf
(
cbrt
(
a
),
0
,
1
);
break
;
case
FOURTHRT
:
a
=
sqrt
(
sqrt
(
a
)
);
a
=
av_clipf
(
sqrt
(
sqrt
(
a
)),
0
,
1
);
break
;
case
FIFTHRT
:
a
=
pow
(
a
,
0
.
20
);
a
=
av_clipf
(
pow
(
a
,
0
.
20
),
0
,
1
);
break
;
case
LOG
:
a
=
1
+
log10
(
av_clipd
(
a
*
w
,
1e-6
,
1
))
/
6
;
// zero = -120dBFS
...
...
@@ -820,6 +827,7 @@ static const AVOption showspectrumpic_options[] = {
{
"fire"
,
"fire based coloring"
,
0
,
AV_OPT_TYPE_CONST
,
{.
i64
=
FIRE
},
0
,
0
,
FLAGS
,
"color"
},
{
"fiery"
,
"fiery based coloring"
,
0
,
AV_OPT_TYPE_CONST
,
{.
i64
=
FIERY
},
0
,
0
,
FLAGS
,
"color"
},
{
"fruit"
,
"fruit based coloring"
,
0
,
AV_OPT_TYPE_CONST
,
{.
i64
=
FRUIT
},
0
,
0
,
FLAGS
,
"color"
},
{
"cool"
,
"cool based coloring"
,
0
,
AV_OPT_TYPE_CONST
,
{.
i64
=
COOL
},
0
,
0
,
FLAGS
,
"color"
},
{
"scale"
,
"set display scale"
,
OFFSET
(
scale
),
AV_OPT_TYPE_INT
,
{.
i64
=
LOG
},
0
,
NB_SCALES
-
1
,
FLAGS
,
"scale"
},
{
"sqrt"
,
"square root"
,
0
,
AV_OPT_TYPE_CONST
,
{.
i64
=
SQRT
},
0
,
0
,
FLAGS
,
"scale"
},
{
"cbrt"
,
"cubic root"
,
0
,
AV_OPT_TYPE_CONST
,
{.
i64
=
CBRT
},
0
,
0
,
FLAGS
,
"scale"
},
...
...
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