basetextoverlay: FIX crash if padding greater than video size

Skipping rendering of textimage if overlay is completely
outside video frame.

https://bugzilla.gnome.org/show_bug.cgi?id=754429
This commit is contained in:
Prashant Gotarne 2015-09-03 08:58:08 +05:30 committed by Nicolas Dufresne
parent 9361f7c576
commit 7447736be9

View file

@ -1673,6 +1673,19 @@ gst_base_text_overlay_render_pangocairo (GstBaseTextOverlay * overlay,
height = ceil (height * overlay->render_scale); height = ceil (height * overlay->render_scale);
scalef *= overlay->render_scale; scalef *= overlay->render_scale;
if (width <= 0 || height <= 0) {
g_mutex_unlock (GST_BASE_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
GST_DEBUG_OBJECT (overlay,
"Overlay is outside video frame. Skipping text rendering");
return;
}
if (unscaled_height <= 0 || unscaled_width <= 0) {
g_mutex_unlock (GST_BASE_TEXT_OVERLAY_GET_CLASS (overlay)->pango_lock);
GST_DEBUG_OBJECT (overlay,
"Overlay is outside video frame. Skipping text rendering");
return;
}
/* Prepare the transformation matrix. Note that the transformation happens /* Prepare the transformation matrix. Note that the transformation happens
* in reverse order. So for horizontal text, we will translate and then * in reverse order. So for horizontal text, we will translate and then
* scale. This is important to understand which scale shall be used. */ * scale. This is important to understand which scale shall be used. */