Remove use glb bar ccx_options in param ctx

This commit is contained in:
Anshul Maheshwari 2015-05-14 23:54:26 +05:30
parent d16ea0a7ea
commit fa3b651ee1
3 changed files with 164 additions and 165 deletions

View File

@ -20,7 +20,7 @@ void sigint_handler()
exit(EXIT_SUCCESS); exit(EXIT_SUCCESS);
} }
struct ccx_s_options ccx_options;
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
char *c; char *c;

View File

@ -2,7 +2,6 @@
#include "ccx_encoders_common.h" #include "ccx_encoders_common.h"
#include "utility.h" #include "utility.h"
struct ccx_s_options ccx_options;
/* Parameters */ /* Parameters */
void init_options (struct ccx_s_options *options) void init_options (struct ccx_s_options *options)
{ {

View File

@ -205,64 +205,64 @@ int add_file_sequence (struct ccx_s_options *opt, char *filename)
return 0; return 0;
} }
void set_output_format (const char *format) void set_output_format (struct ccx_s_options *opt, const char *format)
{ {
while (*format=='-') while (*format=='-')
format++; format++;
if (ccx_options.send_to_srv && strcmp(format, "bin")!=0) if (opt->send_to_srv && strcmp(format, "bin")!=0)
{ {
mprint("Output format is changed to bin\n"); mprint("Output format is changed to bin\n");
format = "bin"; format = "bin";
} }
if (strcmp (format,"srt")==0) if (strcmp (format,"srt")==0)
ccx_options.write_format=CCX_OF_SRT; opt->write_format=CCX_OF_SRT;
else if (strcmp (format,"sami")==0 || strcmp (format,"smi")==0) else if (strcmp (format,"sami")==0 || strcmp (format,"smi")==0)
ccx_options.write_format=CCX_OF_SAMI; opt->write_format=CCX_OF_SAMI;
else if (strcmp (format,"transcript")==0 || strcmp (format,"txt")==0) else if (strcmp (format,"transcript")==0 || strcmp (format,"txt")==0)
{ {
ccx_options.write_format=CCX_OF_TRANSCRIPT; opt->write_format=CCX_OF_TRANSCRIPT;
} }
else if (strcmp (format,"timedtranscript")==0 || strcmp (format,"ttxt")==0) else if (strcmp (format,"timedtranscript")==0 || strcmp (format,"ttxt")==0)
{ {
ccx_options.write_format=CCX_OF_TRANSCRIPT; opt->write_format=CCX_OF_TRANSCRIPT;
if (ccx_options.date_format==ODF_NONE) if (opt->date_format==ODF_NONE)
ccx_options.date_format=ODF_HHMMSSMS; opt->date_format=ODF_HHMMSSMS;
// Sets the right things so that timestamps and the mode are printed. // Sets the right things so that timestamps and the mode are printed.
if (!ccx_options.transcript_settings.isFinal){ if (!opt->transcript_settings.isFinal){
ccx_options.transcript_settings.showStartTime = 1; opt->transcript_settings.showStartTime = 1;
ccx_options.transcript_settings.showEndTime = 1; opt->transcript_settings.showEndTime = 1;
ccx_options.transcript_settings.showCC = 0; opt->transcript_settings.showCC = 0;
ccx_options.transcript_settings.showMode = 1; opt->transcript_settings.showMode = 1;
} }
} }
else if (strcmp (format,"report")==0) else if (strcmp (format,"report")==0)
{ {
ccx_options.write_format=CCX_OF_NULL; opt->write_format=CCX_OF_NULL;
ccx_options.messages_target=0; opt->messages_target=0;
ccx_options.print_file_reports=1; opt->print_file_reports=1;
ccx_options.ts_autoprogram=1; opt->ts_autoprogram=1;
} }
else if (strcmp (format,"raw")==0) else if (strcmp (format,"raw")==0)
ccx_options.write_format=CCX_OF_RAW; opt->write_format=CCX_OF_RAW;
else if (strcmp (format, "smptett")==0) else if (strcmp (format, "smptett")==0)
ccx_options.write_format=CCX_OF_SMPTETT ; opt->write_format=CCX_OF_SMPTETT ;
else if (strcmp (format,"bin")==0) else if (strcmp (format,"bin")==0)
ccx_options.write_format=CCX_OF_RCWT; opt->write_format=CCX_OF_RCWT;
else if (strcmp (format,"null")==0) else if (strcmp (format,"null")==0)
ccx_options.write_format=CCX_OF_NULL; opt->write_format=CCX_OF_NULL;
else if (strcmp (format,"dvdraw")==0) else if (strcmp (format,"dvdraw")==0)
ccx_options.write_format=CCX_OF_DVDRAW; opt->write_format=CCX_OF_DVDRAW;
else if (strcmp (format,"spupng")==0) else if (strcmp (format,"spupng")==0)
ccx_options.write_format=CCX_OF_SPUPNG; opt->write_format=CCX_OF_SPUPNG;
else else
fatal (EXIT_MALFORMED_PARAMETER, "Unknown output file format: %s\n", format); fatal (EXIT_MALFORMED_PARAMETER, "Unknown output file format: %s\n", format);
} }
void set_input_format (struct ccx_s_options *opt, const char *format) void set_input_format (struct ccx_s_options *opt, const char *format)
{ {
if (ccx_options.input_source == CCX_DS_TCP && strcmp(format, "bin")!=0) if (opt->input_source == CCX_DS_TCP && strcmp(format, "bin")!=0)
{ {
mprint("Intput format is changed to bin\n"); mprint("Intput format is changed to bin\n");
format = "bin"; format = "bin";
@ -831,13 +831,13 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
if (strcmp (argv[i],"-bi")==0 || if (strcmp (argv[i],"-bi")==0 ||
strcmp (argv[i],"--bufferinput")==0) strcmp (argv[i],"--bufferinput")==0)
{ {
ccx_options.buffer_input = 1; opt->buffer_input = 1;
continue; continue;
} }
if (strcmp (argv[i],"-nobi")==0 || if (strcmp (argv[i],"-nobi")==0 ||
strcmp (argv[i],"--nobufferinput")==0) strcmp (argv[i],"--nobufferinput")==0)
{ {
ccx_options.buffer_input = 0; opt->buffer_input = 0;
continue; continue;
} }
if ((strcmp (argv[i],"-bs")==0 || strcmp (argv[i],"--buffersize")==0) && i<argc-1) if ((strcmp (argv[i],"-bs")==0 || strcmp (argv[i],"--buffersize")==0) && i<argc-1)
@ -850,27 +850,27 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
} }
if (strcmp (argv[i],"-dru")==0) if (strcmp (argv[i],"-dru")==0)
{ {
ccx_options.settings_608.direct_rollup = 1; opt->settings_608.direct_rollup = 1;
continue; continue;
} }
if (strcmp (argv[i],"-nofc")==0 || if (strcmp (argv[i],"-nofc")==0 ||
strcmp (argv[i],"--nofontcolor")==0) strcmp (argv[i],"--nofontcolor")==0)
{ {
ccx_options.nofontcolor=1; opt->nofontcolor=1;
continue; continue;
} }
if (strcmp(argv[i], "-bom") == 0){ if (strcmp(argv[i], "-bom") == 0){
ccx_options.no_bom = 0; opt->no_bom = 0;
continue; continue;
} }
if (strcmp(argv[i], "-nobom") == 0){ if (strcmp(argv[i], "-nobom") == 0){
ccx_options.no_bom = 1; opt->no_bom = 1;
continue; continue;
} }
if (strcmp (argv[i],"-nots")==0 || if (strcmp (argv[i],"-nots")==0 ||
strcmp (argv[i],"--notypesetting")==0) strcmp (argv[i],"--notypesetting")==0)
{ {
ccx_options.notypesetting=1; opt->notypesetting=1;
continue; continue;
} }
@ -900,11 +900,11 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
i++; i++;
if(!strcmp (argv[i],"teletext")) if(!strcmp (argv[i],"teletext"))
{ {
ccx_options.codec = CCX_CODEC_TELETEXT; opt->codec = CCX_CODEC_TELETEXT;
} }
else if(!strcmp (argv[i],"dvbsub")) else if(!strcmp (argv[i],"dvbsub"))
{ {
ccx_options.codec = CCX_CODEC_DVB; opt->codec = CCX_CODEC_DVB;
} }
else else
{ {
@ -919,11 +919,11 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
i++; i++;
if(!strcmp (argv[i],"teletext")) if(!strcmp (argv[i],"teletext"))
{ {
ccx_options.nocodec = CCX_CODEC_TELETEXT; opt->nocodec = CCX_CODEC_TELETEXT;
} }
else if(!strcmp (argv[i],"dvbsub")) else if(!strcmp (argv[i],"dvbsub"))
{ {
ccx_options.nocodec = CCX_CODEC_DVB; opt->nocodec = CCX_CODEC_DVB;
} }
else else
{ {
@ -939,12 +939,12 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
strcmp (argv[i],"--timedtranscript")==0 || strcmp (argv[i],"-ttxt")==0 || strcmp (argv[i],"--timedtranscript")==0 || strcmp (argv[i],"-ttxt")==0 ||
strcmp (argv[i],"-null")==0) strcmp (argv[i],"-null")==0)
{ {
set_output_format (argv[i]); set_output_format (opt, argv[i]);
continue; continue;
} }
if (strncmp (argv[i],"-out=", 5)==0) if (strncmp (argv[i],"-out=", 5)==0)
{ {
set_output_format (argv[i]+5); set_output_format (opt, argv[i]+5);
continue; continue;
} }
@ -952,14 +952,14 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
if ((strcmp (argv[i],"--startcreditstext")==0) if ((strcmp (argv[i],"--startcreditstext")==0)
&& i<argc-1) && i<argc-1)
{ {
ccx_options.start_credits_text=argv[i+1]; opt->start_credits_text=argv[i+1];
i++; i++;
continue; continue;
} }
if ((strcmp (argv[i],"--startcreditsnotbefore")==0) if ((strcmp (argv[i],"--startcreditsnotbefore")==0)
&& i<argc-1) && i<argc-1)
{ {
if (stringztoms (argv[i+1],&ccx_options.startcreditsnotbefore)==-1) if (stringztoms (argv[i+1],&opt->startcreditsnotbefore)==-1)
{ {
fatal (EXIT_MALFORMED_PARAMETER, "--startcreditsnotbefore only accepts SS, MM:SS or HH:MM:SS\n"); fatal (EXIT_MALFORMED_PARAMETER, "--startcreditsnotbefore only accepts SS, MM:SS or HH:MM:SS\n");
} }
@ -969,7 +969,7 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
if ((strcmp (argv[i],"--startcreditsnotafter")==0) if ((strcmp (argv[i],"--startcreditsnotafter")==0)
&& i<argc-1) && i<argc-1)
{ {
if (stringztoms (argv[i+1],&ccx_options.startcreditsnotafter)==-1) if (stringztoms (argv[i+1],&opt->startcreditsnotafter)==-1)
{ {
fatal (EXIT_MALFORMED_PARAMETER, "--startcreditsnotafter only accepts SS, MM:SS or HH:MM:SS\n"); fatal (EXIT_MALFORMED_PARAMETER, "--startcreditsnotafter only accepts SS, MM:SS or HH:MM:SS\n");
} }
@ -979,7 +979,7 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
if ((strcmp (argv[i],"--startcreditsforatleast")==0) if ((strcmp (argv[i],"--startcreditsforatleast")==0)
&& i<argc-1) && i<argc-1)
{ {
if (stringztoms (argv[i+1],&ccx_options.startcreditsforatleast)==-1) if (stringztoms (argv[i+1],&opt->startcreditsforatleast)==-1)
{ {
fatal (EXIT_MALFORMED_PARAMETER, "--startcreditsforatleast only accepts SS, MM:SS or HH:MM:SS\n"); fatal (EXIT_MALFORMED_PARAMETER, "--startcreditsforatleast only accepts SS, MM:SS or HH:MM:SS\n");
} }
@ -989,7 +989,7 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
if ((strcmp (argv[i],"--startcreditsforatmost")==0) if ((strcmp (argv[i],"--startcreditsforatmost")==0)
&& i<argc-1) && i<argc-1)
{ {
if (stringztoms (argv[i+1],&ccx_options.startcreditsforatmost)==-1) if (stringztoms (argv[i+1],&opt->startcreditsforatmost)==-1)
{ {
fatal (EXIT_MALFORMED_PARAMETER, "--startcreditsforatmost only accepts SS, MM:SS or HH:MM:SS\n"); fatal (EXIT_MALFORMED_PARAMETER, "--startcreditsforatmost only accepts SS, MM:SS or HH:MM:SS\n");
} }
@ -1000,14 +1000,14 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
if ((strcmp (argv[i],"--endcreditstext")==0 ) if ((strcmp (argv[i],"--endcreditstext")==0 )
&& i<argc-1) && i<argc-1)
{ {
ccx_options.end_credits_text=argv[i+1]; opt->end_credits_text=argv[i+1];
i++; i++;
continue; continue;
} }
if ((strcmp (argv[i],"--endcreditsforatleast")==0) if ((strcmp (argv[i],"--endcreditsforatleast")==0)
&& i<argc-1) && i<argc-1)
{ {
if (stringztoms (argv[i+1],&ccx_options.endcreditsforatleast)==-1) if (stringztoms (argv[i+1],&opt->endcreditsforatleast)==-1)
{ {
fatal (EXIT_MALFORMED_PARAMETER, "--endcreditsforatleast only accepts SS, MM:SS or HH:MM:SS\n"); fatal (EXIT_MALFORMED_PARAMETER, "--endcreditsforatleast only accepts SS, MM:SS or HH:MM:SS\n");
} }
@ -1017,7 +1017,7 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
if ((strcmp (argv[i],"--endcreditsforatmost")==0) if ((strcmp (argv[i],"--endcreditsforatmost")==0)
&& i<argc-1) && i<argc-1)
{ {
if (stringztoms (argv[i+1],&ccx_options.endcreditsforatmost)==-1) if (stringztoms (argv[i+1],&opt->endcreditsforatmost)==-1)
{ {
fatal (EXIT_MALFORMED_PARAMETER, "--startcreditsforatmost only accepts SS, MM:SS or HH:MM:SS\n"); fatal (EXIT_MALFORMED_PARAMETER, "--startcreditsforatmost only accepts SS, MM:SS or HH:MM:SS\n");
} }
@ -1029,30 +1029,30 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
if (strcmp (argv[i],"-ve")==0 || if (strcmp (argv[i],"-ve")==0 ||
strcmp (argv[i],"--videoedited")==0) strcmp (argv[i],"--videoedited")==0)
{ {
ccx_options.binary_concat=0; opt->binary_concat=0;
continue; continue;
} }
if (strcmp (argv[i],"-12")==0) if (strcmp (argv[i],"-12")==0)
{ {
ccx_options.extract = 12; opt->extract = 12;
continue; continue;
} }
if (strcmp (argv[i],"-gt")==0 || if (strcmp (argv[i],"-gt")==0 ||
strcmp (argv[i],"--goptime")==0) strcmp (argv[i],"--goptime")==0)
{ {
ccx_options.use_gop_as_pts = 1; opt->use_gop_as_pts = 1;
continue; continue;
} }
if (strcmp (argv[i],"-nogt")==0 || if (strcmp (argv[i],"-nogt")==0 ||
strcmp (argv[i],"--nogoptime")==0) strcmp (argv[i],"--nogoptime")==0)
{ {
ccx_options.use_gop_as_pts = -1; // Don't use even if we would want to opt->use_gop_as_pts = -1; // Don't use even if we would want to
continue; continue;
} }
if (strcmp (argv[i],"-fp")==0 || if (strcmp (argv[i],"-fp")==0 ||
strcmp (argv[i],"--fixpadding")==0) strcmp (argv[i],"--fixpadding")==0)
{ {
ccx_options.fix_padding = 1; opt->fix_padding = 1;
continue; continue;
} }
if (strcmp (argv[i],"-90090")==0) if (strcmp (argv[i],"-90090")==0)
@ -1063,51 +1063,51 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
if (strcmp (argv[i],"-noru")==0 || if (strcmp (argv[i],"-noru")==0 ||
strcmp (argv[i],"--norollup")==0) strcmp (argv[i],"--norollup")==0)
{ {
ccx_options.settings_608.no_rollup = 1; opt->settings_608.no_rollup = 1;
continue; continue;
} }
if (strcmp (argv[i],"-ru1")==0) if (strcmp (argv[i],"-ru1")==0)
{ {
ccx_options.settings_608.force_rollup = 1; opt->settings_608.force_rollup = 1;
continue; continue;
} }
if (strcmp (argv[i],"-ru2")==0) if (strcmp (argv[i],"-ru2")==0)
{ {
ccx_options.settings_608.force_rollup = 2; opt->settings_608.force_rollup = 2;
continue; continue;
} }
if (strcmp (argv[i],"-ru3")==0) if (strcmp (argv[i],"-ru3")==0)
{ {
ccx_options.settings_608 .force_rollup = 3; opt->settings_608 .force_rollup = 3;
continue; continue;
} }
if (strcmp (argv[i],"-trim")==0) if (strcmp (argv[i],"-trim")==0)
{ {
ccx_options.trim_subs=1; opt->trim_subs=1;
continue; continue;
} }
if (strcmp (argv[i],"--gui_mode_reports")==0) if (strcmp (argv[i],"--gui_mode_reports")==0)
{ {
ccx_options.gui_mode_reports=1; opt->gui_mode_reports=1;
continue; continue;
} }
if (strcmp (argv[i],"--no_progress_bar")==0) if (strcmp (argv[i],"--no_progress_bar")==0)
{ {
ccx_options.no_progress_bar=1; opt->no_progress_bar=1;
continue; continue;
} }
if (strcmp (argv[i],"--sentencecap")==0 || if (strcmp (argv[i],"--sentencecap")==0 ||
strcmp (argv[i],"-sc")==0) strcmp (argv[i],"-sc")==0)
{ {
ccx_options.sentence_cap=1; opt->sentence_cap=1;
continue; continue;
} }
if ((strcmp (argv[i],"--capfile")==0 || if ((strcmp (argv[i],"--capfile")==0 ||
strcmp (argv[i],"-caf")==0) strcmp (argv[i],"-caf")==0)
&& i<argc-1) && i<argc-1)
{ {
ccx_options.sentence_cap=1; opt->sentence_cap=1;
ccx_options.sentence_cap_file=argv[i+1]; opt->sentence_cap_file=argv[i+1];
i++; i++;
continue; continue;
} }
@ -1116,18 +1116,18 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
{ {
if (i==argc-1 // Means no following argument if (i==argc-1 // Means no following argument
|| !isanumber (argv[i+1])) // Means is not a number || !isanumber (argv[i+1])) // Means is not a number
ccx_options.ts_forced_program = (unsigned)-1; // Autodetect opt->ts_forced_program = (unsigned)-1; // Autodetect
else else
{ {
ccx_options.ts_forced_program=atoi_hex (argv[i+1]); opt->ts_forced_program=atoi_hex (argv[i+1]);
ccx_options.ts_forced_program_selected=1; opt->ts_forced_program_selected=1;
i++; i++;
} }
continue; continue;
} }
if (strcmp (argv[i],"-autoprogram")==0) if (strcmp (argv[i],"-autoprogram")==0)
{ {
ccx_options.ts_autoprogram=1; opt->ts_autoprogram=1;
continue; continue;
} }
if (strcmp (argv[i],"--stream")==0 || if (strcmp (argv[i],"--stream")==0 ||
@ -1135,10 +1135,10 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
{ {
if (i==argc-1 // Means no following argument if (i==argc-1 // Means no following argument
|| !isanumber (argv[i+1])) // Means is not a number || !isanumber (argv[i+1])) // Means is not a number
ccx_options.live_stream=-1; // Live stream without timeout opt->live_stream=-1; // Live stream without timeout
else else
{ {
ccx_options.live_stream=atoi_hex (argv[i+1]); opt->live_stream=atoi_hex (argv[i+1]);
i++; i++;
} }
continue; continue;
@ -1152,7 +1152,7 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
fatal (EXIT_MALFORMED_PARAMETER, "--defaultcolor expects a 7 character parameter that starts with #\n"); fatal (EXIT_MALFORMED_PARAMETER, "--defaultcolor expects a 7 character parameter that starts with #\n");
} }
strcpy ((char *) usercolor_rgb,argv[i+1]); strcpy ((char *) usercolor_rgb,argv[i+1]);
ccx_options.settings_608.default_color = COL_USERDEFINED; opt->settings_608.default_color = COL_USERDEFINED;
i++; i++;
continue; continue;
} }
@ -1168,8 +1168,8 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
if ((strcmp (argv[i],"-scr")==0 || if ((strcmp (argv[i],"-scr")==0 ||
strcmp (argv[i],"--screenfuls")==0) && i<argc-1) strcmp (argv[i],"--screenfuls")==0) && i<argc-1)
{ {
ccx_options.settings_608.screens_to_process = atoi_hex(argv[i + 1]); opt->settings_608.screens_to_process = atoi_hex(argv[i + 1]);
if (ccx_options.settings_608.screens_to_process<0) if (opt->settings_608.screens_to_process<0)
{ {
fatal (EXIT_MALFORMED_PARAMETER, "--screenfuls only accepts positive integers.\n"); fatal (EXIT_MALFORMED_PARAMETER, "--screenfuls only accepts positive integers.\n");
} }
@ -1178,7 +1178,7 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
} }
if (strcmp (argv[i],"-startat")==0 && i<argc-1) if (strcmp (argv[i],"-startat")==0 && i<argc-1)
{ {
if (stringztoms (argv[i+1],&ccx_options.extraction_start)==-1) if (stringztoms (argv[i+1],&opt->extraction_start)==-1)
{ {
fatal (EXIT_MALFORMED_PARAMETER, "-startat only accepts SS, MM:SS or HH:MM:SS\n"); fatal (EXIT_MALFORMED_PARAMETER, "-startat only accepts SS, MM:SS or HH:MM:SS\n");
} }
@ -1187,7 +1187,7 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
} }
if (strcmp (argv[i],"-endat")==0 && i<argc-1) if (strcmp (argv[i],"-endat")==0 && i<argc-1)
{ {
if (stringztoms (argv[i+1],&ccx_options.extraction_end)==-1) if (stringztoms (argv[i+1],&opt->extraction_end)==-1)
{ {
fatal (EXIT_MALFORMED_PARAMETER, "-endat only accepts SS, MM:SS or HH:MM:SS\n"); fatal (EXIT_MALFORMED_PARAMETER, "-endat only accepts SS, MM:SS or HH:MM:SS\n");
} }
@ -1196,184 +1196,184 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
} }
if (strcmp (argv[i],"-1")==0) if (strcmp (argv[i],"-1")==0)
{ {
ccx_options.extract = 1; opt->extract = 1;
continue; continue;
} }
if (strcmp (argv[i],"-2")==0) if (strcmp (argv[i],"-2")==0)
{ {
ccx_options.extract = 2; opt->extract = 2;
continue; continue;
} }
if (strcmp (argv[i],"-cc2")==0 || strcmp (argv[i],"-CC2")==0) if (strcmp (argv[i],"-cc2")==0 || strcmp (argv[i],"-CC2")==0)
{ {
ccx_options.cc_channel=2; opt->cc_channel=2;
continue; continue;
} }
if (strcmp (argv[i],"-stdout")==0) if (strcmp (argv[i],"-stdout")==0)
{ {
if (ccx_options.messages_target==1) // Only change this if still stdout. -quiet could set it to 0 for example if (opt->messages_target==1) // Only change this if still stdout. -quiet could set it to 0 for example
ccx_options.messages_target=2; // stderr opt->messages_target=2; // stderr
opt->cc_to_stdout=1; opt->cc_to_stdout=1;
continue; continue;
} }
if (strcmp (argv[i],"-quiet")==0) if (strcmp (argv[i],"-quiet")==0)
{ {
ccx_options.messages_target=0; opt->messages_target=0;
continue; continue;
} }
if (strcmp (argv[i],"-debug")==0) if (strcmp (argv[i],"-debug")==0)
{ {
ccx_options.debug_mask |= CCX_DMT_VERBOSE; opt->debug_mask |= CCX_DMT_VERBOSE;
continue; continue;
} }
if (strcmp (argv[i],"-608")==0) if (strcmp (argv[i],"-608")==0)
{ {
ccx_options.debug_mask |= CCX_DMT_DECODER_608; opt->debug_mask |= CCX_DMT_DECODER_608;
continue; continue;
} }
if (strcmp (argv[i],"-deblev")==0) if (strcmp (argv[i],"-deblev")==0)
{ {
ccx_options.debug_mask |= CCX_DMT_LEVENSHTEIN; opt->debug_mask |= CCX_DMT_LEVENSHTEIN;
continue; continue;
} }
if (strcmp (argv[i],"-levdistmincnt")==0 && i<argc-1) if (strcmp (argv[i],"-levdistmincnt")==0 && i<argc-1)
{ {
ccx_options.levdistmincnt = atoi_hex(argv[i+1]); opt->levdistmincnt = atoi_hex(argv[i+1]);
i++; i++;
continue; continue;
} }
if (strcmp (argv[i],"-levdistmaxpct")==0 && i<argc-1) if (strcmp (argv[i],"-levdistmaxpct")==0 && i<argc-1)
{ {
ccx_options.levdistmaxpct = atoi_hex(argv[i+1]); opt->levdistmaxpct = atoi_hex(argv[i+1]);
i++; i++;
continue; continue;
} }
if (strcmp (argv[i],"-708")==0) if (strcmp (argv[i],"-708")==0)
{ {
ccx_options.debug_mask |= CCX_DMT_708; opt->debug_mask |= CCX_DMT_708;
continue; continue;
} }
if (strcmp (argv[i],"-goppts")==0) if (strcmp (argv[i],"-goppts")==0)
{ {
ccx_options.debug_mask |= CCX_DMT_TIME; opt->debug_mask |= CCX_DMT_TIME;
continue; continue;
} }
if (strcmp (argv[i],"-vides")==0) if (strcmp (argv[i],"-vides")==0)
{ {
ccx_options.debug_mask |= CCX_DMT_VIDES; opt->debug_mask |= CCX_DMT_VIDES;
continue; continue;
} }
if (strcmp (argv[i],"-xds")==0) if (strcmp (argv[i],"-xds")==0)
{ {
// XDS can be set regardless of -UCLA (isFinal) usage. // XDS can be set regardless of -UCLA (isFinal) usage.
ccx_options.transcript_settings.xds = 1; opt->transcript_settings.xds = 1;
continue; continue;
} }
if (strcmp (argv[i],"-xdsdebug")==0) if (strcmp (argv[i],"-xdsdebug")==0)
{ {
ccx_options.debug_mask |= CCX_DMT_DECODER_XDS; opt->debug_mask |= CCX_DMT_DECODER_XDS;
continue; continue;
} }
if (strcmp (argv[i],"-parsedebug")==0) if (strcmp (argv[i],"-parsedebug")==0)
{ {
ccx_options.debug_mask |= CCX_DMT_PARSE; opt->debug_mask |= CCX_DMT_PARSE;
continue; continue;
} }
if (strcmp (argv[i],"-parsePAT")==0 || strcmp (argv[i],"-parsepat")==0) if (strcmp (argv[i],"-parsePAT")==0 || strcmp (argv[i],"-parsepat")==0)
{ {
ccx_options.debug_mask |= CCX_DMT_PAT; opt->debug_mask |= CCX_DMT_PAT;
continue; continue;
} }
if (strcmp (argv[i],"-parsePMT")==0 || strcmp (argv[i],"-parsepmt")==0) if (strcmp (argv[i],"-parsePMT")==0 || strcmp (argv[i],"-parsepmt")==0)
{ {
ccx_options.debug_mask |= CCX_DMT_PMT; opt->debug_mask |= CCX_DMT_PMT;
continue; continue;
} }
if (strcmp (argv[i],"-investigate_packets")==0) if (strcmp (argv[i],"-investigate_packets")==0)
{ {
ccx_options.investigate_packets=1; opt->investigate_packets=1;
continue; continue;
} }
if (strcmp (argv[i],"-cbraw")==0) if (strcmp (argv[i],"-cbraw")==0)
{ {
ccx_options.debug_mask |= CCX_DMT_CBRAW; opt->debug_mask |= CCX_DMT_CBRAW;
continue; continue;
} }
if (strcmp (argv[i],"-tverbose")==0) if (strcmp (argv[i],"-tverbose")==0)
{ {
ccx_options.debug_mask |= CCX_DMT_TELETEXT; opt->debug_mask |= CCX_DMT_TELETEXT;
tlt_config.verbose=1; tlt_config.verbose=1;
continue; continue;
} }
if (strcmp (argv[i],"-fullbin")==0) if (strcmp (argv[i],"-fullbin")==0)
{ {
ccx_options.fullbin = 1; opt->fullbin = 1;
continue; continue;
} }
if (strcmp (argv[i],"-nosync")==0) if (strcmp (argv[i],"-nosync")==0)
{ {
ccx_options.nosync = 1; opt->nosync = 1;
continue; continue;
} }
if (strcmp (argv[i],"-haup")==0 || strcmp (argv[i],"--hauppauge")==0) if (strcmp (argv[i],"-haup")==0 || strcmp (argv[i],"--hauppauge")==0)
{ {
ccx_options.hauppauge_mode = 1; opt->hauppauge_mode = 1;
continue; continue;
} }
if (strcmp (argv[i],"-mp4vidtrack")==0) if (strcmp (argv[i],"-mp4vidtrack")==0)
{ {
ccx_options.mp4vidtrack = 1; opt->mp4vidtrack = 1;
continue; continue;
} }
if (strstr (argv[i],"-unicode")!=NULL) if (strstr (argv[i],"-unicode")!=NULL)
{ {
ccx_options.encoding=CCX_ENC_UNICODE; opt->encoding=CCX_ENC_UNICODE;
continue; continue;
} }
if (strstr (argv[i],"-utf8")!=NULL) if (strstr (argv[i],"-utf8")!=NULL)
{ {
ccx_options.encoding=CCX_ENC_UTF_8; opt->encoding=CCX_ENC_UTF_8;
continue; continue;
} }
if (strstr (argv[i],"-latin1")!=NULL) if (strstr (argv[i],"-latin1")!=NULL)
{ {
ccx_options.encoding=CCX_ENC_LATIN_1; opt->encoding=CCX_ENC_LATIN_1;
continue; continue;
} }
if (strcmp (argv[i],"-poc")==0 || strcmp (argv[i],"--usepicorder")==0) if (strcmp (argv[i],"-poc")==0 || strcmp (argv[i],"--usepicorder")==0)
{ {
ccx_options.usepicorder = 1; opt->usepicorder = 1;
continue; continue;
} }
if (strstr (argv[i],"-myth")!=NULL) if (strstr (argv[i],"-myth")!=NULL)
{ {
ccx_options.auto_myth=1; opt->auto_myth=1;
continue; continue;
} }
if (strstr (argv[i],"-nomyth")!=NULL) if (strstr (argv[i],"-nomyth")!=NULL)
{ {
ccx_options.auto_myth=0; opt->auto_myth=0;
continue; continue;
} }
if (strstr (argv[i],"-wtvconvertfix")!=NULL) if (strstr (argv[i],"-wtvconvertfix")!=NULL)
{ {
ccx_options.wtvconvertfix=1; opt->wtvconvertfix=1;
continue; continue;
} }
if (strstr (argv[i],"-wtvmpeg2")!=NULL) if (strstr (argv[i],"-wtvmpeg2")!=NULL)
{ {
ccx_options.wtvmpeg2=1; opt->wtvmpeg2=1;
continue; continue;
} }
if (strcmp (argv[i],"-o")==0 && i<argc-1) if (strcmp (argv[i],"-o")==0 && i<argc-1)
{ {
ccx_options.output_filename=argv[i+1]; opt->output_filename=argv[i+1];
i++; i++;
continue; continue;
} }
if (strcmp (argv[i],"-cf")==0 && i<argc-1) if (strcmp (argv[i],"-cf")==0 && i<argc-1)
{ {
ccx_options.out_elementarystream_filename=argv[i+1]; opt->out_elementarystream_filename=argv[i+1];
i++; i++;
continue; continue;
} }
@ -1399,20 +1399,20 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
} }
if (strcmp (argv[i],"-datapid")==0 && i<argc-1) if (strcmp (argv[i],"-datapid")==0 && i<argc-1)
{ {
ccx_options.ts_cappid = atoi_hex(argv[i+1]); opt->ts_cappid = atoi_hex(argv[i+1]);
ccx_options.ts_forced_cappid=1; opt->ts_forced_cappid=1;
i++; i++;
continue; continue;
} }
if (strcmp (argv[i],"-datastreamtype")==0 && i<argc-1) if (strcmp (argv[i],"-datastreamtype")==0 && i<argc-1)
{ {
ccx_options.ts_datastreamtype = atoi_hex(argv[i+1]); opt->ts_datastreamtype = atoi_hex(argv[i+1]);
i++; i++;
continue; continue;
} }
if (strcmp (argv[i],"-streamtype")==0 && i<argc-1) if (strcmp (argv[i],"-streamtype")==0 && i<argc-1)
{ {
ccx_options.ts_forced_streamtype = atoi_hex(argv[i+1]); opt->ts_forced_streamtype = atoi_hex(argv[i+1]);
i++; i++;
continue; continue;
} }
@ -1421,47 +1421,47 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
{ {
tlt_config.page = atoi_hex(argv[i+1]); tlt_config.page = atoi_hex(argv[i+1]);
tlt_config.user_page = tlt_config.page; tlt_config.user_page = tlt_config.page;
ccx_options.teletext_mode=CCX_TXT_IN_USE; opt->teletext_mode=CCX_TXT_IN_USE;
i++; i++;
continue; continue;
} }
if (strcmp (argv[i],"-UCLA")==0 || strcmp (argv[i],"-ucla")==0) if (strcmp (argv[i],"-UCLA")==0 || strcmp (argv[i],"-ucla")==0)
{ {
ccx_options.millis_separator='.'; opt->millis_separator='.';
ccx_options.no_bom = 1; opt->no_bom = 1;
if (!ccx_options.transcript_settings.isFinal){ if (!opt->transcript_settings.isFinal){
ccx_options.transcript_settings.showStartTime = 1; opt->transcript_settings.showStartTime = 1;
ccx_options.transcript_settings.showEndTime = 1; opt->transcript_settings.showEndTime = 1;
ccx_options.transcript_settings.showCC = 1; opt->transcript_settings.showCC = 1;
ccx_options.transcript_settings.showMode = 1; opt->transcript_settings.showMode = 1;
ccx_options.transcript_settings.relativeTimestamp = 0; opt->transcript_settings.relativeTimestamp = 0;
ccx_options.transcript_settings.isFinal = 1; opt->transcript_settings.isFinal = 1;
} }
continue; continue;
} }
if (strcmp (argv[i],"-lf")==0 || strcmp (argv[i],"-LF")==0) if (strcmp (argv[i],"-lf")==0 || strcmp (argv[i],"-LF")==0)
{ {
ccx_options.line_terminator_lf = 1; opt->line_terminator_lf = 1;
continue; continue;
} }
if (strcmp (argv[i],"-noautotimeref")==0) if (strcmp (argv[i],"-noautotimeref")==0)
{ {
ccx_options.noautotimeref = 1; opt->noautotimeref = 1;
continue; continue;
} }
if (strcmp (argv[i],"-autodash")==0) if (strcmp (argv[i],"-autodash")==0)
{ {
ccx_options.autodash = 1; opt->autodash = 1;
continue; continue;
} }
if (strcmp (argv[i],"-xmltv")==0) if (strcmp (argv[i],"-xmltv")==0)
{ {
if (i==argc-1 // Means no following argument if (i==argc-1 // Means no following argument
|| !isanumber (argv[i+1])) // Means is not a number || !isanumber (argv[i+1])) // Means is not a number
ccx_options.xmltv = 1; opt->xmltv = 1;
else else
{ {
ccx_options.xmltv=atoi_hex (argv[i+1]); opt->xmltv=atoi_hex (argv[i+1]);
i++; i++;
} }
continue; continue;
@ -1471,10 +1471,10 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
{ {
if (i==argc-1 // Means no following argument if (i==argc-1 // Means no following argument
|| !isanumber (argv[i+1])) // Means is not a number || !isanumber (argv[i+1])) // Means is not a number
ccx_options.xmltvliveinterval = 10; opt->xmltvliveinterval = 10;
else else
{ {
ccx_options.xmltvliveinterval=atoi_hex (argv[i+1]); opt->xmltvliveinterval=atoi_hex (argv[i+1]);
i++; i++;
} }
continue; continue;
@ -1484,17 +1484,17 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
{ {
if (i==argc-1 // Means no following argument if (i==argc-1 // Means no following argument
|| !isanumber (argv[i+1])) // Means is not a number || !isanumber (argv[i+1])) // Means is not a number
ccx_options.xmltvoutputinterval = 0; opt->xmltvoutputinterval = 0;
else else
{ {
ccx_options.xmltvoutputinterval=atoi_hex (argv[i+1]); opt->xmltvoutputinterval=atoi_hex (argv[i+1]);
i++; i++;
} }
continue; continue;
} }
if (strcmp (argv[i],"-xmltvonlycurrent")==0) if (strcmp (argv[i],"-xmltvonlycurrent")==0)
{ {
ccx_options.xmltvonlycurrent=1; opt->xmltvonlycurrent=1;
i++; i++;
continue; continue;
} }
@ -1510,45 +1510,45 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
} }
utc_refvalue = t; utc_refvalue = t;
i++; i++;
ccx_options.noautotimeref= 1; // If set by user don't attempt to fix opt->noautotimeref= 1; // If set by user don't attempt to fix
continue; continue;
} }
if (strcmp (argv[i],"-sects")==0) if (strcmp (argv[i],"-sects")==0)
{ {
ccx_options.date_format=ODF_SECONDS; opt->date_format=ODF_SECONDS;
continue; continue;
} }
if (strcmp (argv[i],"-datets")==0) if (strcmp (argv[i],"-datets")==0)
{ {
ccx_options.date_format=ODF_DATE; opt->date_format=ODF_DATE;
continue; continue;
} }
if (strcmp (argv[i],"-teletext")==0) if (strcmp (argv[i],"-teletext")==0)
{ {
ccx_options.codec = CCX_CODEC_TELETEXT; opt->codec = CCX_CODEC_TELETEXT;
ccx_options.teletext_mode=CCX_TXT_IN_USE; opt->teletext_mode=CCX_TXT_IN_USE;
continue; continue;
} }
if (strcmp (argv[i],"-noteletext")==0) if (strcmp (argv[i],"-noteletext")==0)
{ {
ccx_options.nocodec = CCX_CODEC_TELETEXT; opt->nocodec = CCX_CODEC_TELETEXT;
ccx_options.teletext_mode=CCX_TXT_FORBIDDEN; opt->teletext_mode=CCX_TXT_FORBIDDEN;
continue; continue;
} }
/* Custom transcript */ /* Custom transcript */
if (strcmp(argv[i], "-customtxt") == 0 && i<argc - 1){ if (strcmp(argv[i], "-customtxt") == 0 && i<argc - 1){
char *format = argv[i + 1]; char *format = argv[i + 1];
if (strlen(format) == 7){ if (strlen(format) == 7){
if (ccx_options.date_format == ODF_NONE) if (opt->date_format == ODF_NONE)
ccx_options.date_format = ODF_HHMMSSMS; // Necessary for displaying times, if any would be used. opt->date_format = ODF_HHMMSSMS; // Necessary for displaying times, if any would be used.
if (!ccx_options.transcript_settings.isFinal){ if (!opt->transcript_settings.isFinal){
ccx_options.transcript_settings.showStartTime = format[0] - '0'; opt->transcript_settings.showStartTime = format[0] - '0';
ccx_options.transcript_settings.showEndTime = format[1] - '0'; opt->transcript_settings.showEndTime = format[1] - '0';
ccx_options.transcript_settings.showMode = format[2] - '0'; opt->transcript_settings.showMode = format[2] - '0';
ccx_options.transcript_settings.showCC = format[3] - '0'; opt->transcript_settings.showCC = format[3] - '0';
ccx_options.transcript_settings.relativeTimestamp = format[4] - '0'; opt->transcript_settings.relativeTimestamp = format[4] - '0';
ccx_options.transcript_settings.xds = format[5] - '0'; opt->transcript_settings.xds = format[5] - '0';
ccx_options.transcript_settings.useColors = format[6] - '0'; opt->transcript_settings.useColors = format[6] - '0';
} else { } else {
// Throw exception // Throw exception
fatal(EXIT_INCOMPATIBLE_PARAMETERS, "customtxt cannot be set after -UCLA is used!"); fatal(EXIT_INCOMPATIBLE_PARAMETERS, "customtxt cannot be set after -UCLA is used!");
@ -1568,32 +1568,32 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
if (colon) if (colon)
{ {
*colon = '\0'; *colon = '\0';
ccx_options.udpaddr = argv[i + 1]; opt->udpaddr = argv[i + 1];
ccx_options.udpport = atoi_hex(colon + 1); opt->udpport = atoi_hex(colon + 1);
} }
else else
{ {
ccx_options.udpaddr = NULL; opt->udpaddr = NULL;
ccx_options.udpport = atoi_hex(argv[i + 1]); opt->udpport = atoi_hex(argv[i + 1]);
} }
ccx_options.input_source=CCX_DS_NETWORK; opt->input_source=CCX_DS_NETWORK;
i++; i++;
continue; continue;
} }
if (strcmp (argv[i],"-sendto")==0 && i<argc-1) if (strcmp (argv[i],"-sendto")==0 && i<argc-1)
{ {
ccx_options.send_to_srv = 1; opt->send_to_srv = 1;
set_output_format("bin"); set_output_format(opt, "bin");
char *addr = argv[i + 1]; char *addr = argv[i + 1];
if (*addr == '[') if (*addr == '[')
{ {
addr++; addr++;
ccx_options.srv_addr = addr; opt->srv_addr = addr;
char *br = strchr(addr, ']'); char *br = strchr(addr, ']');
if (br == NULL) if (br == NULL)
@ -1602,19 +1602,19 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
br++; /* Colon */ br++; /* Colon */
if (*br != '\0') if (*br != '\0')
ccx_options.srv_port = br + 1; opt->srv_port = br + 1;
i++; i++;
continue; continue;
} }
ccx_options.srv_addr = argv[i + 1]; opt->srv_addr = argv[i + 1];
char *colon = strchr(argv[i + 1], ':'); char *colon = strchr(argv[i + 1], ':');
if (colon != NULL) if (colon != NULL)
{ {
*colon = '\0'; *colon = '\0';
ccx_options.srv_port = colon + 1; opt->srv_port = colon + 1;
} }
i++; i++;
@ -1623,8 +1623,8 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
if (strcmp (argv[i],"-tcp")==0 && i<argc-1) if (strcmp (argv[i],"-tcp")==0 && i<argc-1)
{ {
ccx_options.tcpport = argv[i + 1]; opt->tcpport = argv[i + 1];
ccx_options.input_source = CCX_DS_TCP; opt->input_source = CCX_DS_TCP;
set_input_format(opt, "bin"); set_input_format(opt, "bin");
@ -1634,7 +1634,7 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
if (strcmp (argv[i],"-tcppassword")==0 && i<argc-1) if (strcmp (argv[i],"-tcppassword")==0 && i<argc-1)
{ {
ccx_options.tcp_password = argv[i + 1]; opt->tcp_password = argv[i + 1];
i++; i++;
continue; continue;
@ -1642,7 +1642,7 @@ void parse_parameters (struct ccx_s_options *opt, int argc, char *argv[])
if (strcmp (argv[i],"-tcpdesc")==0 && i<argc-1) if (strcmp (argv[i],"-tcpdesc")==0 && i<argc-1)
{ {
ccx_options.tcp_desc = argv[i + 1]; opt->tcp_desc = argv[i + 1];
i++; i++;
continue; continue;