From 0e0c3220ee1c4d57765e2cba3b07923921c55e08 Mon Sep 17 00:00:00 2001 From: Insun Kang Date: Tue, 22 Nov 2011 20:59:31 +0900 Subject: Fix a subtitle bug: multiple blank lines in SubRip(srt) file. TimedTextParser should handle multiple blank lines between subtitles in SRT format. Change-Id: Id81e0a14d9984141f68b9f0919942c85562301b3 --- media/libstagefright/timedtext/TimedTextParser.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'media/libstagefright') diff --git a/media/libstagefright/timedtext/TimedTextParser.cpp b/media/libstagefright/timedtext/TimedTextParser.cpp index 0bada16..caea0a4 100644 --- a/media/libstagefright/timedtext/TimedTextParser.cpp +++ b/media/libstagefright/timedtext/TimedTextParser.cpp @@ -128,7 +128,7 @@ status_t TimedTextParser::readNextLine(off64_t *offset, AString *data) { * Subtitle number * Start time --> End time * Text of subtitle (one or more lines) - * Blank line + * Blank lines * * .srt file example: * 1 @@ -143,15 +143,20 @@ status_t TimedTextParser::getNextInSrtFileFormat( off64_t *offset, int64_t *startTimeUs, TextInfo *info) { AString data; status_t err; - if ((err = readNextLine(offset, &data)) != OK) { - return err; - } - // to skip the first line + // To skip blank lines. + do { + if ((err = readNextLine(offset, &data)) != OK) { + return err; + } + data.trim(); + } while(data.empty()); + + // Just ignore the first non-blank line which is subtitle sequence number. + if ((err = readNextLine(offset, &data)) != OK) { return err; } - int hour1, hour2, min1, min2, sec1, sec2, msec1, msec2; // the start time format is: hours:minutes:seconds,milliseconds // 00:00:24,600 --> 00:00:27,800 -- cgit v1.1