summaryrefslogtreecommitdiffstats
path: root/debian/transcode/transcode-1.1.7/src/tc_defaults.h
blob: 801aeae5d8784940ea3db9d3da0425069e241c04 (plain)
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 */