On 2/14/16, Timothy Gu <timothyg...@gmail.com> wrote: > For xor mode, 1.8x faster on Haswell. > --- > libavfilter/vf_blend.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/libavfilter/vf_blend.c b/libavfilter/vf_blend.c > index c24013d..599084f 100644 > --- a/libavfilter/vf_blend.c > +++ b/libavfilter/vf_blend.c > @@ -130,6 +130,7 @@ static void blend_copy ## src(const uint8_t *top, > ptrdiff_t top_linesize, \ > } > > COPY(top) > +COPY(bottom) > > #undef COPY > > @@ -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_NEGATION: param->blend = is_16bit ? > blend_negation_16bit : blend_negation_8bit; break; > case BLEND_NORMAL: param->blend = param->opacity == 1 ? > blend_copytop : > + param->opacity == 0 ? > blend_copybottom : > 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_OVERLAY: param->blend = is_16bit ? > blend_overlay_16bit : blend_overlay_8bit; break; > @@ -528,6 +530,10 @@ static int config_output(AVFilterLink *outlink) > if (ARCH_X86) > 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) { > param->expr_str = av_strdup(s->all_expr); > if (!param->expr_str)
lgtm if bitexact for all modes. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel