4 * Copyright (C) 2010 Adam Williams <broadcast at earthling dot net>
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.
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.
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
25 // Normally, these are sourced from the compiler command line
26 // as: c++ -Dvar=value defines
28 #define CIN_CONFIG "~/.bcast5"
31 #define LOCALE_DIR "$CIN_LIB/locale"
34 #define CINDAT_DIR "$CIN_PATH"
37 #define CINLIB_DIR "$CIN_PATH"
40 #define PLUGIN_DIR "$CIN_LIB/plugins"
43 #define LADSPA_DIR "$CIN_LIB/ladspa"
46 #define CIN_BROWSER "firefox"
51 // Return values for open_file
53 #define FILE_NOT_FOUND 1
54 #define FILE_UNRECOGNIZED_CODEC 2
56 #define FILE_SIZE_DONT_MATCH 4
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
69 #define FILE_JPEG_LIST 8
73 #define FILE_TGA_LIST 13
76 #define FILE_AMPEG 16 // For encoding only
77 #define FILE_VMPEG 17 // For encoding only
79 #define FILE_TIFF_LIST 22
80 #define FILE_PNG_LIST 23
81 #define FILE_AC3 25 // AC3 encoding
83 #define FILE_EXR_LIST 27
86 #define FILE_VORBIS 31
88 #define FILE_FFMPEG 33
90 #define FILE_CR2_LIST 35
91 #define FILE_GIF_LIST 36
94 #define FILE_PPM_LIST 39
97 #define FILE_DPX_LIST 42
99 // For formats supported by plugins, the format number is the plugin number in the
100 // plugin list ORed with 0x8000.
105 N_("AVI Arne Type 1")
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
135 N_("Reference to EDL")
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"
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
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"
210 //result<0: continue skimming, result>=0: exit return code
211 typedef int (*skim_fn)(void *vp, int track);