public void parse(String line, ParseState state) { lineParser.parse(line, state); Match match = ParseUtil.match(Constants.EXT_X_VERSION_PATTERN, line, getTag()); if (state.getCompatibilityVersion() != ParseState.NONE) { throw ParseException.create(ParseExceptionType.MULTIPLE_EXT_TAG_INSTANCES, getTag(), line); } int compatibilityVersion = ParseUtil.parseInt(match.Groups[1].Value, getTag()); if (compatibilityVersion < Playlist.MIN_COMPATIBILITY_VERSION) { throw ParseException.create(ParseExceptionType.INVALID_COMPATIBILITY_VERSION, getTag(), line); } if (compatibilityVersion > Constants.MAX_COMPATIBILITY_VERSION) { throw ParseException.create(ParseExceptionType.UNSUPPORTED_COMPATIBILITY_VERSION, getTag(), line); } state.setCompatibilityVersion(compatibilityVersion); }
public void parse(String line, ParseState state) { lineParser.parse(line, state); ParseUtil.match(Constants.EXT_X_I_FRAMES_ONLY_PATTERN, line, getTag()); if (state.getCompatibilityVersion() < 4) { throw ParseException.create(ParseExceptionType.REQUIRES_PROTOCOL_VERSION_4_OR_HIGHER, getTag()); } state.setIsIframesOnly(); }