Skip to content

Commit

Permalink
compositor: memcpy() lines directly for alpha formats with SOURCE ope…
Browse files Browse the repository at this point in the history
…rator and alpha=1.0
  • Loading branch information
sdroege committed Jan 8, 2020
1 parent e85b856 commit 1c14720
Showing 1 changed file with 27 additions and 9 deletions.
36 changes: 27 additions & 9 deletions gst/compositor/blend.c
Expand Up @@ -101,17 +101,26 @@ _overlay_loop_##name (guint8 * dest, const guint8 * src, gint src_height, \
s_alpha = MIN (255, s_alpha); \
switch (mode) { \
case COMPOSITOR_BLEND_MODE_SOURCE:\
compositor_orc_source_##name (dest, dest_stride, src, src_stride, \
s_alpha, src_width, src_height); \
break;\
if (s_alpha == 255) { \
guint y; \
for (y = 0; y < src_height; y++) { \
memcpy (dest, src, 4 * src_width); \
dest += dest_stride; \
src += src_stride; \
} \
} else { \
compositor_orc_source_##name (dest, dest_stride, src, src_stride, \
s_alpha, src_width, src_height); \
} \
break;\
case COMPOSITOR_BLEND_MODE_OVER:\
compositor_orc_overlay_##name (dest, dest_stride, src, src_stride, \
s_alpha, src_width, src_height); \
break;\
break;\
case COMPOSITOR_BLEND_MODE_ADD:\
compositor_orc_overlay_##name##_addition (dest, dest_stride, src, src_stride, \
s_alpha, src_width, src_height); \
break;\
break;\
}\
}

Expand All @@ -124,15 +133,24 @@ _blend_loop_##name (guint8 * dest, const guint8 * src, gint src_height, \
s_alpha = MIN (255, s_alpha); \
switch (mode) { \
case COMPOSITOR_BLEND_MODE_SOURCE:\
compositor_orc_source_##name (dest, dest_stride, src, src_stride, \
s_alpha, src_width, src_height); \
break;\
if (s_alpha == 255) { \
guint y; \
for (y = 0; y < src_height; y++) { \
memcpy (dest, src, 4 * src_width); \
dest += dest_stride; \
src += src_stride; \
} \
} else { \
compositor_orc_source_##name (dest, dest_stride, src, src_stride, \
s_alpha, src_width, src_height); \
} \
break;\
case COMPOSITOR_BLEND_MODE_OVER:\
case COMPOSITOR_BLEND_MODE_ADD:\
/* both modes are the same for opaque background */ \
compositor_orc_blend_##name (dest, dest_stride, src, src_stride, \
s_alpha, src_width, src_height); \
break;\
break;\
}\
}

Expand Down

0 comments on commit 1c14720

Please sign in to comment.