+2008-02-23 Tim-Philipp Müller <tim at centricular dot net>
+
+ Based on patch by: Tomasz Sałaciński <tsalacinski gmail com>
+
+ * gst/subparse/gstsubparse.c: (parse_mdvdsub):
+ * tests/check/elements/subparse.c: (test_microdvd_with_italics),
+ (subparse_suite):
+ Forward slashes at the beginning and end of a line also signify
+ italics (Fixes: #518162).
+
2008-02-22 Sebastian Dröge <slomo@circular-chaos.org>
* tests/check/gst-plugins-base.supp:
-Subproject commit 84c6d3efac27669ad45856ebe84a17d33359dc36
+Subproject commit bd6ec57040fe3fa93e21ca440dfe494e3ee18555
if (sscanf (line, "{s:%u}", &fontsize) == 1) {
line = strchr (line, '}') + 1;
}
+ /* forward slashes at beginning/end signify italics too */
+ if (g_str_has_prefix (line, "/")) {
+ italic = TRUE;
+ ++line;
+ }
if ((line_split = strchr (line, '|')))
line_chunk = g_markup_escape_text (line, line_split - line);
else
line_chunk = g_markup_escape_text (line, strlen (line));
+
+ /* Remove italics markers at end of line/stanza (CHECKME: are end slashes
+ * always at the end of a line or can they span multiple lines?) */
+ if (g_str_has_suffix (line_chunk, "/")) {
+ line_chunk[strlen (line_chunk) - 1] = '\0';
+ }
+
markup = g_string_append (markup, "<span");
if (italic)
g_string_append (markup, " style=\"italic\"");
GST_END_TEST;
+GST_START_TEST (test_microdvd_with_italics)
+{
+ static SubParseInputChunk microdvd_italics[] = {
+ {
+ "{1}{1}25.000 movie info: XVID 608x256 25.0fps 699.0 MB|"
+ "/SubEdit b.4060(http://subedit.com.pl)/\n"
+ "{100}{200}/italics/|not italics\n",
+ 4 * GST_SECOND, 8 * GST_SECOND,
+ "<span style=\"italic\">italics</span>\n" "<span>not italics</span>"}
+ };
+
+ test_microdvd_do_test (microdvd_italics, G_N_ELEMENTS (microdvd_italics));
+}
+
+GST_END_TEST;
+
GST_START_TEST (test_microdvd_with_fps)
{
static SubParseInputChunk microdvd_input[] = {
tcase_add_test (tc_chain, test_tmplayer_style4);
tcase_add_test (tc_chain, test_tmplayer_style4_with_bogus_lines);
tcase_add_test (tc_chain, test_microdvd_with_fps);
+ tcase_add_test (tc_chain, test_microdvd_with_italics);
tcase_add_test (tc_chain, test_mpl2);
tcase_add_test (tc_chain, test_subviewer);
tcase_add_test (tc_chain, test_subviewer2);