static void init_global_vars()
{
	//Bool
	dash_duration_strict = dvbhdemux = keep_sys_tracks = do_hint = do_save = full_interleave = do_frag = hint_interleave = GF_FALSE;
	dump_rtp = regular_iod = remove_sys_tracks = remove_hint = remove_root_od = print_sdp = open_edit = GF_FALSE;
	dump_cr = force_ocr = encode = do_scene_log = dump_srt = dump_ttxt = do_saf = dump_m2ts = dump_cart = dump_chunk = GF_FALSE;
	dump_check_xml = do_hash = verbose = force_cat = pack_wgt = single_group = clean_groups = dash_live = no_fragments_defaults = GF_FALSE;
	single_traf_per_moof = tfdt_per_traf = hls_clock = do_mpd_rip = merge_vtt_cues = get_nb_tracks = GF_FALSE;
	no_inplace = merge_last_seg = freeze_box_order = no_odf_conf = GF_FALSE;
	insert_utc = chunk_mode = HintCopy = hint_no_offset = do_bin_xml = frag_real_time = force_co64 = live_scene = GF_FALSE;
	use_mfra = dump_iod = samplegroups_in_traf = mvex_after_traks = daisy_chain_sidx = use_ssix = single_segment = single_file = GF_FALSE;
	segment_timeline = has_add_image = strict_cues = use_url_template = seg_at_rap = frag_at_rap = memory_frags = keep_utc = GF_FALSE;
	has_next_arg = no_cache = no_loop = GF_FALSE;

	/*align cat is the new default behavior for -cat*/
	align_cat=GF_TRUE;

	//u32
	arg_parse_res = nb_mpd_base_urls = nb_dash_inputs = help_flags = 0;
	stat_level = hint_flags = import_flags = nb_add = nb_cat = crypt = 0;
	agg_samples = nb_sdp_ex = max_ptime = split_size = nb_meta_act = nb_track_act = 0;
	rtp_rate = major_brand = nb_alt_brand_add = nb_alt_brand_rem = old_interleave = minor_version = 0;
	conv_type = nb_tsel_acts = program_number = time_shift_depth = initial_moof_sn = dump_std = 0;
	import_subtitle = dump_saps_mode = force_new = compress_moov = 0;
	track_dump_type = dump_isom = dump_timestamps = dump_nal_type = do_flat = print_info = 0;
	size_top_box = fs_dump_flags = dump_chap = dump_udta_type = moov_pading = sdtp_in_traf = 0;
	segment_marker = timescale = adjust_split_end = run_for = dash_cumulated_time = dash_prev_time = dash_now_time = 0;
	dash_scale = 1000;
	MTUSize = 1450;

	//s32
	subsegs_per_sidx = laser_resolution = ast_offset_ms = 0;

	//Double
	interleaving_time = split_duration = dash_duration = dash_subduration = swf_flatten_angle = mpd_live_duration = mpd_update_time = 0.0;
	split_start = -1.0;
	min_buffer = 1.5;

	//u64
	initial_tfdt = 0;

	//char
	outfile[0] = 0;

	//char *
	split_range_str = inName = outName = mediaSource = input_ctx = output_ctx = drm_file = avi2raw = cprt = NULL;
	chap_file = chap_file_qt = itunes_tags = pack_file = raw_cat = seg_name = dash_ctx_file = compress_top_boxes = NULL;
	high_dynamc_range_filename = use_init_seg = box_patch_filename = udp_dest = do_mpd_conv = dash_start_date = NULL;
	dash_profile_extension = dash_cues = do_wget = mux_name = seg_ext =  init_seg_ext = dash_title = dash_source = dash_more_info = NULL;

#ifndef GPAC_DISABLE_SCENE_ENCODER
	memset(&smenc_opts, 0, sizeof(GF_SMEncodeOptions));
	swf_flags = GF_SM_SWF_SPLIT_TIMELINE;
#endif
	import_fps.num = 0;
	import_fps.den = 0;

	memset(&info_track_id, 0, sizeof(TrackIdentifier));
	memset(&ttxt_track_id, 0, sizeof(TrackIdentifier));
	memset(&dump_nal_track, 0, sizeof(TrackIdentifier));
	memset(&dump_saps_track, 0, sizeof(TrackIdentifier));
	memset(&box_patch_track, 0, sizeof(TrackIdentifier));
	memset(&dump_udta_track, 0, sizeof(TrackIdentifier));

	//allocated
	metas = NULL;
	tracks = NULL;
	tsel_acts = NULL;
	sdp_lines = NULL;
	brand_add = NULL;
	brand_rem = NULL;
	mpd_base_urls = NULL;
	dash_inputs = NULL;

	//constants
#ifndef GPAC_DISABLE_SCENE_DUMP
	dump_mode=GF_SM_DUMP_NONE;
#endif
	bitstream_switching_mode = GF_DASH_BSMODE_DEFAULT;
	dash_mode = GF_DASH_STATIC;
	cp_location_mode = GF_DASH_CPMODE_ADAPTATION_SET;
	pssh_mode = GF_DASH_PSSH_MOOV;
	dash_split_mode = GF_DASH_SPLIT_OUT;
	dash_profile = GF_DASH_PROFILE_AUTO;
	mem_track = GF_MemTrackerNone;

	logfile = NULL;
	helpout = NULL;
	file = NULL;
}