textoverlay: fix shading for RGBx/RGBA pixel format variants
... for cases where there's padding at the end of each row. Fixes #4414. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9106>
This commit is contained in:
parent
e72e9a95d8
commit
d273b790e1
@ -2163,14 +2163,16 @@ gst_base_text_overlay_shade_xRGB (GstBaseTextOverlay * overlay,
|
||||
{
|
||||
gint i, j;
|
||||
guint8 *dest_ptr;
|
||||
guint stride;
|
||||
|
||||
dest_ptr = dest->data[0];
|
||||
dest_ptr = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
|
||||
stride = GST_VIDEO_FRAME_PLANE_STRIDE (dest, 0);
|
||||
|
||||
for (i = y0; i < y1; i++) {
|
||||
for (j = x0; j < x1; j++) {
|
||||
gint y, y_pos, k;
|
||||
|
||||
y_pos = (i * 4 * overlay->width) + j * 4;
|
||||
y_pos = (i * stride) + j * 4;
|
||||
for (k = 0; k < 4; k++) {
|
||||
y = dest_ptr[y_pos + k] - overlay->shading_value;
|
||||
dest_ptr[y_pos + k] = CLAMP (y, 0, 255);
|
||||
@ -2240,13 +2242,15 @@ gint x0, gint x1, gint y0, gint y1) \
|
||||
{ \
|
||||
gint i, j;\
|
||||
guint8 *dest_ptr;\
|
||||
guint stride;\
|
||||
\
|
||||
dest_ptr = dest->data[0];\
|
||||
dest_ptr = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);\
|
||||
stride = GST_VIDEO_FRAME_PLANE_STRIDE (dest, 0);\
|
||||
\
|
||||
for (i = y0; i < y1; i++) {\
|
||||
for (j = x0; j < x1; j++) {\
|
||||
gint y, y_pos, k;\
|
||||
y_pos = (i * 4 * overlay->width) + j * 4;\
|
||||
y_pos = (i * stride) + j * 4;\
|
||||
for (k = OFFSET; k < 3+OFFSET; k++) {\
|
||||
y = dest_ptr[y_pos + k] - overlay->shading_value;\
|
||||
dest_ptr[y_pos + k] = CLAMP (y, 0, 255);\
|
||||
|
Loading…
x
Reference in New Issue
Block a user