#include "condition.h"
#include "errorbox.h"
#include "fileac3.h"
-#include "fileavi.h"
#include "filebase.h"
#include "filecr2.h"
#include "filedb.h"
#include "filegif.h"
#include "file.h"
#include "filejpeg.h"
-#include "filemov.h"
#include "filempeg.h"
#undef HAVE_STDLIB_H // automake conflict
#include "fileogg.h"
#include "pluginserver.h"
#include "preferences.h"
#include "samples.h"
-#include "stringfile.h"
#include "vframe.h"
-
-
+//suppress noref warning
+void *vorbis0_ov_callbacks[] = {
+ &OV_CALLBACKS_DEFAULT, &OV_CALLBACKS_NOCLOSE,
+ &OV_CALLBACKS_STREAMONLY, &OV_CALLBACKS_STREAMONLY_NOCLOSE,
+};
File::File()
{
BC_WindowBase *parent_window = format->window;
//ArrayList<PluginServer*> *plugindb = format->plugindb;
Asset *asset = format->asset;
- const char *locked_compressor = format->locked_compressor;
getting_options = 1;
format_completion->lock("File::get_options");
audio_options,
video_options);
break;
- case FILE_MOV:
- FileMOV::get_parameters(parent_window,
- asset,
- format_window,
- audio_options,
- video_options,
- locked_compressor);
- break;
case FILE_FFMPEG:
FileFFMPEG::get_parameters(parent_window,
asset,
audio_options,
video_options);
break;
- case FILE_AVI:
- FileMOV::get_parameters(parent_window,
- asset,
- format_window,
- audio_options,
- video_options,
- locked_compressor);
- break;
- case FILE_AVI_LAVTOOLS:
- case FILE_AVI_ARNE2:
- case FILE_AVI_ARNE1:
- case FILE_AVI_AVIFILE:
- FileAVI::get_parameters(parent_window,
- asset,
- format_window,
- audio_options,
- video_options,
- locked_compressor);
- break;
case FILE_JPEG:
case FILE_JPEG_LIST:
FileJPEG::get_parameters(parent_window,
if(!format_window)
{
- ErrorBox *errorbox = new ErrorBox(PROGRAM_NAME ": Error",
+ ErrorBox *errorbox = new ErrorBox(_(PROGRAM_NAME ": Error"),
parent_window->get_abs_cursor_x(1),
parent_window->get_abs_cursor_y(1));
format_window = errorbox;
buffer,
buffer_size);
delete [] buffer;
- delete [] string;
+ free(string);
//printf("File::open_file %d\n", __LINE__);
// Get the updated asset from the fork
fclose(stream);
return FILE_IS_XML;
} // can't load project file
- if(FileMOV::check_sig(this->asset)) {
-// MOV file
-// should be last because quicktime lacks a magic number
- fclose(stream);
- file = new FileMOV(this->asset, this);
- break;
- }
if( !preferences->ffmpeg_early_probe &&
FileFFMPEG::check_sig(this->asset) ) {
fclose(stream);
file = new FileDB(this->asset, this);
break;
- case FILE_MOV:
- file = new FileMOV(this->asset, this);
- break;
-
case FILE_MPEG:
case FILE_AMPEG:
case FILE_VMPEG:
file = new FileVorbis(this->asset, this);
break;
- case FILE_AVI:
- file = new FileMOV(this->asset, this);
- break;
-
- case FILE_AVI_LAVTOOLS:
- case FILE_AVI_ARNE2:
- case FILE_AVI_ARNE1:
- case FILE_AVI_AVIFILE:
- file = new FileAVI(this->asset, this);
- break;
-
case FILE_RAWDV:
file = new FileDV(this->asset, this);
break;
// Reopen file with correct parser and get header.
if(file->open_file(rd, wr)) {
- delete file;
+ delete file; file = 0;
return FILE_NOT_FOUND;
}
if( rd ) {
// one frame image file, no specific length
if( !this->asset->audio_data && this->asset->video_data &&
- this->asset->video_length == 1 )
+ this->asset->video_length <= 1 )
this->asset->video_length = -1;
}
// printf("File::read_frame %d\n", __LINE__);
temp_frame->copy_stacks(frame);
- file->read_frame(temp_frame);
+ int result = file->read_frame(temp_frame);
+ if( result && frame->get_status() > 0 )
+ frame->set_status(-1);
//for(int i = 0; i < 1000 * 1000; i++) ((float*)temp_frame->get_rows()[0])[i] = 1.0;
// printf("File::read_frame %d %d %d %d %d %d\n",
// temp_frame->get_color_model(),
{
// Can't advance position here because it needs to be added to cache
//printf("File::read_frame %d\n", __LINE__);
- file->read_frame(frame);
+ int result = file->read_frame(frame);
+ if( result && frame->get_status() > 0 )
+ frame->set_status(-1);
//for(int i = 0; i < 100 * 1000; i++) ((float*)frame->get_rows()[0])[i] = 1.0;
}
if(!strcasecmp(format, _(VMPEG_NAME))) return FILE_VMPEG;
if(!strcasecmp(format, _(TGA_NAME))) return FILE_TGA;
if(!strcasecmp(format, _(TGA_LIST_NAME))) return FILE_TGA_LIST;
- if(!strcasecmp(format, _(MOV_NAME))) return FILE_MOV;
- if(!strcasecmp(format, _(AVI_NAME))) return FILE_AVI;
- if(!strcasecmp(format, _(AVI_LAVTOOLS_NAME))) return FILE_AVI_LAVTOOLS;
- if(!strcasecmp(format, _(AVI_ARNE2_NAME))) return FILE_AVI_ARNE2;
- if(!strcasecmp(format, _(AVI_ARNE1_NAME))) return FILE_AVI_ARNE1;
- if(!strcasecmp(format, _(AVI_AVIFILE_NAME))) return FILE_AVI_AVIFILE;
if(!strcasecmp(format, _(OGG_NAME))) return FILE_OGG;
if(!strcasecmp(format, _(VORBIS_NAME))) return FILE_VORBIS;
if(!strcasecmp(format, _(RAWDV_NAME))) return FILE_RAWDV;
case FILE_TGA_LIST: return _(TGA_LIST_NAME);
case FILE_TIFF: return _(TIFF_NAME);
case FILE_TIFF_LIST: return _(TIFF_LIST_NAME);
- case FILE_MOV: return _(MOV_NAME);
- case FILE_AVI_LAVTOOLS: return _(AVI_LAVTOOLS_NAME);
- case FILE_AVI: return _(AVI_NAME);
- case FILE_AVI_ARNE2: return _(AVI_ARNE2_NAME);
- case FILE_AVI_ARNE1: return _(AVI_ARNE1_NAME);
- case FILE_AVI_AVIFILE: return _(AVI_AVIFILE_NAME);
case FILE_OGG: return _(OGG_NAME);
case FILE_VORBIS: return _(VORBIS_NAME);
case FILE_RAWDV: return _(RAWDV_NAME);
case FILE_FFMPEG: return _(FFMPEG_NAME);
case FILE_DB: return _(DBASE_NAME);
}
- return "Unknown";
+ return _("Unknown");
}
int File::strtobits(const char *bits)
if(!strcasecmp(bits, _(NAME_ULAW))) return BITSULAW;
if(!strcasecmp(bits, _(NAME_ADPCM))) return BITS_ADPCM;
if(!strcasecmp(bits, _(NAME_FLOAT))) return BITSFLOAT;
- if(!strcasecmp(bits, _(NAME_IMA4))) return BITSIMA4;
return BITSLINEAR16;
}
case BITSULAW: return (NAME_ULAW);
case BITS_ADPCM: return (NAME_ADPCM);
case BITSFLOAT: return (NAME_FLOAT);
- case BITSIMA4: return (NAME_IMA4);
}
- return "Unknown";
+ return _("Unknown");
}
case BITSLINEAR24: return 3;
case BITSLINEAR32: return 4;
case BITSULAW: return 1;
- case BITSIMA4: return 1;
}
return 1;
}
switch(asset->format)
{
case FILE_RAWDV: return FileDV::get_best_colormodel(asset, driver);
- case FILE_MOV: return FileMOV::get_best_colormodel(asset, driver);
- case FILE_AVI: return FileMOV::get_best_colormodel(asset, driver);
case FILE_MPEG: return FileMPEG::get_best_colormodel(asset, driver);
case FILE_JPEG:
case FILE_JPEG_LIST: return FileJPEG::get_best_colormodel(asset, driver);
switch(format)
{
case FILE_OGG:
- case FILE_MOV:
case FILE_JPEG:
case FILE_JPEG_LIST:
case FILE_CR2:
case FILE_TIFF:
case FILE_TIFF_LIST:
case FILE_VMPEG:
- case FILE_AVI_LAVTOOLS:
- case FILE_AVI_ARNE2:
- case FILE_AVI:
- case FILE_AVI_ARNE1:
- case FILE_AVI_AVIFILE:
case FILE_FFMPEG:
case FILE_RAWDV:
return 1;
case FILE_FLAC:
case FILE_PCM:
case FILE_WAV:
- case FILE_MOV:
case FILE_OGG:
case FILE_VORBIS:
case FILE_AMPEG:
case FILE_AU:
case FILE_AIFF:
case FILE_SND:
- case FILE_AVI:
- case FILE_AVI_LAVTOOLS:
- case FILE_AVI_ARNE2:
- case FILE_AVI_ARNE1:
- case FILE_AVI_AVIFILE:
case FILE_FFMPEG:
return 1;
}
case FILE_AIFF: return "aif";
case FILE_AMPEG: return "mp3";
case FILE_AU: return "au";
- case FILE_AVI: return "avi";
case FILE_RAWDV: return "dv";
case FILE_DB: return "db";
case FILE_EXR: return "exr";
case FILE_FLAC: return "flac";
case FILE_JPEG: return "jpg";
case FILE_JPEG_LIST: return "jpg";
- case FILE_MOV: return "mov/mp4";
case FILE_OGG: return "ogg";
case FILE_PCM: return "pcm";
case FILE_PNG: return "png";
case FILE_VMPEG: return "m2v";
case FILE_VORBIS: return "ogg";
case FILE_WAV: return "wav";
- case FILE_FFMPEG: return "media";
+ case FILE_FFMPEG: return "ffmpg";
}
return 0;
}
switch(format) {
case FILE_PCM: return "PCM";
case FILE_WAV: return "WAV";
- case FILE_MOV: return "MOV";
case FILE_PNG: return "PNG";
case FILE_JPEG: return "JPEG";
case FILE_TIFF: return "TIFF";
case FILE_AU: return "AU";
case FILE_AIFF: return "AIFF";
case FILE_SND: return "SND";
- case FILE_AVI_LAVTOOLS: return "AVI_LAVTOOLS";
case FILE_TGA_LIST: return "TGA_LIST";
case FILE_TGA: return "TGA";
case FILE_MPEG: return "MPEG";
case FILE_AMPEG: return "AMPEG";
case FILE_VMPEG: return "VMPEG";
case FILE_RAWDV: return "RAWDV";
- case FILE_AVI_ARNE2: return "AVI_ARNE2";
- case FILE_AVI_ARNE1: return "AVI_ARNE1";
- case FILE_AVI_AVIFILE: return "AVI_AVIFILE";
case FILE_TIFF_LIST: return "TIFF_LIST";
case FILE_PNG_LIST: return "PNG_LIST";
- case FILE_AVI: return "AVI";
case FILE_AC3: return "AC3";
case FILE_EXR: return "EXR";
case FILE_EXR_LIST: return "EXR_LIST";
case FILE_GIF_LIST: return "GIF_LIST";
case FILE_DB: return "DB";
}
- return "UNKNOWN";
+ return _("UNKNOWN");
}
}
+void get_exe_path(char *result)
+{
+// Get executable path
+ pid_t pid = getpid();
+ char proc_path[BCTEXTLEN];
+ int len = 0;
+ result[0] = 0;
+ sprintf(proc_path, "/proc/%d/exe", pid);
+ if((len = readlink(proc_path, result, BCTEXTLEN)) >= 0)
+ {
+ result[len] = 0;
+//printf("Preferences::Preferences %d %s\n", __LINE__, result);
+ char *ptr = strrchr(result, '/');
+ if(ptr) *ptr = 0;
+ }
+
+}
+
+