Commit b02949fa authored by Edward Hervey's avatar Edward Hervey 🤘
Browse files

videomixer: I420 mode: Add fast path for 0.0 and 1.0 alpha

If the source alpha is 0.0, we take nothing.
If the source alpha is 1.0, we overwrite everything.
parent 3c88249d
......@@ -190,6 +190,24 @@ gst_i420_do_blend (guint8 * src, guint8 * dest,
gint dest_width, gdouble src_alpha)
{
int i, j;
/* If it's completely transparent... we just return */
if (G_UNLIKELY (src_alpha == 0.0)) {
GST_INFO ("Fast copy (alpha == 0.0)");
return;
}
/* If it's completely opaque, we do a fast copy */
if (G_UNLIKELY (src_alpha == 1.0)) {
GST_INFO ("Fast copy (alpha == 1.0)");
for (i = 0; i < src_height; i++) {
memcpy (dest, src, src_width);
src += src_stride;
dest += dest_stride;
}
return;
}
for (i = 0; i < src_height; i++) {
for (j = 0; j < src_width; j++) {
*dest = src_alpha * (*src) + (1. - src_alpha) * (*dest);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment