History

avfilter/vf_blend: rename addition128 and difference128 to grainmerge and grainextract

Paul B Mahol committed 9 years ago

Commit f8d06891 parent f61e2dc5 files · +24 −22Browse files

Showing the changes to libavfilter (4 of 5 files). Show all

Unified · Split

4 files
  1. libavfilter/blend.h +2 −2
  2. libavfilter/vf_blend.c +10 −8
  3. libavfilter/x86/vf_blend.asm +2 −2
  4. libavfilter/x86/vf_blend_init.c +7 −7
libavfilter/blend.h+2−2
@@ -33,7 +33,7 @@ enum BlendMode { · 32 unmodified lines
33 BLEND_BURN,33 BLEND_BURN,
34 BLEND_DARKEN,34 BLEND_DARKEN,
35 BLEND_DIFFERENCE,35 BLEND_DIFFERENCE,
36 BLEND_DIFFERENCE128,36 BLEND_GRAINEXTRACT,
37 BLEND_DIVIDE,37 BLEND_DIVIDE,
38 BLEND_DODGE,38 BLEND_DODGE,
39 BLEND_EXCLUSION,39 BLEND_EXCLUSION,
@@ -54,7 +54,7 @@ enum BlendMode { · 14 unmodified lines
54 BLEND_HARDMIX,54 BLEND_HARDMIX,
55 BLEND_LINEARLIGHT,55 BLEND_LINEARLIGHT,
56 BLEND_GLOW,56 BLEND_GLOW,
57 BLEND_ADDITION128,57 BLEND_GRAINMERGE,
58 BLEND_MULTIPLY128,58 BLEND_MULTIPLY128,
59 BLEND_HEAT,59 BLEND_HEAT,
60 BLEND_FREEZE,60 BLEND_FREEZE,
libavfilter/vf_blend.c+10−8
@@ -66,13 +66,15 @@ typedef struct ThreadData { · 65 unmodified lines
66 { "c3_mode", "set component #3 blend mode", OFFSET(params[3].mode), AV_OPT_TYPE_INT, {.i64=0}, 0, BLEND_NB-1, FLAGS, "mode"},\66 { "c3_mode", "set component #3 blend mode", OFFSET(params[3].mode), AV_OPT_TYPE_INT, {.i64=0}, 0, BLEND_NB-1, FLAGS, "mode"},\
67 { "all_mode", "set blend mode for all components", OFFSET(all_mode), AV_OPT_TYPE_INT, {.i64=-1},-1, BLEND_NB-1, FLAGS, "mode"},\67 { "all_mode", "set blend mode for all components", OFFSET(all_mode), AV_OPT_TYPE_INT, {.i64=-1},-1, BLEND_NB-1, FLAGS, "mode"},\
68 { "addition", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_ADDITION}, 0, 0, FLAGS, "mode" },\68 { "addition", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_ADDITION}, 0, 0, FLAGS, "mode" },\
69 { "addition128", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_ADDITION128}, 0, 0, FLAGS, "mode" },\69 { "addition128","", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_GRAINMERGE}, 0, 0, FLAGS, "mode" },\
70 { "grainmerge", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_GRAINMERGE}, 0, 0, FLAGS, "mode" },\
70 { "and", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_AND}, 0, 0, FLAGS, "mode" },\71 { "and", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_AND}, 0, 0, FLAGS, "mode" },\
71 { "average", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_AVERAGE}, 0, 0, FLAGS, "mode" },\72 { "average", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_AVERAGE}, 0, 0, FLAGS, "mode" },\
72 { "burn", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_BURN}, 0, 0, FLAGS, "mode" },\73 { "burn", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_BURN}, 0, 0, FLAGS, "mode" },\
73 { "darken", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_DARKEN}, 0, 0, FLAGS, "mode" },\74 { "darken", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_DARKEN}, 0, 0, FLAGS, "mode" },\
74 { "difference", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_DIFFERENCE}, 0, 0, FLAGS, "mode" },\75 { "difference", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_DIFFERENCE}, 0, 0, FLAGS, "mode" },\
75 { "difference128", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_DIFFERENCE128}, 0, 0, FLAGS, "mode" },\76 { "difference128", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_GRAINEXTRACT}, 0, 0, FLAGS, "mode" },\
77 { "grainextract", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_GRAINEXTRACT}, 0, 0, FLAGS, "mode" },\
76 { "divide", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_DIVIDE}, 0, 0, FLAGS, "mode" },\78 { "divide", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_DIVIDE}, 0, 0, FLAGS, "mode" },\
77 { "dodge", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_DODGE}, 0, 0, FLAGS, "mode" },\79 { "dodge", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_DODGE}, 0, 0, FLAGS, "mode" },\
78 { "exclusion", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_EXCLUSION}, 0, 0, FLAGS, "mode" },\80 { "exclusion", "", 0, AV_OPT_TYPE_CONST, {.i64=BLEND_EXCLUSION}, 0, 0, FLAGS, "mode" },\
@@ -236,7 +238,7 @@ static void blend_## name##_16bit(const uint8_t *_top, ptrdiff_t top_linesize, · 157 unmodified lines
236#define DODGE(a, b) (((a) == 255) ? (a) : FFMIN(255, (((b) << 8) / (255 - (a)))))238#define DODGE(a, b) (((a) == 255) ? (a) : FFMIN(255, (((b) << 8) / (255 - (a)))))
237 239
238DEFINE_BLEND8(addition, FFMIN(255, A + B))240DEFINE_BLEND8(addition, FFMIN(255, A + B))
239DEFINE_BLEND8(addition128, av_clip_uint8(A + B - 128))241DEFINE_BLEND8(grainmerge, av_clip_uint8(A + B - 128))
240DEFINE_BLEND8(average, (A + B) / 2)242DEFINE_BLEND8(average, (A + B) / 2)
241DEFINE_BLEND8(subtract, FFMAX(0, A - B))243DEFINE_BLEND8(subtract, FFMAX(0, A - B))
242DEFINE_BLEND8(multiply, MULTIPLY(1, A, B))244DEFINE_BLEND8(multiply, MULTIPLY(1, A, B))
@@ -244,7 +246,7 @@ DEFINE_BLEND8(multiply128,av_clip_uint8((A - 128) * B / 32. + 128)) · 1 unmodified line
244DEFINE_BLEND8(negation, 255 - FFABS(255 - A - B))246DEFINE_BLEND8(negation, 255 - FFABS(255 - A - B))
245DEFINE_BLEND8(extremity, FFABS(255 - A - B))247DEFINE_BLEND8(extremity, FFABS(255 - A - B))
246DEFINE_BLEND8(difference, FFABS(A - B))248DEFINE_BLEND8(difference, FFABS(A - B))
247DEFINE_BLEND8(difference128, av_clip_uint8(128 + A - B))249DEFINE_BLEND8(grainextract, av_clip_uint8(128 + A - B))
248DEFINE_BLEND8(screen, SCREEN(1, A, B))250DEFINE_BLEND8(screen, SCREEN(1, A, B))
249DEFINE_BLEND8(overlay, (A < 128) ? MULTIPLY(2, A, B) : SCREEN(2, A, B))251DEFINE_BLEND8(overlay, (A < 128) ? MULTIPLY(2, A, B) : SCREEN(2, A, B))
250DEFINE_BLEND8(hardlight, (B < 128) ? MULTIPLY(2, B, A) : SCREEN(2, B, A))252DEFINE_BLEND8(hardlight, (B < 128) ? MULTIPLY(2, B, A) : SCREEN(2, B, A))
@@ -279,7 +281,7 @@ DEFINE_BLEND8(linearlight,av_clip_uint8((B < 128) ? B + 2 * A - 255 : B + 2 * (A · 28 unmodified lines
279#define DODGE(a, b) (((a) == 65535) ? (a) : FFMIN(65535, (((b) << 16) / (65535 - (a)))))281#define DODGE(a, b) (((a) == 65535) ? (a) : FFMIN(65535, (((b) << 16) / (65535 - (a)))))
280 282
281DEFINE_BLEND16(addition, FFMIN(65535, A + B))283DEFINE_BLEND16(addition, FFMIN(65535, A + B))
282DEFINE_BLEND16(addition128, av_clip_uint16(A + B - 32768))284DEFINE_BLEND16(grainmerge, av_clip_uint16(A + B - 32768))
283DEFINE_BLEND16(average, (A + B) / 2)285DEFINE_BLEND16(average, (A + B) / 2)
284DEFINE_BLEND16(subtract, FFMAX(0, A - B))286DEFINE_BLEND16(subtract, FFMAX(0, A - B))
285DEFINE_BLEND16(multiply, MULTIPLY(1, A, B))287DEFINE_BLEND16(multiply, MULTIPLY(1, A, B))
@@ -287,7 +289,7 @@ DEFINE_BLEND16(multiply128, av_clip_uint16((A - 32768) * B / 8192. + 32768)) · 1 unmodified line
287DEFINE_BLEND16(negation, 65535 - FFABS(65535 - A - B))289DEFINE_BLEND16(negation, 65535 - FFABS(65535 - A - B))
288DEFINE_BLEND16(extremity, FFABS(65535 - A - B))290DEFINE_BLEND16(extremity, FFABS(65535 - A - B))
289DEFINE_BLEND16(difference, FFABS(A - B))291DEFINE_BLEND16(difference, FFABS(A - B))
290DEFINE_BLEND16(difference128, av_clip_uint16(32768 + A - B))292DEFINE_BLEND16(grainextract, av_clip_uint16(32768 + A - B))
291DEFINE_BLEND16(screen, SCREEN(1, A, B))293DEFINE_BLEND16(screen, SCREEN(1, A, B))
292DEFINE_BLEND16(overlay, (A < 32768) ? MULTIPLY(2, A, B) : SCREEN(2, A, B))294DEFINE_BLEND16(overlay, (A < 32768) ? MULTIPLY(2, A, B) : SCREEN(2, A, B))
293DEFINE_BLEND16(hardlight, (B < 32768) ? MULTIPLY(2, B, A) : SCREEN(2, B, A))295DEFINE_BLEND16(hardlight, (B < 32768) ? MULTIPLY(2, B, A) : SCREEN(2, B, A))
@@ -450,13 +452,13 @@ void ff_blend_init(FilterParams *param, int is_16bit) · 156 unmodified lines
450{452{
451 switch (param->mode) {453 switch (param->mode) {
452 case BLEND_ADDITION: param->blend = is_16bit ? blend_addition_16bit : blend_addition_8bit; break;454 case BLEND_ADDITION: param->blend = is_16bit ? blend_addition_16bit : blend_addition_8bit; break;
453 case BLEND_ADDITION128: param->blend = is_16bit ? blend_addition128_16bit : blend_addition128_8bit; break;455 case BLEND_GRAINMERGE: param->blend = is_16bit ? blend_grainmerge_16bit : blend_grainmerge_8bit; break;
454 case BLEND_AND: param->blend = is_16bit ? blend_and_16bit : blend_and_8bit; break;456 case BLEND_AND: param->blend = is_16bit ? blend_and_16bit : blend_and_8bit; break;
455 case BLEND_AVERAGE: param->blend = is_16bit ? blend_average_16bit : blend_average_8bit; break;457 case BLEND_AVERAGE: param->blend = is_16bit ? blend_average_16bit : blend_average_8bit; break;
456 case BLEND_BURN: param->blend = is_16bit ? blend_burn_16bit : blend_burn_8bit; break;458 case BLEND_BURN: param->blend = is_16bit ? blend_burn_16bit : blend_burn_8bit; break;
457 case BLEND_DARKEN: param->blend = is_16bit ? blend_darken_16bit : blend_darken_8bit; break;459 case BLEND_DARKEN: param->blend = is_16bit ? blend_darken_16bit : blend_darken_8bit; break;
458 case BLEND_DIFFERENCE: param->blend = is_16bit ? blend_difference_16bit : blend_difference_8bit; break;460 case BLEND_DIFFERENCE: param->blend = is_16bit ? blend_difference_16bit : blend_difference_8bit; break;
459 case BLEND_DIFFERENCE128: param->blend = is_16bit ? blend_difference128_16bit: blend_difference128_8bit; break;461 case BLEND_GRAINEXTRACT: param->blend = is_16bit ? blend_grainextract_16bit: blend_grainextract_8bit; break;
460 case BLEND_DIVIDE: param->blend = is_16bit ? blend_divide_16bit : blend_divide_8bit; break;462 case BLEND_DIVIDE: param->blend = is_16bit ? blend_divide_16bit : blend_divide_8bit; break;
461 case BLEND_DODGE: param->blend = is_16bit ? blend_dodge_16bit : blend_dodge_8bit; break;463 case BLEND_DODGE: param->blend = is_16bit ? blend_dodge_16bit : blend_dodge_8bit; break;
462 case BLEND_EXCLUSION: param->blend = is_16bit ? blend_exclusion_16bit : blend_exclusion_8bit; break;464 case BLEND_EXCLUSION: param->blend = is_16bit ? blend_exclusion_16bit : blend_exclusion_8bit; break;
libavfilter/x86/vf_blend.asm+2−2
@@ -83,7 +83,7 @@ BLEND_SIMPLE subtract, subusb · 82 unmodified lines
83BLEND_SIMPLE darken, minub83BLEND_SIMPLE darken, minub
84BLEND_SIMPLE lighten, maxub84BLEND_SIMPLE lighten, maxub
85 85
86BLEND_INIT difference128, 486BLEND_INIT grainextract, 4
87 pxor m2, m287 pxor m2, m2
88 mova m3, [pw_128]88 mova m3, [pw_128]
89.nextrow:89.nextrow:
@@ -181,7 +181,7 @@ BLEND_INIT average, 3 · 91 unmodified lines
181 jl .loop181 jl .loop
182BLEND_END182BLEND_END
183 183
184BLEND_INIT addition128, 4184BLEND_INIT grainmerge, 4
185 pxor m2, m2185 pxor m2, m2
186 mova m3, [pw_128]186 mova m3, [pw_128]
187.nextrow:187.nextrow:
libavfilter/x86/vf_blend_init.c+7−7
@@ -31,11 +31,11 @@ void ff_blend_##name##_##opt(const uint8_t *top, ptrdiff_t top_linesize, \ · 30 unmodified lines
31 struct FilterParams *param, double *values, int starty);31 struct FilterParams *param, double *values, int starty);
32 32
33BLEND_FUNC(addition, sse2)33BLEND_FUNC(addition, sse2)
34BLEND_FUNC(addition128, sse2)34BLEND_FUNC(grainmerge, sse2)
35BLEND_FUNC(average, sse2)35BLEND_FUNC(average, sse2)
36BLEND_FUNC(and, sse2)36BLEND_FUNC(and, sse2)
37BLEND_FUNC(darken, sse2)37BLEND_FUNC(darken, sse2)
38BLEND_FUNC(difference128, sse2)38BLEND_FUNC(grainextract, sse2)
39BLEND_FUNC(multiply, sse2)39BLEND_FUNC(multiply, sse2)
40BLEND_FUNC(screen, sse2)40BLEND_FUNC(screen, sse2)
41BLEND_FUNC(hardmix, sse2)41BLEND_FUNC(hardmix, sse2)
@@ -59,29 +59,29 @@ av_cold void ff_blend_init_x86(FilterParams *param, int is_16bit) · 17 unmodified lines
59 if (EXTERNAL_SSE2(cpu_flags) && param->opacity == 1 && !is_16bit) {59 if (EXTERNAL_SSE2(cpu_flags) && param->opacity == 1 && !is_16bit) {
60 switch (param->mode) {60 switch (param->mode) {
61 case BLEND_ADDITION: param->blend = ff_blend_addition_sse2; break;61 case BLEND_ADDITION: param->blend = ff_blend_addition_sse2; break;
62 case BLEND_ADDITION128: param->blend = ff_blend_addition128_sse2; break;62 case BLEND_GRAINMERGE: param->blend = ff_blend_grainmerge_sse2; break;
63 case BLEND_AND: param->blend = ff_blend_and_sse2; break;63 case BLEND_AND: param->blend = ff_blend_and_sse2; break;
64 case BLEND_AVERAGE: param->blend = ff_blend_average_sse2; break;64 case BLEND_AVERAGE: param->blend = ff_blend_average_sse2; break;
65 case BLEND_DARKEN: param->blend = ff_blend_darken_sse2; break;65 case BLEND_DARKEN: param->blend = ff_blend_darken_sse2; break;
66 case BLEND_DIFFERENCE128: param->blend = ff_blend_difference128_sse2; break;66 case BLEND_GRAINEXTRACT: param->blend = ff_blend_grainextract_sse2; break;
67 case BLEND_DIVIDE: param->blend = ff_blend_divide_sse2; break;67 case BLEND_DIVIDE: param->blend = ff_blend_divide_sse2; break;
68 case BLEND_HARDMIX: param->blend = ff_blend_hardmix_sse2; break;68 case BLEND_HARDMIX: param->blend = ff_blend_hardmix_sse2; break;
69 case BLEND_LIGHTEN: param->blend = ff_blend_lighten_sse2; break;69 case BLEND_LIGHTEN: param->blend = ff_blend_lighten_sse2; break;
70 case BLEND_MULTIPLY: param->blend = ff_blend_multiply_sse2; break;70 case BLEND_MULTIPLY: param->blend = ff_blend_multiply_sse2; break;
71 case BLEND_OR: param->blend = ff_blend_or_sse2; break;71 case BLEND_OR: param->blend = ff_blend_or_sse2; break;
72 case BLEND_PHOENIX: param->blend = ff_blend_phoenix_sse2; break;72 case BLEND_PHOENIX: param->blend = ff_blend_phoenix_sse2; break;
73 case BLEND_SCREEN: param->blend = ff_blend_screen_sse2; break;73 case BLEND_SCREEN: param->blend = ff_blend_screen_sse2; break;
74 case BLEND_SUBTRACT: param->blend = ff_blend_subtract_sse2; break;74 case BLEND_SUBTRACT: param->blend = ff_blend_subtract_sse2; break;
75 case BLEND_XOR: param->blend = ff_blend_xor_sse2; break;75 case BLEND_XOR: param->blend = ff_blend_xor_sse2; break;
76 case BLEND_DIFFERENCE: param->blend = ff_blend_difference_sse2; break;76 case BLEND_DIFFERENCE: param->blend = ff_blend_difference_sse2; break;
77 case BLEND_EXTREMITY: param->blend = ff_blend_extremity_sse2; break;77 case BLEND_EXTREMITY: param->blend = ff_blend_extremity_sse2; break;
78 case BLEND_NEGATION: param->blend = ff_blend_negation_sse2; break;78 case BLEND_NEGATION: param->blend = ff_blend_negation_sse2; break;
79 }79 }
80 }80 }
81 if (EXTERNAL_SSSE3(cpu_flags) && param->opacity == 1 && !is_16bit) {81 if (EXTERNAL_SSSE3(cpu_flags) && param->opacity == 1 && !is_16bit) {
82 switch (param->mode) {82 switch (param->mode) {
83 case BLEND_DIFFERENCE: param->blend = ff_blend_difference_ssse3; break;83 case BLEND_DIFFERENCE: param->blend = ff_blend_difference_ssse3; break;
84 case BLEND_EXTREMITY: param->blend = ff_blend_extremity_ssse3; break;84 case BLEND_EXTREMITY: param->blend = ff_blend_extremity_ssse3; break;
85 case BLEND_NEGATION: param->blend = ff_blend_negation_ssse3; break;85 case BLEND_NEGATION: param->blend = ff_blend_negation_ssse3; break;
86 }86 }
87 }87 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t