changeset 2598:b8f3f29bd641

Addl #510: Rudimentary video support 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.
author Tomasz Golinski <tomaszg@math.uwb.edu.pl>
date Thu, 14 Sep 2017 10:38:09 +0100
parents e65df743a5a1
children 93d065140133
files src/filefilter.c src/metadata.c src/thumb.c src/thumb_standard.c
diffstat 4 files changed, 15 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/filefilter.c	Wed Sep 13 11:21:58 2017 +0100
+++ b/src/filefilter.c	Thu Sep 14 10:38:09 2017 +0100
@@ -277,6 +277,14 @@
 	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)
--- a/src/metadata.c	Wed Sep 13 11:21:58 2017 +0100
+++ b/src/metadata.c	Thu Sep 14 10:38:09 2017 +0100
@@ -395,7 +395,7 @@
 			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);
 			}
--- a/src/thumb.c	Wed Sep 13 11:21:58 2017 +0100
+++ b/src/thumb.c	Thu Sep 14 10:38:09 2017 +0100
@@ -337,6 +337,11 @@
 
 	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)
 		{
--- a/src/thumb_standard.c	Wed Sep 13 11:21:58 2017 +0100
+++ b/src/thumb_standard.c	Thu Sep 14 10:38:09 2017 +0100
@@ -668,7 +668,7 @@
 
 
 	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;