anonymous contribution for much improved ChromakeyHSV plugin menu with boxes to set...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / asset.h
index c853d7adfdc7cae06d2fdeeec749de9fc171ec02..90b43524b4aade86f80423a2d8669d03e28555f5 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * CINELERRA
  * Copyright (C) 2010 Adam Williams <broadcast at earthling dot net>
+ * Copyright (C) 2003-2016 Cinelerra CV contributors
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 #include "pluginserver.inc"
 
 
-// Time code formats
-#define TC_DROPFRAME 0
-#define TC_NONDROPFRAME 1
-#define TC_PAL 2
-#define TC_FILM 3
-
 class Asset : public Indexable, public ListItem<Asset>
 {
 public:
@@ -93,6 +88,7 @@ public:
                int expand_relative = 1);
        int read_audio(FileXML *xml);
        int read_video(FileXML *xml);
+       int read_format(FileXML *xml);
        int read_index(FileXML *xml);
        void reset_audio();
        void reset_video();
@@ -146,14 +142,16 @@ public:
 
        int actual_width, actual_height;
        int width, height;
+// scale factor or 0 if not proxy, proxy_edl if proxyed from nested_edl
+       int proxy_scale, proxy_edl;
 // String or FourCC describing compression
        char vcodec[BCTEXTLEN];
 
 // Length in frames
 // -1 means a still photo
        int64_t video_length;
-
-
+// timecode, unknown=-2, no timecode=-1, timecode>=0 
+       double timecode;
 
 // mp3 compression
        int mp3_bitrate;
@@ -163,16 +161,30 @@ public:
 // 2 - 3
        int ampeg_derivative;
 
+// Vorbis compression
+       int vorbis_min_bitrate;
+       int vorbis_bitrate;
+       int vorbis_max_bitrate;
+       int vorbis_vbr;
+
+// Theora compression
+       int theora_fix_bitrate;
+       int theora_bitrate;
+       int theora_quality;
+       int theora_sharpness;
+       int theora_keyframe_frequency;
+       int theora_keyframe_force_frequency;
+
+
 // Set by package render during file creation. -1 means square pixels.
        double aspect_ratio;
 
 // for the interlace mode
-       int interlace_autofixoption;
        int interlace_mode;
-       int interlace_fixmethod;
 // for jpeg compression
        int jpeg_quality;
 
+
 // for mpeg video compression
        int vmpeg_iframe_distance;
        int vmpeg_progressive;
@@ -191,18 +203,21 @@ public:
        int vmpeg_field_order;
        int vmpeg_pframe_distance;
 
-// ffmpeg muxer file extension
+// ffmpeg
        char fformat[BCSTRLEN];
+       char ff_format_options[BCTEXTLEN];
        char ff_video_options[BCTEXTLEN];
        char ff_pixel_format[BCSTRLEN];
        int ff_video_bitrate, ff_video_quality;
+       int ff_color_space, ff_color_range;
        char ff_audio_options[BCTEXTLEN];
        char ff_sample_format[BCSTRLEN];
        int ff_audio_bitrate, ff_audio_quality;
 
 // PNG video compression
        int png_use_alpha;
-
+       int png_depth;
+       int png_compression;
 // EXR video compression
        int exr_use_alpha;
        int exr_compression;
@@ -210,9 +225,10 @@ public:
 // TIFF video compression.  An enumeration from filetiff.h
        int tiff_cmodel;
        int tiff_compression;
-
+// AC3 bitrate
        int ac3_bitrate;
-
+// FLAC compression
+       int flac_compression;
 // Insert tag for spherical playback
        int mov_sphere, jpeg_sphere;