libs: surface: ensure composite overlay is not bigger
authorVíctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
Wed, 7 Sep 2016 15:34:08 +0000 (17:34 +0200)
committerVíctor Manuel Jáquez Leal <victorx.jaquez@intel.com>
Thu, 8 Sep 2016 15:06:57 +0000 (17:06 +0200)
Ensure the composition overlay rectangle (subtitles) is not bigger than
the surface where it is going to be composited and rendered.

https://bugzilla.gnome.org/show_bug.cgi?id=766978

gst-libs/gst/vaapi/gstvaapisurface.c

index 07f8a29..4ef616e 100644 (file)
@@ -1016,6 +1016,10 @@ gst_vaapi_surface_set_subpictures_from_composition (GstVaapiSurface * surface,
         (gint *) & sub_rect.x, (gint *) & sub_rect.y,
         &sub_rect.width, &sub_rect.height);
 
+    /* ensure that the overlay is not bigger than the surface */
+    sub_rect.y = MIN (sub_rect.y, surface->height);
+    sub_rect.width = MIN (sub_rect.width, surface->width);
+
     if (!gst_vaapi_surface_associate_subpicture (surface, subpicture,
             NULL, &sub_rect)) {
       GST_WARNING ("could not render overlay rectangle %p", rect);