Merge pull request #172 from google/dev

dev -> dev-hls
This commit is contained in:
ojw28 2014-11-26 11:26:39 +00:00
commit f9f3b82d93
2 changed files with 22 additions and 3 deletions

View File

@ -134,14 +134,17 @@ public class ChunkSampleSource implements SampleSource, Loader.Callback {
}
/**
* The default minimum number of times to retry loading data prior to failing.
*/
public static final int DEFAULT_MIN_LOADABLE_RETRY_COUNT = 1;
private static final int STATE_UNPREPARED = 0;
private static final int STATE_PREPARED = 1;
private static final int STATE_ENABLED = 2;
private static final int NO_RESET_PENDING = -1;
private static final int DEFAULT_MIN_LOADABLE_RETRY_COUNT = 1;
private final int eventSourceId;
private final LoadControl loadControl;
private final ChunkSource chunkSource;

View File

@ -63,6 +63,16 @@ public class WebvttParser implements SubtitleParser {
private static final Pattern MEDIA_TIMESTAMP_OFFSET = Pattern.compile(OFFSET + "\\d+");
private static final Pattern MEDIA_TIMESTAMP = Pattern.compile("MPEGTS:\\d+");
private final boolean strictParsing;
public WebvttParser() {
this(true);
}
public WebvttParser(boolean strictParsing) {
this.strictParsing = strictParsing;
}
@Override
public WebvttSubtitle parse(InputStream inputStream, String inputEncoding, long startTimeUs)
throws IOException {
@ -108,7 +118,7 @@ public class WebvttParser implements SubtitleParser {
Matcher matcher = WEBVTT_METADATA_HEADER.matcher(line);
if (!matcher.find()) {
throw new ParserException("Expected webvtt metadata header; got: " + line);
handleNoncompliantLine(line);
}
if (line.startsWith("X-TIMESTAMP-MAP")) {
@ -182,6 +192,12 @@ public class WebvttParser implements SubtitleParser {
return startTimeUs;
}
protected void handleNoncompliantLine(String line) throws ParserException {
if (strictParsing) {
throw new ParserException("Unexpected line: " + line);
}
}
private static long parseTimestampUs(String s) throws NumberFormatException {
if (!s.matches(WEBVTT_TIMESTAMP_STRING)) {
throw new NumberFormatException("has invalid format");