mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-28 20:05:38 +00:00
videomixer: scale and clamp
Scale and clamp to the max alpha values.
This commit is contained in:
parent
0620797a18
commit
4f9ded7742
4 changed files with 9 additions and 9 deletions
|
@ -185,7 +185,7 @@ gst_videomixer_blend_ayuv_ayuv (guint8 * src, gint xpos, gint ypos,
|
|||
gint src_width, gint src_height, gdouble src_alpha,
|
||||
guint8 * dest, gint dest_width, gint dest_height)
|
||||
{
|
||||
gint alpha, b_alpha;
|
||||
gint alpha, s_alpha;
|
||||
gint i, j;
|
||||
gint src_stride, dest_stride;
|
||||
gint src_add, dest_add;
|
||||
|
@ -194,7 +194,7 @@ gst_videomixer_blend_ayuv_ayuv (guint8 * src, gint xpos, gint ypos,
|
|||
src_stride = src_width * 4;
|
||||
dest_stride = dest_width * 4;
|
||||
|
||||
b_alpha = (gint) (src_alpha * 255);
|
||||
s_alpha = CLAMP ((gint) (src_alpha * 256), 0, 256);
|
||||
|
||||
/* adjust src pointers for negative sizes */
|
||||
if (xpos < 0) {
|
||||
|
@ -222,7 +222,7 @@ gst_videomixer_blend_ayuv_ayuv (guint8 * src, gint xpos, gint ypos,
|
|||
|
||||
for (i = 0; i < src_height; i++) {
|
||||
for (j = 0; j < src_width; j++) {
|
||||
alpha = (src[0] * b_alpha) >> 8;
|
||||
alpha = (src[0] * s_alpha) >> 8;
|
||||
BLEND_MODE (dest[1], dest[2], dest[3], src[1], src[2], src[3],
|
||||
alpha, Y, U, V);
|
||||
dest[0] = 0xff;
|
||||
|
@ -254,7 +254,7 @@ gst_videomixer_blend_ayuv_ayuv_mmx (guint8 * src, gint xpos, gint ypos,
|
|||
src_stride = src_width * 4;
|
||||
dest_stride = dest_width * 4;
|
||||
|
||||
b_alpha = (gint) (src_alpha * 255);
|
||||
b_alpha = CLAMP ((gint) (src_alpha * 255), 0, 255);
|
||||
|
||||
/* adjust src pointers for negative sizes */
|
||||
if (xpos < 0) {
|
||||
|
|
|
@ -32,7 +32,7 @@ gst_videomixer_blend_##name##_##name (guint8 * src, gint xpos, gint ypos, \
|
|||
gint src_width, gint src_height, gdouble src_alpha, \
|
||||
guint8 * dest, gint dest_width, gint dest_height) \
|
||||
{ \
|
||||
gint alpha, b_alpha; \
|
||||
gint alpha, s_alpha; \
|
||||
gint i, j; \
|
||||
gint src_stride, dest_stride; \
|
||||
gint src_add, dest_add; \
|
||||
|
@ -41,7 +41,7 @@ gst_videomixer_blend_##name##_##name (guint8 * src, gint xpos, gint ypos, \
|
|||
src_stride = src_width * 4; \
|
||||
dest_stride = dest_width * 4; \
|
||||
\
|
||||
b_alpha = (gint) (src_alpha * 255); \
|
||||
s_alpha = CLAMP ((gint) (src_alpha * 256), 0, 256); \
|
||||
\
|
||||
/* adjust src pointers for negative sizes */ \
|
||||
if (xpos < 0) { \
|
||||
|
@ -69,7 +69,7 @@ gst_videomixer_blend_##name##_##name (guint8 * src, gint xpos, gint ypos, \
|
|||
\
|
||||
for (i = 0; i < src_height; i++) { \
|
||||
for (j = 0; j < src_width; j++) { \
|
||||
alpha = (src[a] * b_alpha) >> 8; \
|
||||
alpha = (src[a] * s_alpha) >> 8; \
|
||||
BLEND_MODE (dest[b], dest[g], dest[r], src[b], src[g], src[r], \
|
||||
B, G, R, alpha); \
|
||||
dest[b] = B; \
|
||||
|
|
|
@ -209,7 +209,7 @@ gst_i420_do_blend (guint8 * src, guint8 * dest,
|
|||
return;
|
||||
}
|
||||
|
||||
b_alpha = (gint) (src_alpha * 255);
|
||||
b_alpha = CLAMP ((gint) (src_alpha * 255), 0, 255);
|
||||
|
||||
for (i = 0; i < src_height; i++) {
|
||||
for (j = 0; j < src_width; j++) {
|
||||
|
|
|
@ -45,7 +45,7 @@ gst_videomixer_blend_##name##_##name (guint8 * src, gint xpos, gint ypos, \
|
|||
src_stride = GST_ROUND_UP_4 (src_width * bpp); \
|
||||
dest_stride = GST_ROUND_UP_4 (dest_width * bpp); \
|
||||
\
|
||||
b_alpha = (gint) (src_alpha * 255); \
|
||||
b_alpha = CLAMP ((gint) (src_alpha * 255), 0, 255); \
|
||||
\
|
||||
/* adjust src pointers for negative sizes */ \
|
||||
if (xpos < 0) { \
|
||||
|
|
Loading…
Reference in a new issue