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
14f97bb2
Commit
14f97bb2
authored
Aug 16, 2015
by
Paul B Mahol
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avfilter: add waveform monitor filter
parent
e95193f5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
518 additions
and
1 deletion
+518
-1
Changelog
Changelog
+1
-0
filters.texi
doc/filters.texi
+76
-0
Makefile
libavfilter/Makefile
+1
-0
allfilters.c
libavfilter/allfilters.c
+1
-0
version.h
libavfilter/version.h
+1
-1
vf_histogram.c
libavfilter/vf_histogram.c
+1
-0
vf_waveform.c
libavfilter/vf_waveform.c
+437
-0
No files found.
Changelog
View file @
14f97bb2
...
@@ -33,6 +33,7 @@ version <next>:
...
@@ -33,6 +33,7 @@ version <next>:
- aphasemeter filter
- aphasemeter filter
- showfreqs filter
- showfreqs filter
- vectorscope filter
- vectorscope filter
- waveform filter
version 2.7:
version 2.7:
...
...
doc/filters.texi
View file @
14f97bb2
...
@@ -10927,6 +10927,82 @@ Only deinterlace frames marked as interlaced.
...
@@ -10927,6 +10927,82 @@ Only deinterlace frames marked as interlaced.
Default value is @samp{all}.
Default value is @samp{all}.
@end table
@end table
@section waveform
Video waveform monitor.
The waveform monitor plots color component intensity. By default luminance
only. Each column of the waveform corresponds to a column of pixels in the
source video.
It accepts the following options:
@table @option
@item mode, m
Can be either @code{row}, or @code{column}. Default is @code{column}.
In row mode, the graph on the left side represents color component value 0 and
the right side represents value = 255. In column mode, the top side represents
color component value = 0 and bottom side represents value = 255.
@item intensity, i
Set intensity. Smaller values are useful to find out how many values of the same
luminance are distributed across input rows/columns.
Default value is @code{10}. Allowed range is [1, 255].
@item mirror, r
Set mirroring mode. @code{0} means unmirrored, @code{1} means mirrored.
In mirrored mode, higher values will be represented on the left
side for @code{row} mode and at the top for @code{column} mode. Default is
@code{1} (mirrored).
@item display, d
Set display mode.
It accepts the following values:
@table @samp
@item overlay
Presents information identical to that in the @code{parade}, except
that the graphs representing color components are superimposed directly
over one another.
This display mode makes it easier to spot relative differences or similarities
in overlapping areas of the color components that are supposed to be identical,
such as neutral whites, grays, or blacks.
@item parade
Display separate graph for the color components side by side in
@code{row} mode or one below the other in @code{column} mode.
Using this display mode makes it easy to spot color casts in the highlights
and shadows of an image, by comparing the contours of the top and the bottom
graphs of each waveform. Since whites, grays, and blacks are characterized
by exactly equal amounts of red, green, and blue, neutral areas of the picture
should display three waveforms of roughly equal width/height. If not, the
correction is easy to perform by making level adjustments the three waveforms.
@end table
Default is @code{parade}.
@item components, c
Set which color components to display. Default is 1, which means only luminance
or red color component if input is in RGB colorspace. If is set for example to
7 it will display all 3 (if) available color components.
@item envelope, e
@table @samp
@item none
No envelope, this is default.
@item instant
Instant envelope, minimum and maximum values presented in graph will be easily
visible even with small @code{step} value.
@item peak
Hold minimum and maximum values presented in graph across time. This way you
can still spot out of range values without constantly looking at waveforms.
@item peak+instant
Peak and instant envelope combined together.
@end table
@end table
@section xbr
@section xbr
Apply the xBR high-quality magnification filter which is designed for pixel
Apply the xBR high-quality magnification filter which is designed for pixel
art. It follows a set of edge-detection rules, see
art. It follows a set of edge-detection rules, see
...
...
libavfilter/Makefile
View file @
14f97bb2
...
@@ -232,6 +232,7 @@ OBJS-$(CONFIG_VIDSTABDETECT_FILTER) += vidstabutils.o vf_vidstabdetect.
...
@@ -232,6 +232,7 @@ OBJS-$(CONFIG_VIDSTABDETECT_FILTER) += vidstabutils.o vf_vidstabdetect.
OBJS-$(CONFIG_VIDSTABTRANSFORM_FILTER)
+=
vidstabutils.o
vf_vidstabtransform.o
OBJS-$(CONFIG_VIDSTABTRANSFORM_FILTER)
+=
vidstabutils.o
vf_vidstabtransform.o
OBJS-$(CONFIG_VIGNETTE_FILTER)
+=
vf_vignette.o
OBJS-$(CONFIG_VIGNETTE_FILTER)
+=
vf_vignette.o
OBJS-$(CONFIG_W3FDIF_FILTER)
+=
vf_w3fdif.o
OBJS-$(CONFIG_W3FDIF_FILTER)
+=
vf_w3fdif.o
OBJS-$(CONFIG_WAVEFORM_FILTER)
+=
vf_waveform.o
OBJS-$(CONFIG_XBR_FILTER)
+=
vf_xbr.o
OBJS-$(CONFIG_XBR_FILTER)
+=
vf_xbr.o
OBJS-$(CONFIG_YADIF_FILTER)
+=
vf_yadif.o
OBJS-$(CONFIG_YADIF_FILTER)
+=
vf_yadif.o
OBJS-$(CONFIG_ZMQ_FILTER)
+=
f_zmq.o
OBJS-$(CONFIG_ZMQ_FILTER)
+=
f_zmq.o
...
...
libavfilter/allfilters.c
View file @
14f97bb2
...
@@ -247,6 +247,7 @@ void avfilter_register_all(void)
...
@@ -247,6 +247,7 @@ void avfilter_register_all(void)
REGISTER_FILTER
(
VIDSTABTRANSFORM
,
vidstabtransform
,
vf
);
REGISTER_FILTER
(
VIDSTABTRANSFORM
,
vidstabtransform
,
vf
);
REGISTER_FILTER
(
VIGNETTE
,
vignette
,
vf
);
REGISTER_FILTER
(
VIGNETTE
,
vignette
,
vf
);
REGISTER_FILTER
(
W3FDIF
,
w3fdif
,
vf
);
REGISTER_FILTER
(
W3FDIF
,
w3fdif
,
vf
);
REGISTER_FILTER
(
WAVEFORM
,
waveform
,
vf
);
REGISTER_FILTER
(
XBR
,
xbr
,
vf
);
REGISTER_FILTER
(
XBR
,
xbr
,
vf
);
REGISTER_FILTER
(
YADIF
,
yadif
,
vf
);
REGISTER_FILTER
(
YADIF
,
yadif
,
vf
);
REGISTER_FILTER
(
ZMQ
,
zmq
,
vf
);
REGISTER_FILTER
(
ZMQ
,
zmq
,
vf
);
...
...
libavfilter/version.h
View file @
14f97bb2
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
#include "libavutil/version.h"
#include "libavutil/version.h"
#define LIBAVFILTER_VERSION_MAJOR 5
#define LIBAVFILTER_VERSION_MAJOR 5
#define LIBAVFILTER_VERSION_MINOR 3
6
#define LIBAVFILTER_VERSION_MINOR 3
7
#define LIBAVFILTER_VERSION_MICRO 100
#define LIBAVFILTER_VERSION_MICRO 100
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
...
...
libavfilter/vf_histogram.c
View file @
14f97bb2
...
@@ -172,6 +172,7 @@ static int config_output(AVFilterLink *outlink)
...
@@ -172,6 +172,7 @@ static int config_output(AVFilterLink *outlink)
outlink
->
h
=
(
h
->
level_height
+
h
->
scale_height
)
*
FFMAX
(
ncomp
*
h
->
display_mode
,
1
);
outlink
->
h
=
(
h
->
level_height
+
h
->
scale_height
)
*
FFMAX
(
ncomp
*
h
->
display_mode
,
1
);
break
;
break
;
case
MODE_WAVEFORM
:
case
MODE_WAVEFORM
:
av_log
(
ctx
,
AV_LOG_WARNING
,
"This mode is deprecated, please use waveform filter instead.
\n
"
);
if
(
h
->
waveform_mode
)
if
(
h
->
waveform_mode
)
outlink
->
h
=
256
*
FFMAX
(
h
->
ncomp
*
h
->
display_mode
,
1
);
outlink
->
h
=
256
*
FFMAX
(
h
->
ncomp
*
h
->
display_mode
,
1
);
else
else
...
...
libavfilter/vf_waveform.c
0 → 100644
View file @
14f97bb2
This diff is collapsed.
Click to expand it.
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