public ArrayList<DLNAMediaInfo> getData(String name, long modified) {
    ArrayList<DLNAMediaInfo> list = new ArrayList<>();
    Connection conn = null;
    ResultSet rs = null;
    PreparedStatement stmt = null;
    try {
      conn = getConnection();
      stmt = conn.prepareStatement("SELECT * FROM FILES WHERE FILENAME = ? AND MODIFIED = ?");
      stmt.setString(1, name);
      stmt.setTimestamp(2, new Timestamp(modified));
      rs = stmt.executeQuery();
      while (rs.next()) {
        DLNAMediaInfo media = new DLNAMediaInfo();
        int id = rs.getInt("ID");
        media.setDuration(toDouble(rs, "DURATION"));
        media.setBitrate(rs.getInt("BITRATE"));
        media.setWidth(rs.getInt("WIDTH"));
        media.setHeight(rs.getInt("HEIGHT"));
        media.setSize(rs.getLong("SIZE"));
        media.setCodecV(rs.getString("CODECV"));
        media.setFrameRate(rs.getString("FRAMERATE"));
        media.setAspectRatioDvdIso(rs.getString("ASPECT"));
        media.setAspectRatioContainer(rs.getString("ASPECTRATIOCONTAINER"));
        media.setAspectRatioVideoTrack(rs.getString("ASPECTRATIOVIDEOTRACK"));
        media.setReferenceFrameCount(rs.getByte("REFRAMES"));
        media.setAvcLevel(rs.getString("AVCLEVEL"));
        media.setBitsPerPixel(rs.getInt("BITSPERPIXEL"));
        media.setThumb(rs.getBytes("THUMB"));
        media.setContainer(rs.getString("CONTAINER"));
        media.setModel(rs.getString("MODEL"));
        if (media.getModel() != null && !FormatConfiguration.JPG.equals(media.getContainer())) {
          media.setExtrasAsString(media.getModel());
        }
        media.setExposure(rs.getInt("EXPOSURE"));
        media.setOrientation(rs.getInt("ORIENTATION"));
        media.setIso(rs.getInt("ISO"));
        media.setMuxingMode(rs.getString("MUXINGMODE"));
        media.setFrameRateMode(rs.getString("FRAMERATEMODE"));
        media.setStereoscopy(rs.getString("STEREOSCOPY"));
        media.setMatrixCoefficients(rs.getString("MATRIXCOEFFICIENTS"));
        media.setFileTitleFromMetadata(rs.getString("TITLECONTAINER"));
        media.setVideoTrackTitleFromMetadata(rs.getString("TITLEVIDEOTRACK"));
        media.setVideoTrackCount(rs.getInt("VIDEOTRACKCOUNT"));
        media.setImageCount(rs.getInt("IMAGECOUNT"));
        media.setVideoBitDepth(rs.getInt("BITDEPTH"));
        media.setMediaparsed(true);
        ResultSet subrs;
        try (PreparedStatement audios =
            conn.prepareStatement("SELECT * FROM AUDIOTRACKS WHERE FILEID = ?")) {
          audios.setInt(1, id);
          subrs = audios.executeQuery();
          while (subrs.next()) {
            DLNAMediaAudio audio = new DLNAMediaAudio();
            audio.setId(subrs.getInt("ID"));
            audio.setLang(subrs.getString("LANG"));
            audio.setAudioTrackTitleFromMetadata(subrs.getString("TITLE"));
            audio.getAudioProperties().setNumberOfChannels(subrs.getInt("NRAUDIOCHANNELS"));
            audio.setSampleFrequency(subrs.getString("SAMPLEFREQ"));
            audio.setCodecA(subrs.getString("CODECA"));
            audio.setBitsperSample(subrs.getInt("BITSPERSAMPLE"));
            audio.setAlbum(subrs.getString("ALBUM"));
            audio.setArtist(subrs.getString("ARTIST"));
            audio.setSongname(subrs.getString("SONGNAME"));
            audio.setGenre(subrs.getString("GENRE"));
            audio.setYear(subrs.getInt("YEAR"));
            audio.setTrack(subrs.getInt("TRACK"));
            audio.getAudioProperties().setAudioDelay(subrs.getInt("DELAY"));
            audio.setMuxingModeAudio(subrs.getString("MUXINGMODE"));
            audio.setBitRate(subrs.getInt("BITRATE"));
            media.getAudioTracksList().add(audio);
          }
          subrs.close();
        }
        try (PreparedStatement subs =
            conn.prepareStatement("SELECT * FROM SUBTRACKS WHERE FILEID = ?")) {
          subs.setInt(1, id);
          subrs = subs.executeQuery();
          while (subrs.next()) {
            DLNAMediaSubtitle sub = new DLNAMediaSubtitle();
            sub.setId(subrs.getInt("ID"));
            sub.setLang(subrs.getString("LANG"));
            sub.setSubtitlesTrackTitleFromMetadata(subrs.getString("TITLE"));
            sub.setType(SubtitleType.valueOfStableIndex(subrs.getInt("TYPE")));
            media.getSubtitleTracksList().add(sub);
          }
          subrs.close();
        }

        list.add(media);
      }
    } catch (SQLException se) {
      LOGGER.error(null, se);
      return null;
    } finally {
      close(rs);
      close(stmt);
      close(conn);
    }
    return list;
  }