compositor: Fix NV12 blend operation
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Wed, 19 May 2021 20:35:01 +0000 (16:35 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Wed, 19 May 2021 20:39:22 +0000 (16:39 -0400)
The full src_height/width was being used instead of the remaining
width/height for the current band. As a side effect, that value would
get erroneously reset and would cause overrun.

Fixes #887

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1160>

gst/compositor/blend.c

index 61ac75e92076c9145eb0e2c316105dea41181dcd..7a94c8c1e32fdebb3e6a10c4acd746a7290c267d 100644 (file)
@@ -617,10 +617,10 @@ blend_##format_name (GstVideoFrame * srcframe, gint xpos, gint ypos, \
   } \
   \
   /* adjust width/height if the src is bigger than dest */ \
-  if (xpos + src_width > dest_width) { \
+  if (xpos + b_src_width > dest_width) { \
     b_src_width = dest_width - xpos; \
   } \
-  if (ypos + src_height > dst_y_end) { \
+  if (ypos + b_src_height > dst_y_end) { \
     b_src_height = dst_y_end - ypos; \
   } \
   if (b_src_width < 0 || b_src_height < 0) { \