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
ee281b88
Commit
ee281b88
authored
Feb 13, 2016
by
Timothy Gu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vf_blend: Use memcpy when opacity is 0
For xor mode, 1.8x faster on Haswell.
parent
ba25936d
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
0 deletions
+6
-0
vf_blend.c
libavfilter/vf_blend.c
+6
-0
No files found.
libavfilter/vf_blend.c
View file @
ee281b88
...
@@ -130,6 +130,7 @@ static void blend_copy ## src(const uint8_t *top, ptrdiff_t top_linesize, \
...
@@ -130,6 +130,7 @@ static void blend_copy ## src(const uint8_t *top, ptrdiff_t top_linesize, \
}
}
COPY
(
top
)
COPY
(
top
)
COPY
(
bottom
)
#undef COPY
#undef COPY
...
@@ -512,6 +513,7 @@ static int config_output(AVFilterLink *outlink)
...
@@ -512,6 +513,7 @@ static int config_output(AVFilterLink *outlink)
case
BLEND_MULTIPLY128
:
param
->
blend
=
is_16bit
?
blend_multiply128_16bit
:
blend_multiply128_8bit
;
break
;
case
BLEND_MULTIPLY128
:
param
->
blend
=
is_16bit
?
blend_multiply128_16bit
:
blend_multiply128_8bit
;
break
;
case
BLEND_NEGATION
:
param
->
blend
=
is_16bit
?
blend_negation_16bit
:
blend_negation_8bit
;
break
;
case
BLEND_NEGATION
:
param
->
blend
=
is_16bit
?
blend_negation_16bit
:
blend_negation_8bit
;
break
;
case
BLEND_NORMAL
:
param
->
blend
=
param
->
opacity
==
1
?
blend_copytop
:
case
BLEND_NORMAL
:
param
->
blend
=
param
->
opacity
==
1
?
blend_copytop
:
param
->
opacity
==
0
?
blend_copybottom
:
is_16bit
?
blend_normal_16bit
:
blend_normal_8bit
;
break
;
is_16bit
?
blend_normal_16bit
:
blend_normal_8bit
;
break
;
case
BLEND_OR
:
param
->
blend
=
is_16bit
?
blend_or_16bit
:
blend_or_8bit
;
break
;
case
BLEND_OR
:
param
->
blend
=
is_16bit
?
blend_or_16bit
:
blend_or_8bit
;
break
;
case
BLEND_OVERLAY
:
param
->
blend
=
is_16bit
?
blend_overlay_16bit
:
blend_overlay_8bit
;
break
;
case
BLEND_OVERLAY
:
param
->
blend
=
is_16bit
?
blend_overlay_16bit
:
blend_overlay_8bit
;
break
;
...
@@ -528,6 +530,10 @@ static int config_output(AVFilterLink *outlink)
...
@@ -528,6 +530,10 @@ static int config_output(AVFilterLink *outlink)
if
(
ARCH_X86
)
if
(
ARCH_X86
)
ff_blend_init_x86
(
param
,
is_16bit
);
ff_blend_init_x86
(
param
,
is_16bit
);
if
(
param
->
opacity
==
0
&&
param
->
mode
!=
BLEND_NORMAL
)
{
param
->
blend
=
blend_copytop
;
}
if
(
s
->
all_expr
&&
!
param
->
expr_str
)
{
if
(
s
->
all_expr
&&
!
param
->
expr_str
)
{
param
->
expr_str
=
av_strdup
(
s
->
all_expr
);
param
->
expr_str
=
av_strdup
(
s
->
all_expr
);
if
(
!
param
->
expr_str
)
if
(
!
param
->
expr_str
)
...
...
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