ttmlparse: Replace repeated warning code with a function.

Encapsulates in a function the code that warns of an illegally
positioned element, rather than repeating the same code multiple times.
Also frees a string allocated by ttml_get_element_type_string, which was
previously being leaked.

https://bugzilla.gnome.org/show_bug.cgi?id=781725
This commit is contained in:
Chris Bass 2017-04-25 10:17:49 +01:00 committed by Sebastian Dröge
parent 8b19cccfc5
commit 81157e5168

View file

@ -1538,6 +1538,16 @@ ttml_blend_colors (GstSubtitleColor color1, GstSubtitleColor color2)
}
static void
ttml_warn_of_mispositioned_element (TtmlElement * element)
{
gchar *type = ttml_get_element_type_string (element);
GST_CAT_WARNING (ttmlparse_debug, "Ignoring illegally positioned %s element.",
type);
g_free (type);
}
/* Create the subtitle region and its child blocks and elements for @tree,
* inserting element text in @buf. Ownership of created region is transferred
* to caller. */
@ -1572,9 +1582,7 @@ ttml_create_subtitle_region (GNode * tree, GstBuffer * buf, guint cellres_x,
element = node->data;
if (element->type != TTML_ELEMENT_TYPE_DIV) {
GST_CAT_WARNING (ttmlparse_debug,
"Ignoring %s child of body element: only a div is allowed here.",
ttml_get_element_type_string (element));
ttml_warn_of_mispositioned_element (element);
continue;
}
div_color =
@ -1590,9 +1598,7 @@ ttml_create_subtitle_region (GNode * tree, GstBuffer * buf, guint cellres_x,
element = p_node->data;
if (element->type != TTML_ELEMENT_TYPE_P) {
GST_CAT_WARNING (ttmlparse_debug,
"Ignoring %s child of div element: only a p is allowed here.",
ttml_get_element_type_string (element));
ttml_warn_of_mispositioned_element (element);
continue;
}
p_color =
@ -1624,15 +1630,11 @@ ttml_create_subtitle_region (GNode * tree, GstBuffer * buf, guint cellres_x,
|| element->type == TTML_ELEMENT_TYPE_ANON_SPAN) {
ttml_add_element (block, element, buf, cellres_x, cellres_y);
} else {
GST_CAT_WARNING (ttmlparse_debug,
"Ignoring illegally positioned %s element.",
ttml_get_element_type_string (element));
ttml_warn_of_mispositioned_element (element);
}
}
} else {
GST_CAT_WARNING (ttmlparse_debug,
"Ignoring illegally positioned %s element.",
ttml_get_element_type_string (element));
ttml_warn_of_mispositioned_element (element);
}
}