mostly DPX list read inclusion
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / file.inc
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2010 Adam Williams <broadcast at earthling dot net>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  */
21
22 #ifndef FILE_INC
23 #define FILE_INC
24
25 // Normally, these are sourced from the compiler command line
26 //   as: c++ -Dvar=value defines
27 #ifndef CIN_CONFIG
28 #define CIN_CONFIG "~/.bcast5"
29 #endif
30 #ifndef LOCALE_DIR
31 #define LOCALE_DIR "$CIN_LIB/locale"
32 #endif
33 #ifndef CINDAT_DIR
34 #define CINDAT_DIR "$CIN_PATH"
35 #endif
36 #ifndef CINLIB_DIR
37 #define CINLIB_DIR "$CIN_PATH"
38 #endif
39 #ifndef PLUGIN_DIR
40 #define PLUGIN_DIR "$CIN_LIB/plugins"
41 #endif
42 #ifndef LADSPA_DIR
43 #define LADSPA_DIR "$CIN_LIB/ladspa"
44 #endif
45 #ifndef CIN_BROWSER
46 #define CIN_BROWSER "firefox"
47 #endif
48
49 #include "language.h"
50
51 // Return values for open_file
52 #define FILE_OK 0
53 #define FILE_NOT_FOUND 1
54 #define FILE_UNRECOGNIZED_CODEC 2
55 #define FILE_IS_XML 3
56 #define FILE_SIZE_DONT_MATCH 4
57
58 // Numeric codes for each file format
59 // They're stored in XML files, so they have to be fixed.
60 #define FILE_PLUGIN             0x8000
61 #define FILE_UNKNOWN            0
62 // Libzmpeg3 decoding and transport stream capture only
63 #define FILE_PCM                1
64 #define FILE_WAV                2
65 #define FILE_PNG                4
66 #define FILE_JPEG               5
67 #define FILE_TIFF               6
68 #define FILE_GIF                7
69 #define FILE_JPEG_LIST          8
70 #define FILE_AU                 9
71 #define FILE_AIFF               10
72 #define FILE_SND                11
73 #define FILE_TGA_LIST           13
74 #define FILE_TGA                14
75 #define FILE_MPEG               15
76 #define FILE_AMPEG              16    // For encoding only
77 #define FILE_VMPEG              17    // For encoding only
78 #define FILE_RAWDV              18
79 #define FILE_TIFF_LIST          22
80 #define FILE_PNG_LIST           23
81 #define FILE_AC3                25    // AC3 encoding
82 #define FILE_EXR                26
83 #define FILE_EXR_LIST           27
84 #define FILE_CR2                28
85 #define FILE_OGG                30
86 #define FILE_VORBIS             31
87 #define FILE_FLAC               32
88 #define FILE_FFMPEG             33
89 #define FILE_SCENE              34
90 #define FILE_CR2_LIST           35
91 #define FILE_GIF_LIST           36
92 #define FILE_DB                 37
93 #define FILE_PPM                38
94 #define FILE_PPM_LIST           39
95 #define FILE_REF                40
96 #define FILE_DPX                41
97 #define FILE_DPX_LIST           42
98
99 // For formats supported by plugins, the format number is the plugin number in the
100 // plugin list ORed with 0x8000.
101
102 #if 0
103 N_("AC3")
104 N_("Apple/SGI AIFF")
105 N_("AVI Arne Type 1")
106 N_("AVI Avifile")
107 N_("AVI DV Type 2")
108 N_("AVI Lavtools")
109 N_("EXR")
110 N_("EXR Sequence")
111 N_("FFMPEG")
112 N_("FLAC")
113 N_("GIF")
114 N_("GIF Sequence")
115 N_("JPEG")
116 N_("JPEG Sequence")
117 N_("Microsoft WAV")
118 N_("MPEG Audio")    // For encoding only
119 N_("MPEG")          // For decoding only
120 N_("MPEG Video")    // For encoding only
121 N_("OGG Theora/Vorbis")
122 N_("OGG Vorbis")    // For decoding only
123 N_("PNG")
124 N_("PNG Sequence")
125 N_("PPM")
126 N_("PPM Sequence")
127 N_("Raw DV")
128 N_("Raw PCM")
129 N_("Sun/NeXT AU")
130 N_("TGA")
131 N_("TGA Sequence")
132 N_("TIFF")
133 N_("TIFF Sequence")
134 N_("Unknown sound")
135 N_("Reference to EDL")
136 #endif
137
138 #define AC3_NAME                "AC3"
139 #define AIFF_NAME               "Apple/SGI AIFF"
140 #define AMPEG_NAME              "MPEG Audio"    // For encoding only
141 #define AU_NAME                 "Sun/NeXT AU"
142 #define AVI_ARNE1_NAME          "AVI Arne Type 1"
143 #define AVI_ARNE2_NAME          "AVI DV Type 2"
144 #define AVI_AVIFILE_NAME        "AVI Avifile"
145 #define AVI_LAVTOOLS_NAME       "AVI Lavtools"
146 #define CR2_LIST_NAME           "CR2 Sequence"
147 #define CR2_NAME                "Raw Camera"
148 #define DBASE_NAME              "DB"
149 #define EXR_LIST_NAME           "EXR Sequence"
150 #define EXR_NAME                "EXR"
151 #define FFMPEG_NAME             "FFMPEG"
152 #define FLAC_NAME               "FLAC"
153 #define GIF_NAME                "GIF"
154 #define GIF_LIST_NAME           "GIF Sequence"
155 #define JPEG_LIST_NAME          "JPEG Sequence"
156 #define JPEG_NAME               "JPEG"
157 #define MPEG_NAME               "MPEG Stream"   // For capture only
158 #define OGG_NAME                "OGG Theora/Vorbis"
159 #define PCM_NAME                "Raw PCM"
160 #define PNG_LIST_NAME           "PNG Sequence"
161 #define PNG_NAME                "PNG"
162 #define PPM_LIST_NAME           "PPM Sequence"
163 #define PPM_NAME                "PPM"
164 #define RAWDV_NAME              "Raw DV"
165 #define SCENE_NAME              "Text To Movie"
166 #define SND_NAME                "Unknown sound"
167 #define TGA_LIST_NAME           "TGA Sequence"
168 #define TGA_NAME                "TGA"
169 #define TIFF_LIST_NAME          "TIFF Sequence"
170 #define TIFF_NAME               "TIFF"
171 #define VMPEG_NAME              "MPEG Video"    // For encoding only
172 #define VORBIS_NAME             "OGG Vorbis"
173 #define WAV_NAME                "Microsoft WAV"
174 #define REF_NAME                "Reference EDL"
175 #define DPX_NAME                "DPX"
176 #define DPX_LIST_NAME           "DPX Sequence"
177
178 #define BITSLINEAR8    8
179 #define BITSLINEAR16   16
180 #define BITSLINEAR24   24
181 #define BITSLINEAR32   32
182 #define BITS_ADPCM     252
183 #define BITSFLOAT      253
184 #define BITSULAW       254
185
186 #if 0
187 N_("8 Bit Linear")
188 N_("16 Bit Linear")
189 N_("24 Bit Linear")
190 N_("32 Bit Linear")
191 N_("u Law")
192 N_("IMA 4")
193 N_("ADPCM")
194 N_("Float")
195
196 N_("RGB ALPHA")
197 N_("PNG ALPHA")
198 #endif
199
200 #define NAME_8BIT "8 Bit Linear"
201 #define NAME_16BIT "16 Bit Linear"
202 #define NAME_24BIT "24 Bit Linear"
203 #define NAME_32BIT "32 Bit Linear"
204 #define NAME_ULAW "u Law"
205 #define NAME_ADPCM "ADPCM"
206 #define NAME_FLOAT "Float"
207
208
209 class File;
210 //result<0: continue skimming, result>=0: exit return code
211 typedef int (*skim_fn)(void *vp, int track);
212
213 #endif