Addl #510: Rudimentary video support
authorTomasz Golinski <tomaszg@math.uwb.edu.pl>
Thu, 14 Sep 2017 09:38:09 +0000 (10:38 +0100)
committerColin Clark <colin.clark@cclark.uk>
Thu, 14 Sep 2017 09:38:09 +0000 (10:38 +0100)
https://github.com/BestImageViewer/geeqie/issues/510

Add video files extension to default file filter (disabled by default).
Use recorded format_class in fd in metadata.c
Do not try to generate/read thumb for files which are not images.

src/filefilter.c
src/metadata.c
src/thumb.c
src/thumb_standard.c

index 0e46749..4ff7295 100644 (file)
@@ -277,6 +277,14 @@ void filter_add_defaults(void)
        filter_add_if_missing("erf", "Epson raw format", ".erf", FORMAT_CLASS_RAWIMAGE, FALSE, TRUE, TRUE);
        filter_add_if_missing("srw", "Samsung raw format", ".srw", FORMAT_CLASS_RAWIMAGE, FALSE, TRUE, TRUE);
        filter_add_if_missing("rw2", "Panasonic raw format", ".rw2", FORMAT_CLASS_RAWIMAGE, FALSE, TRUE, TRUE);
+
+       /* video files */
+       filter_add_if_missing("mp4", "MP4 video file", ".mp4;.m4v;.3gp;.3g2", FORMAT_CLASS_VIDEO, FALSE, FALSE, FALSE);
+       filter_add_if_missing("3gp", "3GP video file", ".3gp;.3g2", FORMAT_CLASS_VIDEO, FALSE, FALSE, FALSE);
+       filter_add_if_missing("mov", "MOV video file", ".mov;.qt", FORMAT_CLASS_VIDEO, FALSE, FALSE, FALSE);
+       filter_add_if_missing("avi", "AVI video file", ".avi", FORMAT_CLASS_VIDEO, FALSE, FALSE, FALSE);
+       filter_add_if_missing("mpg", "MPG video file", ".mpg;.mpeg;.mts;.m2ts;", FORMAT_CLASS_VIDEO, FALSE, FALSE, FALSE);
+       filter_add_if_missing("mkv", "Matroska video file", ".mkv;", FORMAT_CLASS_VIDEO, FALSE, FALSE, FALSE);
 }
 
 GList *filter_to_list(const gchar *extensions)
index 563b7b8..45dc37a 100644 (file)
@@ -395,7 +395,7 @@ gboolean metadata_write_list(FileData *fd, const gchar *key, const GList *values
                        FileData *sfd = work->data;
                        work = work->next;
 
-                       if (filter_file_class(sfd->extension, FORMAT_CLASS_META)) continue;
+                       if (sfd->format_class == FORMAT_CLASS_META) continue;
 
                        metadata_write_list(sfd, key, values);
                        }
index d3c9d97..3d43a34 100644 (file)
@@ -337,6 +337,11 @@ gboolean thumb_loader_start(ThumbLoader *tl, FileData *fd)
 
        if (!tl->fd) tl->fd = file_data_ref(fd);
 
+       if (tl->fd->format_class != FORMAT_CLASS_IMAGE && tl->fd->format_class != FORMAT_CLASS_RAWIMAGE)
+               {
+               thumb_loader_set_fallback(tl);
+               return FALSE;
+               }
 
        if (tl->cache_enable)
                {
index 35c3f0a..a6403d2 100644 (file)
@@ -668,7 +668,7 @@ gboolean thumb_loader_std_start(ThumbLoaderStd *tl, FileData *fd)
 
 
        tl->fd = file_data_ref(fd);
-       if (!stat_utf8(fd->path, &st))
+       if (!stat_utf8(fd->path, &st) || (tl->fd->format_class != FORMAT_CLASS_IMAGE && tl->fd->format_class != FORMAT_CLASS_RAWIMAGE))
                {
                thumb_loader_std_set_fallback(tl);
                return FALSE;