[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [61034] trunk/blender/source/blender: FIX: [#37199] .ogg file is not recognized as a movie in File Browser

Andrea Weikert elubie at gmx.net
Thu Oct 31 22:00:56 CET 2013


Revision: 61034
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=61034
Author:   elubie
Date:     2013-10-31 21:00:55 +0000 (Thu, 31 Oct 2013)
Log Message:
-----------
FIX: [#37199] .ogg file is not recognized as a movie in File Browser

CHANGE: writing an animation in the ogg movie format now defaults to .ogv (ogg/video) which is recommended by Xiph.org for video
CHANGE: for .ogg files a check is added whether Blender can read it as a movie (is avi or ffmpeg movie), otherwise assume audio
CHANGE: the anim player now filters for the same extensions as the file browser

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
    trunk/blender/source/blender/editors/space_file/filelist.c
    trunk/blender/source/blender/imbuf/intern/util.c

Modified: trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c	2013-10-31 17:20:31 UTC (rev 61033)
+++ trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c	2013-10-31 21:00:55 UTC (rev 61034)
@@ -295,7 +295,7 @@
 		}
 		case FFMPEG_OGG:
 		{
-			static const char *rv[] = { ".ogg", ".ogv", NULL };
+			static const char *rv[] = { ".ogv", ".ogg", NULL };
 			return rv;
 		}
 		case FFMPEG_MP3:

Modified: trunk/blender/source/blender/editors/space_file/filelist.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/filelist.c	2013-10-31 17:20:31 UTC (rev 61033)
+++ trunk/blender/source/blender/editors/space_file/filelist.c	2013-10-31 21:00:55 UTC (rev 61034)
@@ -764,56 +764,69 @@
 	return (retval);
 }
 
-
-static int file_extension_type(const char *relname)
+static int path_extension_type(const char *path)
 {
-	if (BLO_has_bfile_extension(relname)) {
+	if (BLO_has_bfile_extension(path)) {
 		return BLENDERFILE;
 	}
-	else if (file_is_blend_backup(relname)) {
+	else if (file_is_blend_backup(path)) {
 		return BLENDERFILE_BACKUP;
 	}
-	else if (BLI_testextensie(relname, ".py")) {
+	else if (BLI_testextensie(path, ".py")) {
 		return PYSCRIPTFILE;
 	}
-	else if (BLI_testextensie(relname, ".txt")  ||
-	         BLI_testextensie(relname, ".glsl") ||
-	         BLI_testextensie(relname, ".osl")  ||
-	         BLI_testextensie(relname, ".data"))
+	else if (BLI_testextensie(path, ".txt")  ||
+	         BLI_testextensie(path, ".glsl") ||
+	         BLI_testextensie(path, ".osl")  ||
+	         BLI_testextensie(path, ".data"))
 	{
 		return TEXTFILE;
 	}
-	else if (BLI_testextensie(relname, ".ttf") ||
-	         BLI_testextensie(relname, ".ttc") ||
-	         BLI_testextensie(relname, ".pfb") ||
-	         BLI_testextensie(relname, ".otf") ||
-	         BLI_testextensie(relname, ".otc"))
+	else if (BLI_testextensie(path, ".ttf") ||
+	         BLI_testextensie(path, ".ttc") ||
+	         BLI_testextensie(path, ".pfb") ||
+	         BLI_testextensie(path, ".otf") ||
+	         BLI_testextensie(path, ".otc"))
 	{
 		return FTFONTFILE;
 	}
-	else if (BLI_testextensie(relname, ".btx")) {
+	else if (BLI_testextensie(path, ".btx")) {
 		return BTXFILE;
 	}
-	else if (BLI_testextensie(relname, ".dae")) {
+	else if (BLI_testextensie(path, ".dae")) {
 		return COLLADAFILE;
 	}
-	else if (BLI_testextensie_array(relname, imb_ext_image) ||
-	         (G.have_quicktime && BLI_testextensie_array(relname, imb_ext_image_qt)))
+	else if (BLI_testextensie_array(path, imb_ext_image) ||
+	         (G.have_quicktime && BLI_testextensie_array(path, imb_ext_image_qt)))
 	{
 		return IMAGEFILE;
 	}
-	else if (BLI_testextensie_array(relname, imb_ext_movie)) {
+	else if (BLI_testextensie(path, ".ogg")) {
+		if (IMB_isanim(path)) {
+			return MOVIEFILE;
+		} else {
+			return SOUNDFILE;
+		}
+	}
+	else if (BLI_testextensie_array(path, imb_ext_movie)) {
 		return MOVIEFILE;
 	}
-	else if (BLI_testextensie_array(relname, imb_ext_audio)) {
+	else if (BLI_testextensie_array(path, imb_ext_audio)) {
 		return SOUNDFILE;
 	}
 	return 0;
 }
 
-int ED_file_extension_icon(const char *relname)
+static int file_extension_type(const char *dir, const char *relname)
 {
-	int type = file_extension_type(relname);
+	char path[FILE_MAX];
+	BLI_join_dirfile(path, sizeof(path), dir, relname);
+	return path_extension_type(path);
+}
+
+int ED_file_extension_icon(const char *path)
+{
+	int type = path_extension_type(path);
 	
 	if (type == BLENDERFILE)
 		return ICON_FILE_BLEND;
@@ -853,7 +866,7 @@
 		if (file->type & S_IFDIR) {
 			continue;
 		}
-		file->flags = file_extension_type(file->relname);
+		file->flags = file_extension_type(filelist->dir, file->relname);
 		
 		if (filelist->filter_glob[0] &&
 		    BLI_testextensie_glob(file->relname, filelist->filter_glob))

Modified: trunk/blender/source/blender/imbuf/intern/util.c
===================================================================
--- trunk/blender/source/blender/imbuf/intern/util.c	2013-10-31 17:20:31 UTC (rev 61033)
+++ trunk/blender/source/blender/imbuf/intern/util.c	2013-10-31 21:00:55 UTC (rev 61034)
@@ -120,6 +120,17 @@
 	NULL
 };
 
+const char *imb_ext_movie_qt[] = {
+	".avi",   
+	".flc",   
+	".dv",    
+	".r3d",   
+	".mov",   
+	".movie", 
+	".mv",
+	NULL
+};
+
 const char *imb_ext_movie[] = {
 	".avi",
 	".flc",
@@ -135,6 +146,8 @@
 	".avs",
 	".wmv",
 	".ogv",
+	".ogg",
+	".r3d",
 	".dv",
 	".mpeg",
 	".mpg",
@@ -449,14 +462,7 @@
 	
 	if (U.uiflag & USER_FILTERFILEEXTS) {
 		if (G.have_quicktime) {
-			if (BLI_testextensie(filename, ".avi")   ||
-			    BLI_testextensie(filename, ".flc")   ||
-			    BLI_testextensie(filename, ".dv")    ||
-			    BLI_testextensie(filename, ".r3d")   ||
-			    BLI_testextensie(filename, ".mov")   ||
-			    BLI_testextensie(filename, ".movie") ||
-			    BLI_testextensie(filename, ".mv"))
-			{
+			if (BLI_testextensie_array(filename, imb_ext_movie_qt)) {	
 				type = imb_get_anim_type(filename);
 			}
 			else {
@@ -464,11 +470,7 @@
 			}
 		}
 		else { /* no quicktime */
-			if (BLI_testextensie(filename, ".avi") ||
-			    BLI_testextensie(filename, ".dv")  ||
-			    BLI_testextensie(filename, ".r3d") ||
-			    BLI_testextensie(filename, ".mv"))
-			{
+			if (BLI_testextensie_array(filename, imb_ext_movie)) {
 				type = imb_get_anim_type(filename);
 			}
 			else {




More information about the Bf-blender-cvs mailing list