[utils] Support alternative timestamp format in TTML

Fixes #7608
pull/6880/merge
Yen Chi Hsuan 9 years ago
parent d631d5f9f2
commit db2fe38b55

@ -667,6 +667,7 @@ ffmpeg version 2.4.4 Copyright (c) 2000-2014 the FFmpeg ...'''), '2.4.4')
self.assertEqual(parse_dfxp_time_expr('0.1s'), 0.1) self.assertEqual(parse_dfxp_time_expr('0.1s'), 0.1)
self.assertEqual(parse_dfxp_time_expr('00:00:01'), 1.0) self.assertEqual(parse_dfxp_time_expr('00:00:01'), 1.0)
self.assertEqual(parse_dfxp_time_expr('00:00:01.100'), 1.1) self.assertEqual(parse_dfxp_time_expr('00:00:01.100'), 1.1)
self.assertEqual(parse_dfxp_time_expr('00:00:01:100'), 1.1)
def test_dfxp2srt(self): def test_dfxp2srt(self):
dfxp_data = '''<?xml version="1.0" encoding="UTF-8"?> dfxp_data = '''<?xml version="1.0" encoding="UTF-8"?>

@ -1982,9 +1982,9 @@ def parse_dfxp_time_expr(time_expr):
if mobj: if mobj:
return float(mobj.group('time_offset')) return float(mobj.group('time_offset'))
mobj = re.match(r'^(\d+):(\d\d):(\d\d(?:\.\d+)?)$', time_expr) mobj = re.match(r'^(\d+):(\d\d):(\d\d(?:(?:\.|:)\d+)?)$', time_expr)
if mobj: if mobj:
return 3600 * int(mobj.group(1)) + 60 * int(mobj.group(2)) + float(mobj.group(3)) return 3600 * int(mobj.group(1)) + 60 * int(mobj.group(2)) + float(mobj.group(3).replace(':', '.'))
def srt_subtitles_timecode(seconds): def srt_subtitles_timecode(seconds):

Loading…
Cancel
Save