yuv colorspace/range + prefs, ffmpeg colorrange probe, x11 direct force colormodel...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / file.h
index 5231a9b3bfefad2b2dba400693490bc900f104ea..779b3d1efea32902306bc09bc0bd1b07c6cf0521 100644 (file)
@@ -58,6 +58,7 @@ public:
        File();
        ~File();
 
+       int probe();
 // Get attributes for various file formats.
 // The dither parameter is carried over from recording, where dither is done at the device.
        int get_options(FormatTools *format,
@@ -85,8 +86,9 @@ public:
 // to delete the file object.  Otherwise we'd delete just the cached frames
 // while the list of open files grew.
        void set_cache_frames(int value);
-// Delete frame cache.  Return 0 if successful.  Return 1 if
-// nothing to delete.
+// Delete oldest frame from cache.
+// Return number of bytes freed if successful.
+// Return 0 if nothing to delete.
        int purge_cache();
 // Delete oldest frame from cache.  Return 0 if successful.  Return 1 if
 // nothing to delete.
@@ -226,7 +228,7 @@ public:
 // allocated.
 // Get best colormodel to translate for hardware accelerated playback.
 // Called by VRender.
-       int get_best_colormodel(int driver);
+       int get_best_colormodel(int driver, int vstream=-1);
 // Get best colormodel for hardware accelerated recording.
 // Called by VideoDevice.
        static int get_best_colormodel(Asset *asset, int driver);
@@ -245,17 +247,16 @@ public:
 // The minimum setting for cache_size should be bigger than 1MB.
        int64_t get_memory_usage();
 
-       static int supports_video(ArrayList<PluginServer*> *plugindb, char *format);   // returns 1 if the format supports video or audio
-       static int supports_audio(ArrayList<PluginServer*> *plugindb, char *format);
+       static int renders_video(int format);
+       static int renders_video(Asset *asset);
+       static int renders_audio(int format);
+       static int renders_audio(Asset *asset);
 // Get the extension for the filename
        static const char* get_tag(int format);
        static const char* get_prefix(int format);
-       static int supports_video(int format);   // returns 1 if the format supports video or audio
-       static int supports_audio(int format);
        static int strtoformat(const char *format);
        static const char* formattostr(int format);
-       static int strtoformat(ArrayList<PluginServer*> *plugindb, const char *format);
-       static const char* formattostr(ArrayList<PluginServer*> *plugindb, int format);
+       static int is_image_render(int format);
        static int strtobits(const char *bits);
        static const char* bitstostr(int bits);
        static int str_to_byteorder(const char *string);
@@ -313,6 +314,28 @@ public:
        int wr, rd;
        static PackagingEngine *new_packaging_engine(Asset *asset);
 
+       static void init_cin_path();
+       static void get_exe_path(char *result, char *bnp=0);
+       static void getenv_path(char *result, const char *path);
+       static void setenv_path(char *result, const char *var, const char *path);
+       static char cinexe_path[BCTEXTLEN], cinpkg_path[BCTEXTLEN];
+       static char cindat_path[BCTEXTLEN], cinlib_path[BCTEXTLEN];
+       static char cincfg_path[BCTEXTLEN], cinplg_path[BCTEXTLEN];
+       static char cinlad_path[BCTEXTLEN], cinlcl_path[BCTEXTLEN];
+       static char cinbwr_path[BCTEXTLEN];
+       static const char *get_cin() { return getenv("CIN_PKG"); }
+       static const char *get_cin_path() { return getenv("CIN_PATH"); }
+       static const char *get_cindat_path() { return getenv("CIN_DAT"); }
+       static const char *get_cinlib_path() { return getenv("CIN_LIB"); }
+       static const char *get_config_path() { return getenv("CIN_CONFIG"); }
+       static const char *get_plugin_path() { return getenv("CIN_PLUGIN"); }
+       static const char *get_ladspa_path() { return getenv("CIN_LADSPA"); }
+       static const char *get_locale_path() { return getenv("CIN_LOCALE"); }
+       static const char *get_browser_path() { return getenv("CIN_BROWSER"); }
+
+       static const char *default_probes[];
+       static const int nb_probes;
+
 private:
        void reset_parameters();