[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