annotate cfg-mencoder.h @ 6584:07b8c8a03503

some cleanup, buggy->crashing, better info/comments
author arpi
date Fri, 28 Jun 2002 09:33:38 +0000
parents e7c244db6174
children 6cfc8fd31299
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2618
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
1 /*
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
2 * config for cfgparser
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
3 */
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
4
2790
98769cea155c added tv subsystem
alex
parents: 2661
diff changeset
5 #include "cfg-common.h"
98769cea155c added tv subsystem
alex
parents: 2661
diff changeset
6
2618
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
7 #ifdef USE_FAKE_MONO
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
8 extern int fakemono; // defined in dec_audio.c
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
9 #endif
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
10 #ifdef HAVE_ODIVX_POSTPROCESS
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
11 extern int use_old_pp;
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
12 #endif
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
13
3272
7e4399d1eb65 horizontal up/downscale linear & cubic
michael
parents: 3236
diff changeset
14 extern int sws_flags;
3771
a14b3a600b81 new -pp options stuff (-npp ...)
michael
parents: 3663
diff changeset
15 extern int readPPOpt(void *, char *arg);
4256
bbaa26821fdf Added reverting support for -aa* -zr* -pp and -npp options
albeu
parents: 4207
diff changeset
16 extern int readNPPOpt(void *conf, char *arg);
bbaa26821fdf Added reverting support for -aa* -zr* -pp and -npp options
albeu
parents: 4207
diff changeset
17 extern void revertPPOpt(void *conf, char* opt);
3272
7e4399d1eb65 horizontal up/downscale linear & cubic
michael
parents: 3236
diff changeset
18
3663
9092546e7765 made divx4 optional (also configure checking needed) and added avcodec_close
alex
parents: 3657
diff changeset
19 #ifdef HAVE_DIVX4ENCORE
5553
38697931adf4 video codecs moved to libmpencoders, crop/scale removed, use -vop for that
arpi
parents: 5390
diff changeset
20 extern struct config divx4opts_conf[];
3663
9092546e7765 made divx4 optional (also configure checking needed) and added avcodec_close
alex
parents: 3657
diff changeset
21 #endif
2626
da9777831e1b divx4 and lame subconfig support
arpi
parents: 2618
diff changeset
22
6559
e7c244db6174 Added -user -pass options for http authentication.
bertrand
parents: 6084
diff changeset
23 #ifdef STREAMING
e7c244db6174 Added -user -pass options for http authentication.
bertrand
parents: 6084
diff changeset
24 /* defined in network.c */
e7c244db6174 Added -user -pass options for http authentication.
bertrand
parents: 6084
diff changeset
25 extern char *network_username;
e7c244db6174 Added -user -pass options for http authentication.
bertrand
parents: 6084
diff changeset
26 extern char *network_password;
e7c244db6174 Added -user -pass options for http authentication.
bertrand
parents: 6084
diff changeset
27 #endif
e7c244db6174 Added -user -pass options for http authentication.
bertrand
parents: 6084
diff changeset
28
3357
1fa5d7dda911 libmp3lame optional
arpi
parents: 3272
diff changeset
29 #ifdef HAVE_MP3LAME
2626
da9777831e1b divx4 and lame subconfig support
arpi
parents: 2618
diff changeset
30 struct config lameopts_conf[]={
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
31 {"q", &lame_param_quality, CONF_TYPE_INT, CONF_RANGE, 0, 9, NULL},
5922
30eea1bd1b64 fixed bogus overloaded "q" parameter for lame mp3 encoding
rfelker
parents: 5848
diff changeset
32 {"aq", &lame_param_algqual, CONF_TYPE_INT, CONF_RANGE, 0, 9, NULL},
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
33 {"vbr", &lame_param_vbr, CONF_TYPE_INT, CONF_RANGE, 0, vbr_max_indicator, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
34 {"cbr", &lame_param_vbr, CONF_TYPE_FLAG, 0, 0, 0, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
35 {"abr", &lame_param_vbr, CONF_TYPE_FLAG, 0, 0, vbr_abr, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
36 {"mode", &lame_param_mode, CONF_TYPE_INT, CONF_RANGE, 0, MAX_INDICATOR, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
37 {"padding", &lame_param_padding, CONF_TYPE_INT, CONF_RANGE, 0, PAD_MAX_INDICATOR, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
38 {"br", &lame_param_br, CONF_TYPE_INT, CONF_RANGE, 0, 1024, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
39 {"ratio", &lame_param_ratio, CONF_TYPE_INT, CONF_RANGE, 0, 100, NULL},
5848
48a0667742b9 volume setting with lame - patch by silicon@falcon.sch.bme.hu
arpi
parents: 5780
diff changeset
40 {"vol", &lame_param_scale, CONF_TYPE_FLOAT, CONF_RANGE, 0, 10, NULL},
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
41 {"help", "TODO: lameopts help!\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
42 {NULL, NULL, 0, 0, 0, 0, NULL}
2661
11f4c2b2b70f -oac/-ovc (fake:))
arpi
parents: 2643
diff changeset
43 };
3357
1fa5d7dda911 libmp3lame optional
arpi
parents: 3272
diff changeset
44 #endif
2661
11f4c2b2b70f -oac/-ovc (fake:))
arpi
parents: 2643
diff changeset
45
3657
af1f8e2d693a added libavcodec support (mjpeg,h263,rv10,mpeg1 codecs tested&working) and added -ffourcc option (force fourcc in ouput)
alex
parents: 3480
diff changeset
46 #ifdef USE_LIBAVCODEC
5553
38697931adf4 video codecs moved to libmpencoders, crop/scale removed, use -vop for that
arpi
parents: 5390
diff changeset
47 extern struct config lavcopts_conf[];
3657
af1f8e2d693a added libavcodec support (mjpeg,h263,rv10,mpeg1 codecs tested&working) and added -ffourcc option (force fourcc in ouput)
alex
parents: 3480
diff changeset
48 #endif
af1f8e2d693a added libavcodec support (mjpeg,h263,rv10,mpeg1 codecs tested&working) and added -ffourcc option (force fourcc in ouput)
alex
parents: 3480
diff changeset
49
af1f8e2d693a added libavcodec support (mjpeg,h263,rv10,mpeg1 codecs tested&working) and added -ffourcc option (force fourcc in ouput)
alex
parents: 3480
diff changeset
50 #ifdef USE_WIN32DLL
6084
b34f4ef001f0 vfwopts_conf has moved to vw_vfw.c
alex
parents: 5974
diff changeset
51 extern struct config vfwopts_conf[];
3657
af1f8e2d693a added libavcodec support (mjpeg,h263,rv10,mpeg1 codecs tested&working) and added -ffourcc option (force fourcc in ouput)
alex
parents: 3480
diff changeset
52 #endif
af1f8e2d693a added libavcodec support (mjpeg,h263,rv10,mpeg1 codecs tested&working) and added -ffourcc option (force fourcc in ouput)
alex
parents: 3480
diff changeset
53
2661
11f4c2b2b70f -oac/-ovc (fake:))
arpi
parents: 2643
diff changeset
54 struct config ovc_conf[]={
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
55 {"copy", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_COPY, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
56 {"frameno", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_FRAMENO, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
57 {"divx4", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_DIVX4, NULL},
5553
38697931adf4 video codecs moved to libmpencoders, crop/scale removed, use -vop for that
arpi
parents: 5390
diff changeset
58 // {"raw", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_RAW, NULL},
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
59 {"lavc", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_LIBAVCODEC, NULL},
5553
38697931adf4 video codecs moved to libmpencoders, crop/scale removed, use -vop for that
arpi
parents: 5390
diff changeset
60 // {"null", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_NULL, NULL},
4575
0245a06f9efd VfW encoding support (very alpha yet)
arpi
parents: 4427
diff changeset
61 {"rawrgb", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_RAWRGB, NULL},
0245a06f9efd VfW encoding support (very alpha yet)
arpi
parents: 4427
diff changeset
62 {"vfw", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_VFW, NULL},
5578
acfcb903b778 -ovc libdv support
arpi
parents: 5553
diff changeset
63 {"libdv", &out_video_codec, CONF_TYPE_FLAG, 0, 0, VCODEC_LIBDV, NULL},
5678
8849904de1db -ovc help fixed
arpi
parents: 5629
diff changeset
64 {"help", "\nAvailable codecs:\n copy\n frameno\n rawrgb\n"
8849904de1db -ovc help fixed
arpi
parents: 5629
diff changeset
65 #ifdef HAVE_DIVX4ENCORE
8849904de1db -ovc help fixed
arpi
parents: 5629
diff changeset
66 " divx4\n"
8849904de1db -ovc help fixed
arpi
parents: 5629
diff changeset
67 #endif
8849904de1db -ovc help fixed
arpi
parents: 5629
diff changeset
68 #ifdef USE_LIBAVCODEC
8849904de1db -ovc help fixed
arpi
parents: 5629
diff changeset
69 " lavc\n"
8849904de1db -ovc help fixed
arpi
parents: 5629
diff changeset
70 #endif
8849904de1db -ovc help fixed
arpi
parents: 5629
diff changeset
71 #ifdef USE_WIN32DLL
8849904de1db -ovc help fixed
arpi
parents: 5629
diff changeset
72 " vfw\n"
8849904de1db -ovc help fixed
arpi
parents: 5629
diff changeset
73 #endif
8849904de1db -ovc help fixed
arpi
parents: 5629
diff changeset
74 #ifdef HAVE_LIBDV095
8849904de1db -ovc help fixed
arpi
parents: 5629
diff changeset
75 " libdv\n"
8849904de1db -ovc help fixed
arpi
parents: 5629
diff changeset
76 #endif
8849904de1db -ovc help fixed
arpi
parents: 5629
diff changeset
77 "\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
78 {NULL, NULL, 0, 0, 0, 0, NULL}
2661
11f4c2b2b70f -oac/-ovc (fake:))
arpi
parents: 2643
diff changeset
79 };
11f4c2b2b70f -oac/-ovc (fake:))
arpi
parents: 2643
diff changeset
80
11f4c2b2b70f -oac/-ovc (fake:))
arpi
parents: 2643
diff changeset
81 struct config oac_conf[]={
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
82 {"copy", &out_audio_codec, CONF_TYPE_FLAG, 0, 0, ACODEC_COPY, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
83 {"pcm", &out_audio_codec, CONF_TYPE_FLAG, 0, 0, ACODEC_PCM, NULL},
3357
1fa5d7dda911 libmp3lame optional
arpi
parents: 3272
diff changeset
84 #ifdef HAVE_MP3LAME
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
85 {"mp3lame", &out_audio_codec, CONF_TYPE_FLAG, 0, 0, ACODEC_VBRMP3, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
86 {"help", "\nAvailable codecs:\n copy\n pcm\n mp3lame\n\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
3357
1fa5d7dda911 libmp3lame optional
arpi
parents: 3272
diff changeset
87 #else
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
88 {"mp3lame", "MPlayer was compiled without libmp3lame support!\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
89 {"help", "\nAvailable codecs:\n copy\n pcm\n\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
3357
1fa5d7dda911 libmp3lame optional
arpi
parents: 3272
diff changeset
90 #endif
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
91 {NULL, NULL, 0, 0, 0, 0, NULL}
2626
da9777831e1b divx4 and lame subconfig support
arpi
parents: 2618
diff changeset
92 };
da9777831e1b divx4 and lame subconfig support
arpi
parents: 2618
diff changeset
93
4162
ccd4cd552cfc 10l. gimme\!
arpi
parents: 4159
diff changeset
94 static config_t mencoder_opts[]={
2618
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
95 /* name, pointer, type, flags, min, max */
4158
479c7828edbb GLOBAL flags and other changes for new config - patch by Alban Bedel <albeu@free.fr>
arpi
parents: 4157
diff changeset
96 {"include", cfg_include, CONF_TYPE_FUNC_PARAM, CONF_NOSAVE, 0, 0, NULL}, /* this must be the first!!! */
2618
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
97
4159
42fec596fe7c -endpos option, patch by Fredrik Kuivinen <freku045@student.liu.se>
arpi
parents: 4158
diff changeset
98 {"endpos", parse_end_at, CONF_TYPE_FUNC_PARAM, 0, 0, 0, NULL},
5974
4396ead317d3 re-ordering options, add comemnts
arpi
parents: 5922
diff changeset
99
4396ead317d3 re-ordering options, add comemnts
arpi
parents: 5922
diff changeset
100 // set output framerate - recommended for variable fps (.asf etc) files
4396ead317d3 re-ordering options, add comemnts
arpi
parents: 5922
diff changeset
101 // and for 29.97fps progressive mpeg2 streams
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
102 {"ofps", &force_ofps, CONF_TYPE_FLOAT, CONF_MIN, 0, 0, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
103 {"o", &out_filename, CONF_TYPE_STRING, 0, 0, 0, NULL},
2626
da9777831e1b divx4 and lame subconfig support
arpi
parents: 2618
diff changeset
104
5974
4396ead317d3 re-ordering options, add comemnts
arpi
parents: 5922
diff changeset
105 // limit number of skippable frames after a non-skipped one
5629
9b422f216fb5 -skiplimit/-noskip options to disable fps correction
arpi
parents: 5626
diff changeset
106 {"skiplimit", &skip_limit, CONF_TYPE_INT, 0, 0, 0, NULL},
9b422f216fb5 -skiplimit/-noskip options to disable fps correction
arpi
parents: 5626
diff changeset
107 {"noskiplimit", &skip_limit, CONF_TYPE_FLAG, 0, 0, -1, NULL},
9b422f216fb5 -skiplimit/-noskip options to disable fps correction
arpi
parents: 5626
diff changeset
108 {"noskip", &skip_limit, CONF_TYPE_FLAG, 0, 0, 0, NULL},
9b422f216fb5 -skiplimit/-noskip options to disable fps correction
arpi
parents: 5626
diff changeset
109
5780
aae45ee17fc3 obsoleted options
arpi
parents: 5678
diff changeset
110 {"x", "This option is obsolete, use -vop scale=w:h for scaling\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
aae45ee17fc3 obsoleted options
arpi
parents: 5678
diff changeset
111 {"xsize", "This option is obsolete, use -vop crop=w:h:x0:y0 for cropping\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
5270
870e932096ff Support for cropping in mencoder. New options:
ksorim
parents: 5259
diff changeset
112
5974
4396ead317d3 re-ordering options, add comemnts
arpi
parents: 5922
diff changeset
113 // outut audio/video codec selection
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
114 {"oac", oac_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
115 {"ovc", ovc_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
2643
9d0a638e211a divx4 2-pass support, -frames option
arpi
parents: 2626
diff changeset
116
5974
4396ead317d3 re-ordering options, add comemnts
arpi
parents: 5922
diff changeset
117 // override FOURCC in output file
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
118 {"ffourcc", &force_fourcc, CONF_TYPE_STRING, 0, 4, 4, NULL},
3657
af1f8e2d693a added libavcodec support (mjpeg,h263,rv10,mpeg1 codecs tested&working) and added -ffourcc option (force fourcc in ouput)
alex
parents: 3480
diff changeset
119
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
120 {"pass", &pass, CONF_TYPE_INT, CONF_RANGE,0,2, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
121 {"passlogfile", &passtmpfile, CONF_TYPE_STRING, 0, 0, 0, NULL},
2626
da9777831e1b divx4 and lame subconfig support
arpi
parents: 2618
diff changeset
122
5390
386f6fcc92d5 libavcodec 2pass broke mencoder if divx4encore was not available. fixed.
rfelker
parents: 5376
diff changeset
123 #ifdef HAVE_DIVX4ENCORE
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
124 {"divx4opts", divx4opts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
3663
9092546e7765 made divx4 optional (also configure checking needed) and added avcodec_close
alex
parents: 3657
diff changeset
125 #endif
3357
1fa5d7dda911 libmp3lame optional
arpi
parents: 3272
diff changeset
126 #ifdef HAVE_MP3LAME
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
127 {"lameopts", lameopts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
3357
1fa5d7dda911 libmp3lame optional
arpi
parents: 3272
diff changeset
128 #endif
3657
af1f8e2d693a added libavcodec support (mjpeg,h263,rv10,mpeg1 codecs tested&working) and added -ffourcc option (force fourcc in ouput)
alex
parents: 3480
diff changeset
129 #ifdef USE_LIBAVCODEC
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
130 {"lavcopts", lavcopts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
3657
af1f8e2d693a added libavcodec support (mjpeg,h263,rv10,mpeg1 codecs tested&working) and added -ffourcc option (force fourcc in ouput)
alex
parents: 3480
diff changeset
131 #endif
af1f8e2d693a added libavcodec support (mjpeg,h263,rv10,mpeg1 codecs tested&working) and added -ffourcc option (force fourcc in ouput)
alex
parents: 3480
diff changeset
132 #ifdef USE_WIN32DLL
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
133 {"vfwopts", vfwopts_conf, CONF_TYPE_SUBCONFIG, 0, 0, 0, NULL},
3657
af1f8e2d693a added libavcodec support (mjpeg,h263,rv10,mpeg1 codecs tested&working) and added -ffourcc option (force fourcc in ouput)
alex
parents: 3480
diff changeset
134 #endif
2618
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
135
2790
98769cea155c added tv subsystem
alex
parents: 2661
diff changeset
136 #define MAIN_CONF
2618
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
137 #include "cfg-common.h"
2790
98769cea155c added tv subsystem
alex
parents: 2661
diff changeset
138 #undef MAIN_CONF
2618
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
139
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
140 // {"quiet", &quiet, CONF_TYPE_FLAG, 0, 0, 1, NULL},
4158
479c7828edbb GLOBAL flags and other changes for new config - patch by Alban Bedel <albeu@free.fr>
arpi
parents: 4157
diff changeset
141 {"verbose", &verbose, CONF_TYPE_INT, CONF_RANGE|CONF_GLOBAL, 0, 100, NULL},
479c7828edbb GLOBAL flags and other changes for new config - patch by Alban Bedel <albeu@free.fr>
arpi
parents: 4157
diff changeset
142 {"v", cfg_inc_verbose, CONF_TYPE_FUNC, CONF_GLOBAL, 0, 0, NULL},
4157
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
143 // {"-help", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
144 // {"help", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
145 // {"h", help_text, CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
9ff9f6ce6799 extra NULL field appended
arpi
parents: 3771
diff changeset
146 {NULL, NULL, 0, 0, 0, 0, NULL}
2618
47a338888698 mencoder commandline handling
arpi
parents:
diff changeset
147 };