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
c9c1711f
Commit
c9c1711f
authored
Jun 11, 2019
by
Limin Wang
Committed by
Paul B Mahol
Jun 14, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
libavfilter/vf_blend.c: remove duplicate code with macro-defined function
Signed-off-by:
Limin Wang
<
lance.lmwang@gmail.com
>
parent
24321b87
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
48 additions
and
140 deletions
+48
-140
vf_blend.c
libavfilter/vf_blend.c
+48
-140
No files found.
libavfilter/vf_blend.c
View file @
c9c1711f
...
@@ -555,156 +555,64 @@ static av_cold void uninit(AVFilterContext *ctx)
...
@@ -555,156 +555,64 @@ static av_cold void uninit(AVFilterContext *ctx)
av_expr_free
(
s
->
params
[
i
].
e
);
av_expr_free
(
s
->
params
[
i
].
e
);
}
}
#define DEFINE_INIT_BLEND_FUNC(depth, nbits) \
static av_cold void init_blend_func_##depth##_##nbits##bit(FilterParams *param) \
{ \
switch (param->mode) { \
case BLEND_ADDITION: param->blend = blend_addition_##depth##bit; break; \
case BLEND_GRAINMERGE: param->blend = blend_grainmerge_##depth##bit; break; \
case BLEND_AND: param->blend = blend_and_##depth##bit; break; \
case BLEND_AVERAGE: param->blend = blend_average_##depth##bit; break; \
case BLEND_BURN: param->blend = blend_burn_##depth##bit; break; \
case BLEND_DARKEN: param->blend = blend_darken_##depth##bit; break; \
case BLEND_DIFFERENCE: param->blend = blend_difference_##depth##bit; break; \
case BLEND_GRAINEXTRACT: param->blend = blend_grainextract_##depth##bit; break; \
case BLEND_DIVIDE: param->blend = blend_divide_##depth##bit; break; \
case BLEND_DODGE: param->blend = blend_dodge_##depth##bit; break; \
case BLEND_EXCLUSION: param->blend = blend_exclusion_##depth##bit; break; \
case BLEND_EXTREMITY: param->blend = blend_extremity_##depth##bit; break; \
case BLEND_FREEZE: param->blend = blend_freeze_##depth##bit; break; \
case BLEND_GLOW: param->blend = blend_glow_##depth##bit; break; \
case BLEND_HARDLIGHT: param->blend = blend_hardlight_##depth##bit; break; \
case BLEND_HARDMIX: param->blend = blend_hardmix_##depth##bit; break; \
case BLEND_HEAT: param->blend = blend_heat_##depth##bit; break; \
case BLEND_LIGHTEN: param->blend = blend_lighten_##depth##bit; break; \
case BLEND_LINEARLIGHT:param->blend = blend_linearlight_##depth##bit;break; \
case BLEND_MULTIPLY: param->blend = blend_multiply_##depth##bit; break; \
case BLEND_MULTIPLY128:param->blend = blend_multiply128_##depth##bit;break; \
case BLEND_NEGATION: param->blend = blend_negation_##depth##bit; break; \
case BLEND_NORMAL: param->blend = blend_normal_##nbits##bit; break; \
case BLEND_OR: param->blend = blend_or_##depth##bit; break; \
case BLEND_OVERLAY: param->blend = blend_overlay_##depth##bit; break; \
case BLEND_PHOENIX: param->blend = blend_phoenix_##depth##bit; break; \
case BLEND_PINLIGHT: param->blend = blend_pinlight_##depth##bit; break; \
case BLEND_REFLECT: param->blend = blend_reflect_##depth##bit; break; \
case BLEND_SCREEN: param->blend = blend_screen_##depth##bit; break; \
case BLEND_SOFTLIGHT: param->blend = blend_softlight_##depth##bit; break; \
case BLEND_SUBTRACT: param->blend = blend_subtract_##depth##bit; break; \
case BLEND_VIVIDLIGHT: param->blend = blend_vividlight_##depth##bit; break; \
case BLEND_XOR: param->blend = blend_xor_##depth##bit; break; \
} \
}
DEFINE_INIT_BLEND_FUNC
(
8
,
8
);
DEFINE_INIT_BLEND_FUNC
(
10
,
16
);
DEFINE_INIT_BLEND_FUNC
(
12
,
16
);
DEFINE_INIT_BLEND_FUNC
(
16
,
16
);
void
ff_blend_init
(
FilterParams
*
param
,
int
depth
)
void
ff_blend_init
(
FilterParams
*
param
,
int
depth
)
{
{
switch
(
depth
)
{
switch
(
depth
)
{
case
8
:
case
8
:
switch
(
param
->
mode
)
{
init_blend_func_8_8bit
(
param
);
case
BLEND_ADDITION
:
param
->
blend
=
blend_addition_8bit
;
break
;
case
BLEND_GRAINMERGE
:
param
->
blend
=
blend_grainmerge_8bit
;
break
;
case
BLEND_AND
:
param
->
blend
=
blend_and_8bit
;
break
;
case
BLEND_AVERAGE
:
param
->
blend
=
blend_average_8bit
;
break
;
case
BLEND_BURN
:
param
->
blend
=
blend_burn_8bit
;
break
;
case
BLEND_DARKEN
:
param
->
blend
=
blend_darken_8bit
;
break
;
case
BLEND_DIFFERENCE
:
param
->
blend
=
blend_difference_8bit
;
break
;
case
BLEND_GRAINEXTRACT
:
param
->
blend
=
blend_grainextract_8bit
;
break
;
case
BLEND_DIVIDE
:
param
->
blend
=
blend_divide_8bit
;
break
;
case
BLEND_DODGE
:
param
->
blend
=
blend_dodge_8bit
;
break
;
case
BLEND_EXCLUSION
:
param
->
blend
=
blend_exclusion_8bit
;
break
;
case
BLEND_EXTREMITY
:
param
->
blend
=
blend_extremity_8bit
;
break
;
case
BLEND_FREEZE
:
param
->
blend
=
blend_freeze_8bit
;
break
;
case
BLEND_GLOW
:
param
->
blend
=
blend_glow_8bit
;
break
;
case
BLEND_HARDLIGHT
:
param
->
blend
=
blend_hardlight_8bit
;
break
;
case
BLEND_HARDMIX
:
param
->
blend
=
blend_hardmix_8bit
;
break
;
case
BLEND_HEAT
:
param
->
blend
=
blend_heat_8bit
;
break
;
case
BLEND_LIGHTEN
:
param
->
blend
=
blend_lighten_8bit
;
break
;
case
BLEND_LINEARLIGHT
:
param
->
blend
=
blend_linearlight_8bit
;
break
;
case
BLEND_MULTIPLY
:
param
->
blend
=
blend_multiply_8bit
;
break
;
case
BLEND_MULTIPLY128
:
param
->
blend
=
blend_multiply128_8bit
;
break
;
case
BLEND_NEGATION
:
param
->
blend
=
blend_negation_8bit
;
break
;
case
BLEND_NORMAL
:
param
->
blend
=
blend_normal_8bit
;
break
;
case
BLEND_OR
:
param
->
blend
=
blend_or_8bit
;
break
;
case
BLEND_OVERLAY
:
param
->
blend
=
blend_overlay_8bit
;
break
;
case
BLEND_PHOENIX
:
param
->
blend
=
blend_phoenix_8bit
;
break
;
case
BLEND_PINLIGHT
:
param
->
blend
=
blend_pinlight_8bit
;
break
;
case
BLEND_REFLECT
:
param
->
blend
=
blend_reflect_8bit
;
break
;
case
BLEND_SCREEN
:
param
->
blend
=
blend_screen_8bit
;
break
;
case
BLEND_SOFTLIGHT
:
param
->
blend
=
blend_softlight_8bit
;
break
;
case
BLEND_SUBTRACT
:
param
->
blend
=
blend_subtract_8bit
;
break
;
case
BLEND_VIVIDLIGHT
:
param
->
blend
=
blend_vividlight_8bit
;
break
;
case
BLEND_XOR
:
param
->
blend
=
blend_xor_8bit
;
break
;
}
break
;
break
;
case
10
:
case
10
:
switch
(
param
->
mode
)
{
init_blend_func_10_16bit
(
param
);
case
BLEND_ADDITION
:
param
->
blend
=
blend_addition_10bit
;
break
;
case
BLEND_GRAINMERGE
:
param
->
blend
=
blend_grainmerge_10bit
;
break
;
case
BLEND_AND
:
param
->
blend
=
blend_and_10bit
;
break
;
case
BLEND_AVERAGE
:
param
->
blend
=
blend_average_10bit
;
break
;
case
BLEND_BURN
:
param
->
blend
=
blend_burn_10bit
;
break
;
case
BLEND_DARKEN
:
param
->
blend
=
blend_darken_10bit
;
break
;
case
BLEND_DIFFERENCE
:
param
->
blend
=
blend_difference_10bit
;
break
;
case
BLEND_GRAINEXTRACT
:
param
->
blend
=
blend_grainextract_10bit
;
break
;
case
BLEND_DIVIDE
:
param
->
blend
=
blend_divide_10bit
;
break
;
case
BLEND_DODGE
:
param
->
blend
=
blend_dodge_10bit
;
break
;
case
BLEND_EXCLUSION
:
param
->
blend
=
blend_exclusion_10bit
;
break
;
case
BLEND_EXTREMITY
:
param
->
blend
=
blend_extremity_10bit
;
break
;
case
BLEND_FREEZE
:
param
->
blend
=
blend_freeze_10bit
;
break
;
case
BLEND_GLOW
:
param
->
blend
=
blend_glow_10bit
;
break
;
case
BLEND_HARDLIGHT
:
param
->
blend
=
blend_hardlight_10bit
;
break
;
case
BLEND_HARDMIX
:
param
->
blend
=
blend_hardmix_10bit
;
break
;
case
BLEND_HEAT
:
param
->
blend
=
blend_heat_10bit
;
break
;
case
BLEND_LIGHTEN
:
param
->
blend
=
blend_lighten_10bit
;
break
;
case
BLEND_LINEARLIGHT
:
param
->
blend
=
blend_linearlight_10bit
;
break
;
case
BLEND_MULTIPLY
:
param
->
blend
=
blend_multiply_10bit
;
break
;
case
BLEND_MULTIPLY128
:
param
->
blend
=
blend_multiply128_10bit
;
break
;
case
BLEND_NEGATION
:
param
->
blend
=
blend_negation_10bit
;
break
;
case
BLEND_NORMAL
:
param
->
blend
=
blend_normal_16bit
;
break
;
case
BLEND_OR
:
param
->
blend
=
blend_or_10bit
;
break
;
case
BLEND_OVERLAY
:
param
->
blend
=
blend_overlay_10bit
;
break
;
case
BLEND_PHOENIX
:
param
->
blend
=
blend_phoenix_10bit
;
break
;
case
BLEND_PINLIGHT
:
param
->
blend
=
blend_pinlight_10bit
;
break
;
case
BLEND_REFLECT
:
param
->
blend
=
blend_reflect_10bit
;
break
;
case
BLEND_SCREEN
:
param
->
blend
=
blend_screen_10bit
;
break
;
case
BLEND_SOFTLIGHT
:
param
->
blend
=
blend_softlight_10bit
;
break
;
case
BLEND_SUBTRACT
:
param
->
blend
=
blend_subtract_10bit
;
break
;
case
BLEND_VIVIDLIGHT
:
param
->
blend
=
blend_vividlight_10bit
;
break
;
case
BLEND_XOR
:
param
->
blend
=
blend_xor_10bit
;
break
;
}
break
;
break
;
case
12
:
case
12
:
switch
(
param
->
mode
)
{
init_blend_func_12_16bit
(
param
);
case
BLEND_ADDITION
:
param
->
blend
=
blend_addition_12bit
;
break
;
case
BLEND_GRAINMERGE
:
param
->
blend
=
blend_grainmerge_12bit
;
break
;
case
BLEND_AND
:
param
->
blend
=
blend_and_12bit
;
break
;
case
BLEND_AVERAGE
:
param
->
blend
=
blend_average_12bit
;
break
;
case
BLEND_BURN
:
param
->
blend
=
blend_burn_12bit
;
break
;
case
BLEND_DARKEN
:
param
->
blend
=
blend_darken_12bit
;
break
;
case
BLEND_DIFFERENCE
:
param
->
blend
=
blend_difference_12bit
;
break
;
case
BLEND_GRAINEXTRACT
:
param
->
blend
=
blend_grainextract_12bit
;
break
;
case
BLEND_DIVIDE
:
param
->
blend
=
blend_divide_12bit
;
break
;
case
BLEND_DODGE
:
param
->
blend
=
blend_dodge_12bit
;
break
;
case
BLEND_EXCLUSION
:
param
->
blend
=
blend_exclusion_12bit
;
break
;
case
BLEND_EXTREMITY
:
param
->
blend
=
blend_extremity_12bit
;
break
;
case
BLEND_FREEZE
:
param
->
blend
=
blend_freeze_12bit
;
break
;
case
BLEND_GLOW
:
param
->
blend
=
blend_glow_12bit
;
break
;
case
BLEND_HARDLIGHT
:
param
->
blend
=
blend_hardlight_12bit
;
break
;
case
BLEND_HARDMIX
:
param
->
blend
=
blend_hardmix_12bit
;
break
;
case
BLEND_HEAT
:
param
->
blend
=
blend_heat_12bit
;
break
;
case
BLEND_LIGHTEN
:
param
->
blend
=
blend_lighten_12bit
;
break
;
case
BLEND_LINEARLIGHT
:
param
->
blend
=
blend_linearlight_12bit
;
break
;
case
BLEND_MULTIPLY
:
param
->
blend
=
blend_multiply_12bit
;
break
;
case
BLEND_MULTIPLY128
:
param
->
blend
=
blend_multiply128_12bit
;
break
;
case
BLEND_NEGATION
:
param
->
blend
=
blend_negation_12bit
;
break
;
case
BLEND_NORMAL
:
param
->
blend
=
blend_normal_16bit
;
break
;
case
BLEND_OR
:
param
->
blend
=
blend_or_12bit
;
break
;
case
BLEND_OVERLAY
:
param
->
blend
=
blend_overlay_12bit
;
break
;
case
BLEND_PHOENIX
:
param
->
blend
=
blend_phoenix_12bit
;
break
;
case
BLEND_PINLIGHT
:
param
->
blend
=
blend_pinlight_12bit
;
break
;
case
BLEND_REFLECT
:
param
->
blend
=
blend_reflect_12bit
;
break
;
case
BLEND_SCREEN
:
param
->
blend
=
blend_screen_12bit
;
break
;
case
BLEND_SOFTLIGHT
:
param
->
blend
=
blend_softlight_12bit
;
break
;
case
BLEND_SUBTRACT
:
param
->
blend
=
blend_subtract_12bit
;
break
;
case
BLEND_VIVIDLIGHT
:
param
->
blend
=
blend_vividlight_12bit
;
break
;
case
BLEND_XOR
:
param
->
blend
=
blend_xor_12bit
;
break
;
}
break
;
break
;
case
16
:
case
16
:
switch
(
param
->
mode
)
{
init_blend_func_16_16bit
(
param
);
case
BLEND_ADDITION
:
param
->
blend
=
blend_addition_16bit
;
break
;
case
BLEND_GRAINMERGE
:
param
->
blend
=
blend_grainmerge_16bit
;
break
;
case
BLEND_AND
:
param
->
blend
=
blend_and_16bit
;
break
;
case
BLEND_AVERAGE
:
param
->
blend
=
blend_average_16bit
;
break
;
case
BLEND_BURN
:
param
->
blend
=
blend_burn_16bit
;
break
;
case
BLEND_DARKEN
:
param
->
blend
=
blend_darken_16bit
;
break
;
case
BLEND_DIFFERENCE
:
param
->
blend
=
blend_difference_16bit
;
break
;
case
BLEND_GRAINEXTRACT
:
param
->
blend
=
blend_grainextract_16bit
;
break
;
case
BLEND_DIVIDE
:
param
->
blend
=
blend_divide_16bit
;
break
;
case
BLEND_DODGE
:
param
->
blend
=
blend_dodge_16bit
;
break
;
case
BLEND_EXCLUSION
:
param
->
blend
=
blend_exclusion_16bit
;
break
;
case
BLEND_EXTREMITY
:
param
->
blend
=
blend_extremity_16bit
;
break
;
case
BLEND_FREEZE
:
param
->
blend
=
blend_freeze_16bit
;
break
;
case
BLEND_GLOW
:
param
->
blend
=
blend_glow_16bit
;
break
;
case
BLEND_HARDLIGHT
:
param
->
blend
=
blend_hardlight_16bit
;
break
;
case
BLEND_HARDMIX
:
param
->
blend
=
blend_hardmix_16bit
;
break
;
case
BLEND_HEAT
:
param
->
blend
=
blend_heat_16bit
;
break
;
case
BLEND_LIGHTEN
:
param
->
blend
=
blend_lighten_16bit
;
break
;
case
BLEND_LINEARLIGHT
:
param
->
blend
=
blend_linearlight_16bit
;
break
;
case
BLEND_MULTIPLY
:
param
->
blend
=
blend_multiply_16bit
;
break
;
case
BLEND_MULTIPLY128
:
param
->
blend
=
blend_multiply128_16bit
;
break
;
case
BLEND_NEGATION
:
param
->
blend
=
blend_negation_16bit
;
break
;
case
BLEND_NORMAL
:
param
->
blend
=
blend_normal_16bit
;
break
;
case
BLEND_OR
:
param
->
blend
=
blend_or_16bit
;
break
;
case
BLEND_OVERLAY
:
param
->
blend
=
blend_overlay_16bit
;
break
;
case
BLEND_PHOENIX
:
param
->
blend
=
blend_phoenix_16bit
;
break
;
case
BLEND_PINLIGHT
:
param
->
blend
=
blend_pinlight_16bit
;
break
;
case
BLEND_REFLECT
:
param
->
blend
=
blend_reflect_16bit
;
break
;
case
BLEND_SCREEN
:
param
->
blend
=
blend_screen_16bit
;
break
;
case
BLEND_SOFTLIGHT
:
param
->
blend
=
blend_softlight_16bit
;
break
;
case
BLEND_SUBTRACT
:
param
->
blend
=
blend_subtract_16bit
;
break
;
case
BLEND_VIVIDLIGHT
:
param
->
blend
=
blend_vividlight_16bit
;
break
;
case
BLEND_XOR
:
param
->
blend
=
blend_xor_16bit
;
break
;
}
break
;
break
;
}
}
...
...
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