#undef HAVE_STDLIB_H // automake conflict
#include "fileogg.h"
#include "filepng.h"
+#include "fileppm.h"
#include "filescene.h"
#include "filesndfile.h"
#include "filetga.h"
int audio_options, int video_options)
{
BC_WindowBase *parent_window = format->window;
- //ArrayList<PluginServer*> *plugindb = format->plugindb;
Asset *asset = format->asset;
-
+ EDL *edl = format->mwindow ? format->mwindow->edl : 0;
+ format_window = 0;
getting_options = 1;
format_completion->lock("File::get_options");
switch( asset->format ) {
- case FILE_AC3:
- FileAC3::get_parameters(parent_window,
- asset,
- format_window,
- audio_options,
- video_options);
+ case FILE_AC3: FileAC3::get_parameters(parent_window, asset, format_window,
+ audio_options, video_options, edl);
break;
#ifdef HAVE_DV
case FILE_RAWDV:
FileDV::get_parameters(parent_window, asset, format_window,
- audio_options, video_options);
+ audio_options, video_options, edl);
break;
#endif
case FILE_PCM:
case FILE_AIFF:
case FILE_SND:
FileSndFile::get_parameters(parent_window, asset, format_window,
- audio_options, video_options);
+ audio_options, video_options, edl);
break;
case FILE_FFMPEG:
FileFFMPEG::get_parameters(parent_window, asset, format_window,
- audio_options, video_options);
+ audio_options, video_options, edl);
break;
case FILE_AMPEG:
case FILE_VMPEG:
FileMPEG::get_parameters(parent_window, asset, format_window,
- audio_options, video_options);
+ audio_options, video_options, edl);
break;
case FILE_JPEG:
case FILE_JPEG_LIST:
FileJPEG::get_parameters(parent_window, asset, format_window,
- audio_options, video_options);
+ audio_options, video_options, edl);
break;
#ifdef HAVE_OPENEXR
case FILE_EXR:
case FILE_EXR_LIST:
FileEXR::get_parameters(parent_window, asset, format_window,
- audio_options, video_options);
+ audio_options, video_options, edl);
break;
#endif
case FILE_FLAC:
FileFLAC::get_parameters(parent_window, asset, format_window,
- audio_options, video_options);
+ audio_options, video_options, edl);
break;
case FILE_PNG:
case FILE_PNG_LIST:
FilePNG::get_parameters(parent_window, asset, format_window,
- audio_options, video_options);
+ audio_options, video_options, edl);
+ break;
+ case FILE_PPM:
+ case FILE_PPM_LIST:
+ FilePPM::get_parameters(parent_window, asset, format_window,
+ audio_options, video_options, edl);
break;
case FILE_TGA:
case FILE_TGA_LIST:
FileTGA::get_parameters(parent_window, asset, format_window,
- audio_options, video_options);
+ audio_options, video_options, edl);
break;
case FILE_TIFF:
case FILE_TIFF_LIST:
FileTIFF::get_parameters(parent_window, asset, format_window,
- audio_options, video_options);
+ audio_options, video_options, edl);
break;
case FILE_OGG:
FileOGG::get_parameters(parent_window, asset, format_window,
- audio_options, video_options);
+ audio_options, video_options, edl);
break;
default:
break;
#endif
"SndFile",
"PNG",
+ "PPM",
"JPEG",
"GIF",
#ifdef HAVE_OPENEXR
file = new FilePNG(this->asset, this);
return FILE_OK;
}
+ if( !strcmp(pref->name,"PPM") ) { // PPM file
+ if( !FilePPM::check_sig(this->asset) ) continue;
+ file = new FilePPM(this->asset, this);
+ return FILE_OK;
+ }
if( !strcmp(pref->name,"JPEG") ) { // JPEG file
if( !FileJPEG::check_sig(this->asset) ) continue;
file = new FileJPEG(this->asset, this);
file = new FilePNG(this->asset, this);
break;
+ case FILE_PPM:
+ case FILE_PPM_LIST:
+ file = new FilePPM(this->asset, this);
+ break;
+
case FILE_JPEG:
case FILE_JPEG_LIST:
file = new FileJPEG(this->asset, this);
if( !strcasecmp(format, _(SND_NAME)) ) return FILE_SND;
if( !strcasecmp(format, _(PNG_NAME)) ) return FILE_PNG;
if( !strcasecmp(format, _(PNG_LIST_NAME)) ) return FILE_PNG_LIST;
+ if( !strcasecmp(format, _(PPM_NAME)) ) return FILE_PPM;
+ if( !strcasecmp(format, _(PPM_LIST_NAME)) ) return FILE_PPM_LIST;
if( !strcasecmp(format, _(TIFF_NAME)) ) return FILE_TIFF;
if( !strcasecmp(format, _(TIFF_LIST_NAME)) ) return FILE_TIFF_LIST;
if( !strcasecmp(format, _(JPEG_NAME)) ) return FILE_JPEG;
case FILE_SND: return _(SND_NAME);
case FILE_PNG: return _(PNG_NAME);
case FILE_PNG_LIST: return _(PNG_LIST_NAME);
+ case FILE_PPM: return _(PPM_NAME);
+ case FILE_PPM_LIST: return _(PPM_LIST_NAME);
case FILE_JPEG: return _(JPEG_NAME);
case FILE_JPEG_LIST: return _(JPEG_LIST_NAME);
case FILE_CR2: return _(CR2_NAME);
}
-
-
-
-int File::get_best_colormodel(int driver)
+int File::get_best_colormodel(int driver, int vstream)
{
- return get_best_colormodel(asset, driver);
+ return file ? file->get_best_colormodel(driver, vstream) :
+ get_best_colormodel(asset, driver);
}
int File::get_best_colormodel(Asset *asset, int driver)
#endif
case FILE_PNG:
case FILE_PNG_LIST: return FilePNG::get_best_colormodel(asset, driver);
+ case FILE_PPM:
+ case FILE_PPM_LIST: return FilePPM::get_best_colormodel(asset, driver);
case FILE_TGA:
case FILE_TGA_LIST: return FileTGA::get_best_colormodel(asset, driver);
case FILE_CR2:
case FILE_EXR_LIST:
case FILE_PNG:
case FILE_PNG_LIST:
+ case FILE_PPM:
+ case FILE_PPM_LIST:
case FILE_TGA:
case FILE_TGA_LIST:
case FILE_TIFF:
int File::renders_video(Asset *asset)
{
return asset->format == FILE_FFMPEG ?
- FileFFMPEG::renders_video(asset->fformat) :
+ FFMPEG::renders_video(asset->fformat) :
renders_video(asset->format);
}
int File::renders_audio(Asset *asset)
{
return asset->format == FILE_FFMPEG ?
- FileFFMPEG::renders_audio(asset->fformat) :
+ FFMPEG::renders_audio(asset->fformat) :
renders_audio(asset->format);
}
case FILE_EXR:
case FILE_JPEG:
case FILE_PNG:
+ case FILE_PPM:
case FILE_TGA:
case FILE_TIFF:
return 1;
case FILE_PCM: return "pcm";
case FILE_PNG: return "png";
case FILE_PNG_LIST: return "png";
+ case FILE_PPM: return "ppm";
+ case FILE_PPM_LIST: return "ppm";
case FILE_TGA: return "tga";
case FILE_TGA_LIST: return "tga";
case FILE_TIFF: return "tif";
case FILE_PCM: return "PCM";
case FILE_WAV: return "WAV";
case FILE_PNG: return "PNG";
+ case FILE_PPM: return "PPM";
case FILE_JPEG: return "JPEG";
case FILE_TIFF: return "TIFF";
case FILE_GIF: return "GIF";
case FILE_RAWDV: return "RAWDV";
case FILE_TIFF_LIST: return "TIFF_LIST";
case FILE_PNG_LIST: return "PNG_LIST";
+ case FILE_PPM_LIST: return "PPM_LIST";
case FILE_AC3: return "AC3";
case FILE_EXR: return "EXR";
case FILE_EXR_LIST: return "EXR_LIST";
*rp = 0;
}
-void File::setenv_path(char *result, const char *var, const char *path)
+void File::setenv_path(const char *var, const char *path, int overwrite)
{
- char *env = getenv(var);
- if( env ) return;
char env_path[BCTEXTLEN];
getenv_path(env_path, path);
- sprintf(result, "%s=%s", var, env_path);
- putenv(result);
+ setenv(var, env_path, overwrite);
}
-char File::cinexe_path[BCTEXTLEN];
-char File::cinpkg_path[BCTEXTLEN];
-char File::cindat_path[BCTEXTLEN];
-char File::cinlib_path[BCTEXTLEN];
-char File::cincfg_path[BCTEXTLEN];
-char File::cinplg_path[BCTEXTLEN];
-char File::cinlad_path[BCTEXTLEN];
-char File::cinlcl_path[BCTEXTLEN];
-char File::cinbwr_path[BCTEXTLEN];
-
void File::init_cin_path()
{
char env_path[BCTEXTLEN], env_pkg[BCTEXTLEN];
// these values are advertised for forks/shell scripts
get_exe_path(env_path, env_pkg);
- snprintf(cinexe_path, sizeof(cinexe_path), "CIN_PATH=%s", env_path);
- putenv(cinexe_path);
- snprintf(cinpkg_path, sizeof(cinpkg_path), "CIN_PKG=%s", env_pkg);
- putenv(cinpkg_path);
-
- setenv_path(cindat_path, "CIN_DAT", CINDAT_DIR);
- setenv_path(cinlib_path, "CIN_LIB", CINLIB_DIR);
- setenv_path(cincfg_path, "CIN_CONFIG", CONFIG_DIR);
- setenv_path(cinplg_path, "CIN_PLUGIN", PLUGIN_DIR);
- setenv_path(cinlad_path, "CIN_LADSPA", LADSPA_DIR);
- setenv_path(cinlcl_path, "CIN_LOCALE", LOCALE_DIR);
- setenv_path(cinbwr_path, "CIN_BROWSER", CIN_BROWSER);
+ setenv_path("CIN_PATH", env_path, 1);
+ setenv_path("CIN_PKG", env_pkg, 1);
+ setenv_path("CIN_DAT", CINDAT_DIR, 0);
+ setenv_path("CIN_LIB", CINLIB_DIR, 0);
+ setenv_path("CIN_CONFIG", CONFIG_DIR, 0);
+ setenv_path("CIN_PLUGIN", PLUGIN_DIR, 0);
+ setenv_path("CIN_LADSPA", LADSPA_DIR, 0);
+ setenv_path("CIN_LOCALE", LOCALE_DIR, 0);
+ setenv_path("CIN_BROWSER", CIN_BROWSER, 0);
}