vp9 codec was slow and produced no keyframes. Trying vp8 instead.
[meviz.git] / src / main / java / eu / svjatoslav / meviz / htmlindexer / metadata / DirectoryMetadata.java
index 110f2bd..84fad12 100755 (executable)
@@ -57,7 +57,7 @@ public class DirectoryMetadata implements Serializable {
        }
 
        public void ensureFileMetainfoIsUpToDate(final File parentDirectory,
-                       final File file) throws IOException, ImageFormatError {
+                       final File file) throws Exception {
 
                final String fileName = file.getName();
 
@@ -73,8 +73,7 @@ public class DirectoryMetadata implements Serializable {
        }
 
        private AbstractFile getAbstractFile(final File parentDirectory,
-                       final File file, final String fileName) throws IOException,
-                       ImageFormatError {
+                       final File file, final String fileName) throws Exception {
 
                if (file.isDirectory())
                        return new DirectoryFile(parentDirectory, fileName);
@@ -83,15 +82,23 @@ public class DirectoryMetadata implements Serializable {
                                .toLowerCase();
 
                if (AbstractIndexer.isImage(fileExtension))
-                       return new Picture(parentDirectory, fileName);
+                       try {
+                               return new Picture(parentDirectory, fileName);
+                       } catch (final Exception exception) {
+                               // in case image decoding failed, handle image as general file
+                               return new GeneralFile(parentDirectory, fileName);
+                       }
+
+               if (fileName.endsWith(".meviz.org"))
+                       return new MevizSpecialFile(parentDirectory, fileName);
 
-               if (fileExtension.equals("meviz"))
+               if (fileName.endsWith(".meviz.html"))
                        return new MevizSpecialFile(parentDirectory, fileName);
 
                return new GeneralFile(parentDirectory, fileName);
        }
 
-       public AbstractFile getFile(final String fileName) throws IOException {
+       public AbstractFile getFile(final String fileName) {
                return fileNameToFileMap.get(fileName);
        }
 
@@ -105,6 +112,15 @@ public class DirectoryMetadata implements Serializable {
                return files;
        }
 
+       public String getHeaderMevizMetadataHtml() {
+               final AbstractFile headerFile = getFile("header.meviz.html");
+               if (headerFile == null)
+                       return "";
+
+               final MevizSpecialFile mevizSpecialFile = (MevizSpecialFile) headerFile;
+               return mevizSpecialFile.getFileContent();
+       }
+
        public Dimension getImageDimensions(final String fileName)
                        throws IOException, ImageFormatError {
 
@@ -112,7 +128,7 @@ public class DirectoryMetadata implements Serializable {
        }
 
        public AbstractFile registerFile(final File parentDirectory, final File file)
-                       throws IOException, ImageFormatError {
+                       throws Exception {
 
                final String fileName = file.getName();