Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
ffmpeg
Project
Project
Details
Activity
Releases
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
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Stefan Westerfeld
ffmpeg
Commits
00b03331
Commit
00b03331
authored
Oct 20, 2022
by
Paul B Mahol
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avfilter/vf_threshold: fix handling of zero threshold
parent
0e5e3b37
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
10 additions
and
17 deletions
+10
-17
vf_threshold_init.h
libavfilter/vf_threshold_init.h
+2
-2
vf_threshold.asm
libavfilter/x86/vf_threshold.asm
+8
-15
No files found.
libavfilter/vf_threshold_init.h
View file @
00b03331
...
...
@@ -38,7 +38,7 @@ static void threshold8(const uint8_t *in, const uint8_t *threshold,
{
for
(
int
y
=
0
;
y
<
h
;
y
++
)
{
for
(
int
x
=
0
;
x
<
w
;
x
++
)
out
[
x
]
=
in
[
x
]
<
threshold
[
x
]
?
min
[
x
]
:
max
[
x
];
out
[
x
]
=
in
[
x
]
<
=
threshold
[
x
]
?
min
[
x
]
:
max
[
x
];
in
+=
ilinesize
;
threshold
+=
tlinesize
;
...
...
@@ -64,7 +64,7 @@ static void threshold16(const uint8_t *iin, const uint8_t *tthreshold,
for
(
int
y
=
0
;
y
<
h
;
y
++
)
{
for
(
int
x
=
0
;
x
<
w
;
x
++
)
out
[
x
]
=
in
[
x
]
<
threshold
[
x
]
?
min
[
x
]
:
max
[
x
];
out
[
x
]
=
in
[
x
]
<
=
threshold
[
x
]
?
min
[
x
]
:
max
[
x
];
in
+=
ilinesize
/
2
;
threshold
+=
tlinesize
/
2
;
...
...
libavfilter/x86/vf_threshold.asm
View file @
00b03331
...
...
@@ -22,15 +22,10 @@
%include
"libavutil/x86/x86util.asm"
SECTION_RODATA
pb_128
:
times
16
db
128
pb_128_0
:
times
8
db
0
,
128
SECTION
.
text
;%1 depth (8 or 16) ; %2 b or w
; %3 constant
%macro
THRESHOLD
3
;%1 depth (8 or 16) ; %2 b or w
%macro
THRESHOLD
2
%if
ARCH_X86_64
cglobal
threshold%1
,
10
,
13
,
5
,
in
,
threshold
,
min
,
max
,
out
,
ilinesize
,
tlinesize
,
flinesize
,
slinesize
,
olinesize
,
w
,
h
,
x
mov
wd
,
dword
wm
...
...
@@ -45,7 +40,6 @@ cglobal threshold%1, 5, 7, 5, in, threshold, min, max, out, w, x
%define
olinesizeq
r9mp
%define
hd
r11mp
%endif
VBROADCASTI128
m4
,
[
%3
]
%if
%1
==
16
add
wq
,
wq
; w *= 2 (16 bits instead of 8)
%endif
...
...
@@ -63,9 +57,8 @@ cglobal threshold%1, 5, 7, 5, in, threshold, min, max, out, w, x
movu
m0
,
[
thresholdq
+
xq
]
movu
m2
,
[
minq
+
xq
]
movu
m3
,
[
maxq
+
xq
]
pxor
m0
,
m4
pxor
m1
,
m4
pcmpgt%2
m0
,
m1
pminu%2
m0
,
m1
pcmpeq%2
m0
,
m1
PBLENDVB
m3
,
m2
,
m0
movu
[
outq
+
xq
]
,
m3
add
xq
,
mmsize
...
...
@@ -82,11 +75,11 @@ RET
%endmacro
INIT_XMM
sse4
THRESHOLD
8
,
b
,
pb_128
THRESHOLD
16
,
w
,
pb_128_0
THRESHOLD
8
,
b
THRESHOLD
16
,
w
%if
HAVE_AVX2_EXTERNAL
INIT_YMM
avx2
THRESHOLD
8
,
b
,
pb_128
THRESHOLD
16
,
w
,
pb_128_0
THRESHOLD
8
,
b
THRESHOLD
16
,
w
%endif
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