From 7e6265e0d216e0b872a5f103af1c7bb022ade06e Mon Sep 17 00:00:00 2001 From: Insun Kang Date: Tue, 22 Nov 2011 20:59:31 +0900 Subject: [PATCH] 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 --- .../timedtext/TimedTextParser.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/media/libstagefright/timedtext/TimedTextParser.cpp b/media/libstagefright/timedtext/TimedTextParser.cpp index 0bada16fb6930..caea0a4cc6edd 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; + + // 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; } - - // to skip the first line - 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