int EDLSession::load_video_config(FileXML *file, int append_mode, uint32_t load_flags) { char string[1024]; if(append_mode) return 0; interpolation_type = file->tag.get_property("INTERPOLATION_TYPE", interpolation_type); interpolate_raw = file->tag.get_property("INTERPOLATE_RAW", interpolate_raw); white_balance_raw = file->tag.get_property("WHITE_BALANCE_RAW", white_balance_raw); cmodel_to_text(string, color_model); color_model = cmodel_from_text(file->tag.get_property("COLORMODEL", string)); interlace_mode = ilacemode_from_xmltext(file->tag.get_property("INTERLACE_MODE"), BC_ILACE_MODE_NOTINTERLACED); video_channels = file->tag.get_property("CHANNELS", video_channels); for(int i = 0; i < video_channels; i++) { int default_position = i * output_w; sprintf(string, "VCHANNEL_X_%d", i); vchannel_x[i] = file->tag.get_property(string, default_position); sprintf(string, "VCHANNEL_Y_%d", i); vchannel_y[i] = file->tag.get_property(string, 0); } frame_rate = file->tag.get_property("FRAMERATE", frame_rate); frames_per_foot = file->tag.get_property("FRAMES_PER_FOOT", frames_per_foot); output_w = file->tag.get_property("OUTPUTW", output_w); output_h = file->tag.get_property("OUTPUTH", output_h); aspect_w = file->tag.get_property("ASPECTW", aspect_w); aspect_h = file->tag.get_property("ASPECTH", aspect_h); return 0; }
int Asset::read_video(FileXML *file) { char string[BCTEXTLEN]; if(file->tag.title_is("VIDEO")) video_data = 1; height = file->tag.get_property("HEIGHT", height); width = file->tag.get_property("WIDTH", width); layers = file->tag.get_property("LAYERS", layers); // This is loaded from the index file after the EDL but this // should be overridable in the EDL. if(!frame_rate) frame_rate = file->tag.get_property("FRAMERATE", frame_rate); vcodec[0] = 0; file->tag.get_property("VCODEC", vcodec); video_length = file->tag.get_property("VIDEO_LENGTH", 0); interlace_autofixoption = file->tag.get_property("INTERLACE_AUTOFIX",0); ilacemode_to_xmltext(string, BC_ILACE_MODE_NOTINTERLACED); interlace_mode = ilacemode_from_xmltext(file->tag.get_property("INTERLACE_MODE",string), BC_ILACE_MODE_NOTINTERLACED); ilacefixmethod_to_xmltext(string, BC_ILACE_FIXMETHOD_NONE); interlace_fixmethod = ilacefixmethod_from_xmltext(file->tag.get_property("INTERLACE_FIXMETHOD",string), BC_ILACE_FIXMETHOD_NONE); file->tag.get_property("REEL_NAME", reel_name); reel_number = file->tag.get_property("REEL_NUMBER", reel_number); tcstart = file->tag.get_property("TCSTART", tcstart); tcend = file->tag.get_property("TCEND", tcend); tcformat = file->tag.get_property("TCFORMAT", tcformat); return 0; }
int EDLSession::load_defaults(BC_Hash *defaults) { char string[BCTEXTLEN]; // Default channel positions for(int i = 0; i < MAXCHANNELS; i++) { sprintf(string, "ACHANNEL_ANGLE_%d", i); int default_position = i * 30; if(i == 0) default_position = 180; else if(i == 1) default_position = 0; else if(default_position == 90) default_position = 300; else if(default_position == 0) default_position = 330; achannel_positions[i] = defaults->get(string, default_position); } aconfig_duplex->load_defaults(defaults); aconfig_in->load_defaults(defaults); actual_frame_rate = defaults->get("ACTUAL_FRAME_RATE", (float)-1); assetlist_format = defaults->get("ASSETLIST_FORMAT", ASSETS_ICONS); aspect_w = defaults->get("ASPECTW", aspect_w); aspect_h = defaults->get("ASPECTH", aspect_h); for(int i = 0; i < ASSET_COLUMNS; i++) { sprintf(string, "ASSET_COLUMN%d", i); asset_columns[i] = defaults->get(string, 100); } audio_channels = defaults->get("ACHANNELS", audio_channels); audio_tracks = defaults->get("ATRACKS", audio_tracks); auto_conf->load_defaults(defaults); autos_follow_edits = defaults->get("AUTOS_FOLLOW_EDITS", 1); brender_start = defaults->get("BRENDER_START", brender_start); cmodel_to_text(string, color_model); color_model = cmodel_from_text(defaults->get("COLOR_MODEL", string)); ilacemode_to_xmltext(string, interlace_mode); interlace_mode = ilacemode_from_xmltext(defaults->get("INTERLACE_MODE",string), BC_ILACE_MODE_NOTINTERLACED); crop_x1 = defaults->get("CROP_X1", 0); crop_x2 = defaults->get("CROP_X2", 320); crop_y1 = defaults->get("CROP_Y1", 0); crop_y2 = defaults->get("CROP_Y2", 240); ruler_x1 = defaults->get("RULER_X1", 0.0); ruler_x2 = defaults->get("RULER_X2", 0.0); ruler_y1 = defaults->get("RULER_Y1", 0.0); ruler_y2 = defaults->get("RULER_Y2", 0.0); sprintf(current_folder, MEDIA_FOLDER); defaults->get("CURRENT_FOLDER", current_folder); cursor_on_frames = defaults->get("CURSOR_ON_FRAMES", 1); cwindow_dest = defaults->get("CWINDOW_DEST", 0); cwindow_mask = defaults->get("CWINDOW_MASK", 0); cwindow_meter = defaults->get("CWINDOW_METER", 1); cwindow_operation = defaults->get("CWINDOW_OPERATION", 0); cwindow_scrollbars = defaults->get("CWINDOW_SCROLLBARS", 0); cwindow_xscroll = defaults->get("CWINDOW_XSCROLL", 0); cwindow_yscroll = defaults->get("CWINDOW_YSCROLL", 0); cwindow_zoom = defaults->get("CWINDOW_ZOOM", (float)1); sprintf(default_atransition, "Crossfade"); defaults->get("DEFAULT_ATRANSITION", default_atransition); sprintf(default_vtransition, "Dissolve"); defaults->get("DEFAULT_VTRANSITION", default_vtransition); default_transition_length = defaults->get("DEFAULT_TRANSITION_LENGTH", (double)1); edit_handle_mode[0] = defaults->get("EDIT_HANDLE_MODE0", MOVE_ALL_EDITS); edit_handle_mode[1] = defaults->get("EDIT_HANDLE_MODE1", MOVE_ONE_EDIT); edit_handle_mode[2] = defaults->get("EDIT_HANDLE_MODE2", MOVE_NO_EDITS); editing_mode = defaults->get("EDITING_MODE", EDITING_IBEAM); enable_duplex = defaults->get("ENABLE_DUPLEX", 1); folderlist_format = defaults->get("FOLDERLIST_FORMAT", ASSETS_TEXT); frame_rate = defaults->get("FRAMERATE", frame_rate); frames_per_foot = defaults->get("FRAMES_PER_FOOT", (float)16); interpolation_type = defaults->get("INTERPOLATION_TYPE", interpolation_type); interpolate_raw = defaults->get("INTERPOLATE_RAW", interpolate_raw); white_balance_raw = defaults->get("WHITE_BALANCE_RAW", white_balance_raw); labels_follow_edits = defaults->get("LABELS_FOLLOW_EDITS", 1); plugins_follow_edits = defaults->get("PLUGINS_FOLLOW_EDITS", 1); auto_keyframes = defaults->get("AUTO_KEYFRAMES", 0); meter_format = defaults->get("METER_FORMAT", METER_DB); min_meter_db = defaults->get("MIN_METER_DB", -85); max_meter_db = defaults->get("MAX_METER_DB", 6); mpeg4_deblock = defaults->get("MPEG4_DEBLOCK", mpeg4_deblock); output_w = defaults->get("OUTPUTW", output_w); output_h = defaults->get("OUTPUTH", output_h); playback_buffer = defaults->get("PLAYBACK_BUFFER", 4096); playback_preload = defaults->get("PLAYBACK_PRELOAD", 0); playback_software_position = defaults->get("PLAYBACK_SOFTWARE_POSITION", 0); delete playback_config; playback_config = new PlaybackConfig; playback_config->load_defaults(defaults); real_time_playback = defaults->get("PLAYBACK_REALTIME", 0); real_time_record = defaults->get("REALTIME_RECORD", 0); record_software_position = defaults->get("RECORD_SOFTWARE_POSITION", 1); record_sync_drives = defaults->get("RECORD_SYNC_DRIVES", 0); // record_speed = defaults->get("RECORD_SPEED", 24); record_write_length = defaults->get("RECORD_WRITE_LENGTH", 131072); recording_format->load_defaults(defaults, "RECORD_", 1, 1, 1, 1, 1); safe_regions = defaults->get("SAFE_REGIONS", 1); sample_rate = defaults->get("SAMPLERATE", sample_rate); scrub_speed = defaults->get("SCRUB_SPEED", (float)2); si_useduration = defaults->get("SI_USEDURATION",1); si_duration = defaults->get("SI_DURATION",3); show_assets = defaults->get("SHOW_ASSETS", 1); show_titles = defaults->get("SHOW_TITLES", 1); // test_playback_edits = defaults->get("TEST_PLAYBACK_EDITS", 1); time_format = defaults->get("TIME_FORMAT", TIME_HMSF); for(int i = 0; i < 4; i++) { sprintf(string, "TIMECODE_OFFSET_%d", i); timecode_offset[i] = defaults->get(string, 0); } nudge_seconds = defaults->get("NUDGE_FORMAT", 1); tool_window = defaults->get("TOOL_WINDOW", 0); vconfig_in->load_defaults(defaults); for(int i = 0; i < MAXCHANNELS; i++) { int default_position = i * output_w; sprintf(string, "VCHANNEL_X_%d", i); vchannel_x[i] = defaults->get(string, default_position); sprintf(string, "VCHANNEL_Y_%d", i); vchannel_y[i] = defaults->get(string, 0); } video_channels = defaults->get("VCHANNELS", video_channels); video_every_frame = defaults->get("VIDEO_EVERY_FRAME", 0); video_asynchronous = defaults->get("VIDEO_ASYNCHRONOUS", 0); video_tracks = defaults->get("VTRACKS", video_tracks); video_write_length = defaults->get("VIDEO_WRITE_LENGTH", 30); view_follows_playback = defaults->get("VIEW_FOLLOWS_PLAYBACK", 1); vwindow_meter = defaults->get("VWINDOW_METER", 1); decode_subtitles = defaults->get("DECODE_SUBTITLES", decode_subtitles); subtitle_number = defaults->get("SUBTITLE_NUMBER", subtitle_number); vwindow_folder[0] = 0; vwindow_source = -1; vwindow_zoom = defaults->get("VWINDOW_ZOOM", (float)1); boundaries(); return 0; }