code: MediaInfo parse() {
          try {
              BufferedReader reader = new BufferedReader(new StringReader(data));
              MediaInfo mediaInfo = new MediaInfo();
              String sectionName;
              String line;
              Sections sections;
              Section section = null;
              while (parseState != ParseState.FINISHED) {
                  switch (parseState) {
                      case DEFAULT:
                          parseState = ParseState.NEXT_SECTION;
                          break;
                      case NEXT_SECTION:
                          sectionName = reader.readLine();
                          if (sectionName == null) {
                              parseState = ParseState.FINISHED;
                          }
                          else if (sectionName.length() > 0) {
                              parseState = ParseState.SECTION;
                              sections = mediaInfo.sections(sectionName);
                              section = sections.newSection();
                          }
                          break;
                      case SECTION:
                          line = reader.readLine();
                          if (line == null) {
                              parseState = ParseState.FINISHED;
                          }
                          else if (line.length() == 0) {
                              parseState = ParseState.NEXT_SECTION;
                          }
                          else {
                              String[] values = line.split(":", 2);
                              section.put(values[0].trim(), values[1].trim());
                          }
                          break;
                      default:
                          throw new IllegalStateException();
                  }
              }
              return mediaInfo;
          }
          catch (IOException e) {
              throw new MediaInfoParseException("Failed to parse media info", e);
          }
      }
docs: Parse the raw data.
  
  @return parsed media information