1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
|
/*
* tc_defaults.h
*
* Copyright (C) Thomas Oestreich - June 2001
*
* This file is part of transcode, a video stream processing tool
*
* transcode is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* transcode is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <limits.h>
#ifndef TC_DEFAULTS_H
#define TC_DEFAULTS_H
#define TC_DEFAULT_MOD_PATH "/usr/local/lib/transcode"
#define TC_DEFAULT_IN_FILE "/dev/zero"
#define TC_DEFAULT_OUT_FILE "/dev/null"
// default PAL video size
#define PAL_W 720
#define PAL_H 576
#define BPP 24
#define PAL_FPS 25.0
#define MIN_FPS 1.0
#define NTSC_FILM ((double)(24000)/1001.0)
#define NTSC_VIDEO ((double)(30000)/1001.0)
//NTSC
#define NTSC_W 720
#define NTSC_H 480
//new max frame size:
#define TC_MAX_V_FRAME_WIDTH 2500
#define TC_MAX_V_FRAME_HEIGHT 2000
// max bytes per pixel
#define TC_MAX_V_BYTESPP 4
// audio defaults
#define RATE 48000
#define BITS 16
#define CHANNELS 2
#define SIZE_RGB_FRAME ((int) TC_MAX_V_FRAME_WIDTH*TC_MAX_V_FRAME_HEIGHT*(BPP/8))
#define SIZE_PCM_FRAME ((int) (RATE/MIN_FPS) * BITS/8 * CHANNELS * 3)
#define TC_PAD_AUD_FRAMES 10
#define TC_MAX_SEEK_BYTES (1<<20)
// DivX/MPEG-4 encoder defaults
#define VBITRATE 1800
#define VKEYFRAMES 250
#define VCRISPNESS 100
#define VMULTIPASS 0
#define VQUALITY 5
#define VMINQUANTIZER 2
#define VMAXQUANTIZER 31
#define VQUANTIZER 10
#define RC_PERIOD 2000
#define RC_REACTION_PERIOD 10
#define RC_REACTION_RATIO 20
// Divx5 VBV (Video Bitrate Verifier)
// Home theatre profile and settings
#define DIVX5_VBV_PROFILE 3
#define DIVX5_VBV_BITRATE (4000000/400)
#define DIVX5_VBV_SIZE (3145728/16384)
#define DIVX5_VBV_OCCUPANCY (2359296/64)
//----------------------------------
#define ABITRATE 128
#define AQUALITY 5
#define AVBR 0
#define AMODE 0
typedef enum tcdebugmode_ TCDebugMode;
enum tcdebugmode_ {
TC_QUIET = 0,
TC_INFO = 1,
TC_DEBUG = 2,
TC_STATS = 4,
TC_CLEANUP = 8,
TC_FLIST = 16,
TC_SYNC = 32,
TC_COUNTER = 64,
TC_PRIVATE = 128,
TC_THREADS = 256,
TC_WATCH = 512,
};
//import/export/filter frame buffer status flag
#define TC_NONE 0
#define TC_VIDEO 1
#define TC_AUDIO 2
#define TC_SUBEX 4
#define TC_RESERVED 8
#define TC_EXTRA 16
#define TC_FILTER_INIT 16
#define TC_PRE_S_PROCESS 32
#define TC_PRE_M_PROCESS 64
#define TC_INT_M_PROCESS 128
#define TC_POST_M_PROCESS 256
#define TC_POST_S_PROCESS 512
#define TC_PREVIEW 1024
#define TC_FILTER_CLOSE 2048
#define TC_FILTER_GET_CONFIG 4096
#define TC_IMPORT 8192
#define TC_EXPORT 16384
#define TC_DELAY_MAX 40000
#define TC_DELAY_MIN 10000
#define TC_DEFAULT_IMPORT_AUDIO "null"
#define TC_DEFAULT_IMPORT_VIDEO "null"
#define TC_DEFAULT_EXPORT_AUDIO "null"
#define TC_DEFAULT_EXPORT_VIDEO "null"
#define TC_DEFAULT_EXPORT_MPLEX "null"
#define TC_FRAME_BUFFER 10
#define TC_FRAME_THREADS 1
#define TC_FRAME_THREADS_MAX 32
#define TC_FRAME_FIRST 0
#define TC_FRAME_LAST INT_MAX
#define TC_LEAP_FRAME 1000
#define TC_MAX_AUD_TRACKS 32
//--------------------------------------------------
#define CODEC_NULL 0x0
#define CODEC_RGB 1
#define CODEC_YUV 2
#define CODEC_MP4 4
#define CODEC_YUY2 8
#define CODEC_DV 16
#define CODEC_RAW 32
#define CODEC_RAW_RGB 64
#define CODEC_RAW_YUV 128
#define CODEC_YUV422 256
#define CODEC_PCM 0x1
#define CODEC_AC3 0x2000
#define CODEC_MP2 0x50
#define CODEC_MP3 0x55
#define CODEC_DIVX 0x161
#define CODEC_IMA4 0x11
#define CODEC_LPCM 0x10001
#define CODEC_DTS 0x1000F //??
#define CODEC_VORBIS 0xfffe
#define CODEC_VAG 0xfeed //me pizza
#define TC_INFO_NO_DEMUX 1
#define TC_INFO_MPEG_PS 2
#define TC_INFO_MPEG_ES 4
#define TC_INFO_MPEG_PES 8
#define TC_FRAME_DV_PAL 144000
#define TC_FRAME_DV_NTSC 120000
#define TC_SUBTITLE_HDRMAGIC 0x00030001
#define TC_DEFAULT_AAWEIGHT (1.0f/3.0f)
#define TC_DEFAULT_AABIAS (0.5f)
#define TC_A52_DRC_OFF 1
#define TC_A52_DEMUX 2
#define TC_A52_DOLBY_OFF 4
#define AVI_FILE_LIMIT 2048
#define M2V_REQUANT_FACTOR 1.00f
/*
* flags used in modules for supporting export profiles (--export_prof)
* if one of those flag is set, then use the value provided by the user.
* otherwise use the ones the export modules suggests.
*/
typedef enum tcexportattribute_ TCExportAttribute;
enum tcexportattribute_ {
TC_EXPORT_ATTRIBUTE_NONE = ( 0),
TC_EXPORT_ATTRIBUTE_VBITRATE = (1<< 1), /* -w */
TC_EXPORT_ATTRIBUTE_ABITRATE = (1<< 2), /* -b */
TC_EXPORT_ATTRIBUTE_FIELDS = (1<< 3), /* --encode_fields */
TC_EXPORT_ATTRIBUTE_VMODULE = (1<< 4), /* -y X,* */
TC_EXPORT_ATTRIBUTE_AMODULE = (1<< 5), /* -y *,X */
TC_EXPORT_ATTRIBUTE_FRC = (1<< 6), /* --export_fps *,X */
TC_EXPORT_ATTRIBUTE_FPS = (1<< 7), /* --export_fps X,* */
TC_EXPORT_ATTRIBUTE_VCODEC = (1<< 8), /* -F */
TC_EXPORT_ATTRIBUTE_ACODEC = (1<< 9), /* -N */
TC_EXPORT_ATTRIBUTE_ARATE = (1<<10), /* -E X,*,* */
TC_EXPORT_ATTRIBUTE_ABITS = (1<<11), /* -E *,X,* */
TC_EXPORT_ATTRIBUTE_ACHANS = (1<<12), /* -E *,*,X */
TC_EXPORT_ATTRIBUTE_ASR = (1<<13), /* --export_asr */
TC_EXPORT_ATTRIBUTE_PAR = (1<<14), /* --export_par */
TC_EXPORT_ATTRIBUTE_GOP = (1<<15), /* key frames */
};
#endif /* TC_DEFAULTS_H */
|