Exemple #1
0
        @Override
        public void parse(String line, ParseState state) throws ParseException {
          super.parse(line, state);

          final Matcher matcher = match(Constants.EXT_X_VERSION_PATTERN, line);

          if (state.getCompatibilityVersion() != ParseState.NONE) {
            throw ParseException.create(
                ParseExceptionType.MULTIPLE_EXT_TAG_INSTANCES, getTag(), line);
          }

          final int compatibilityVersion = ParseUtil.parseInt(matcher.group(1), 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);
        }
        @Override
        public void parse(String line, ParseState state) throws ParseException {
          super.parse(line, state);

          final Matcher matcher = match(Constants.EXT_X_MEDIA_SEQUENCE_PATTERN, line);

          if (state.getMedia().mediaSequenceNumber != null) {
            throw ParseException.create(
                ParseExceptionType.MULTIPLE_EXT_TAG_INSTANCES, getTag(), line);
          }

          state.getMedia().mediaSequenceNumber = ParseUtil.parseInt(matcher.group(1), getTag());
        }
        @Override
        public void parse(String line, ParseState state) throws ParseException {
          super.parse(line, state);

          final Matcher matcher = match(Constants.EXT_X_TARGETDURATION_PATTERN, line);

          if (state.getMedia().targetDuration != null) {
            throw ParseException.create(
                ParseExceptionType.MULTIPLE_EXT_TAG_INSTANCES, getTag(), line);
          }

          state.getMedia().targetDuration = ParseUtil.parseInt(matcher.group(1), getTag());
        }