private void addChapterFolder(DLNAResource dlna) { if (!dlna.getFormat().isVideo()) { return; } int chapterInterval = configuration.isChapterSupport() ? configuration.getChapterInterval() : -1; if ((chapterInterval > 0) && isSeekable(dlna)) { // don't add a chapter folder if the duration of the video // is less than the chapter length. double duration = dlna.getMedia().getDurationInSeconds(); // 0 if the duration is unknown if (duration != 0 && duration <= (chapterInterval * 60)) { return; } ChapterFileTranscodeVirtualFolder chapterFolder = new ChapterFileTranscodeVirtualFolder( String.format( Messages.getString("FileTranscodeVirtualFolder.1"), dlna.getDisplayName()), null, chapterInterval); DLNAResource copy = dlna.clone(); copy.setNoName(true); chapterFolder.addChildInternal(copy); addChildInternal(chapterFolder); } }
/** * Create a copy of the provided original resource and optionally set the copy's audio track, * subtitle track and player. * * @param original The original {@link DLNAResource} to create a copy of. * @param audio The audio track to use. * @param subtitle The subtitle track to use. * @param player The player to use. * @return The copy. */ private DLNAResource createResourceWithAudioSubtitlePlayer( DLNAResource original, DLNAMediaAudio audio, DLNAMediaSubtitle subtitle, Player player) { // FIXME clone is broken. should be e.g. original.newInstance() DLNAResource copy = original.clone(); copy.setMedia(original.getMedia()); copy.setNoName(true); copy.setMediaAudio(audio); copy.setMediaSubtitle(subtitle); copy.setPlayer(player); return copy; }