From 0739fafd62ba7835f3d8f6a75c016fe7eba35570 Mon Sep 17 00:00:00 2001 From: Mathieu Duponchelle Date: Wed, 11 Mar 2020 01:01:34 +0100 Subject: [PATCH] subparse: accept WebVTT timestamps without an hour component https://www.w3.org/TR/webvtt1/#webvtt-timestamp mm:ss,000 is a valid WebVTT timestamp --- gst/subparse/gstsubparse.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gst/subparse/gstsubparse.c b/gst/subparse/gstsubparse.c index 4fa4fc2..bb3435c 100644 --- a/gst/subparse/gstsubparse.c +++ b/gst/subparse/gstsubparse.c @@ -903,8 +903,18 @@ parse_subrip_time (const gchar * ts_string, GstClockTime * t) GST_LOG ("parsing timestamp '%s'", s); if (sscanf (s, "%u:%u:%u,%u", &hour, &min, &sec, &msec) != 4) { - GST_WARNING ("failed to parse subrip timestamp string '%s'", s); - return FALSE; + /* https://www.w3.org/TR/webvtt1/#webvtt-timestamp + * + * The hours component is optional with webVTT, for example + * mm:ss,500 is a valid webVTT timestamp. When not present, + * hours is 0. + */ + hour = 0; + + if (sscanf (s, "%u:%u,%u", &min, &sec, &msec) != 3) { + GST_WARNING ("failed to parse subrip timestamp string '%s'", s); + return FALSE; + } } *t = ((hour * 3600) + (min * 60) + sec) * GST_SECOND + msec * GST_MSECOND; -- 2.7.4