diff --git a/.vscode/settings.json b/.vscode/settings.json index 1fde8c11fd..efae5a0931 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -19,7 +19,8 @@ "iosfwd": "c", "xlocbuf": "c", "xmemory0": "c", - "ios": "c" + "ios": "c", + "list": "c" }, "C_Cpp.dimInactiveRegions": false, } \ No newline at end of file diff --git a/configuration.c b/configuration.c index 758e111fc6..57fcafdff2 100644 --- a/configuration.c +++ b/configuration.c @@ -1620,7 +1620,7 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings, #ifdef HAVE_FFMPEG SETTING_UINT("video_stream_port", &settings->uints.video_stream_port, true, RARCH_STREAM_DEFAULT_PORT, false); SETTING_UINT("video_record_quality", &settings->uints.video_record_quality, true, RECORD_CONFIG_TYPE_RECORDING_LOSSLESS_QUALITY, false); - SETTING_UINT("video_stream_quality", &settings->uints.video_record_quality, true, RECORD_CONFIG_TYPE_STREAMING_LOW_QUALITY, false); + SETTING_UINT("video_stream_quality", &settings->uints.video_stream_quality, true, RECORD_CONFIG_TYPE_STREAMING_LOW_QUALITY, false); #endif *size = count; diff --git a/intl/msg_hash_lbl.h b/intl/msg_hash_lbl.h index f2e17652d5..e48254fbdd 100644 --- a/intl/msg_hash_lbl.h +++ b/intl/msg_hash_lbl.h @@ -903,6 +903,8 @@ MSG_HASH(MENU_ENUM_LABEL_RECORDING_SETTINGS, "recording_settings") MSG_HASH(MENU_ENUM_LABEL_RECORD_CONFIG, "record_config") +MSG_HASH(MENU_ENUM_LABEL_STREAM_CONFIG, + "stream_config") MSG_HASH(MENU_ENUM_LABEL_RECORD_DRIVER, "record_driver") MSG_HASH(MENU_ENUM_LABEL_MIDI_DRIVER, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 5737f704b4..215d584580 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -2151,7 +2151,11 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RECORD_CONFIG, - "Load Recording Config..." + "Custom Record Config" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAM_CONFIG, + "Custom Stream Config" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RECORD_DRIVER, diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index 4c3fac9c5c..fd5008c71b 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -118,6 +118,7 @@ generic_deferred_push(deferred_push_cheat_file_load, DISPLAYLIST_ generic_deferred_push(deferred_push_cheat_file_load_append, DISPLAYLIST_CHEAT_FILES) generic_deferred_push(deferred_push_remap_file_load, DISPLAYLIST_REMAP_FILES) generic_deferred_push(deferred_push_record_configfile, DISPLAYLIST_RECORD_CONFIG_FILES) +generic_deferred_push(deferred_push_stream_configfile, DISPLAYLIST_STREAM_CONFIG_FILES) generic_deferred_push(deferred_push_input_overlay, DISPLAYLIST_OVERLAYS) generic_deferred_push(deferred_push_video_font_path, DISPLAYLIST_FONTS) generic_deferred_push(deferred_push_xmb_font_path, DISPLAYLIST_FONTS) @@ -1034,6 +1035,9 @@ static int menu_cbs_init_bind_deferred_push_compare_label( case MENU_ENUM_LABEL_RECORD_CONFIG: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_record_configfile); break; + case MENU_ENUM_LABEL_STREAM_CONFIG: + BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_stream_configfile); + break; case MENU_ENUM_LABEL_SHADER_OPTIONS: BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_shader_options); break; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 8c2032da5e..0cee50acdc 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -7058,6 +7058,10 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) MENU_ENUM_LABEL_RECORD_CONFIG, PARSE_ONLY_PATH, false) == 0) count++; + if (menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_STREAM_CONFIG, + PARSE_ONLY_PATH, false) == 0) + count++; if (menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_RECORD_PATH, PARSE_ONLY_STRING, false) == 0) @@ -7618,6 +7622,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) info->exts = strdup("cfg"); break; case DISPLAYLIST_RECORD_CONFIG_FILES: + case DISPLAYLIST_STREAM_CONFIG_FILES: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); filebrowser_clear_type(); info->type_default = FILE_TYPE_RECORD_CONFIG; diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 10a0ad40aa..5a8d49b79f 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -102,6 +102,7 @@ enum menu_displaylist_ctl_state DISPLAYLIST_CHEAT_FILES, DISPLAYLIST_REMAP_FILES, DISPLAYLIST_RECORD_CONFIG_FILES, + DISPLAYLIST_STREAM_CONFIG_FILES, DISPLAYLIST_CONFIG_FILES, DISPLAYLIST_CONTENT_HISTORY, DISPLAYLIST_IMAGES, diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 50090a759d..1f9e026f43 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -5926,8 +5926,8 @@ static bool setting_append_list( START_SUB_GROUP(list, list_info, "State", &group_info, &subgroup_info, parent_group); CONFIG_PATH( list, list_info, - global->record.config, - sizeof(global->record.config), + settings->paths.path_record_config, + sizeof(settings->paths.path_record_config), MENU_ENUM_LABEL_RECORD_CONFIG, MENU_ENUM_LABEL_VALUE_RECORD_CONFIG, "", @@ -5938,19 +5938,34 @@ static bool setting_append_list( general_read_handler); menu_settings_list_current_add_values(list, list_info, "cfg"); - CONFIG_STRING( + CONFIG_PATH( list, list_info, - global->record.path, - sizeof(global->record.path), - MENU_ENUM_LABEL_RECORD_PATH, - MENU_ENUM_LABEL_VALUE_RECORD_PATH, + settings->paths.path_stream_config, + sizeof(settings->paths.path_stream_config), + MENU_ENUM_LABEL_STREAM_CONFIG, + MENU_ENUM_LABEL_VALUE_STREAM_CONFIG, "", &group_info, &subgroup_info, parent_group, general_write_handler, general_read_handler); - settings_data_list_current_add_flags(list, list_info, SD_FLAG_ALLOW_INPUT); + menu_settings_list_current_add_values(list, list_info, "cfg"); + + CONFIG_DIR( + list, list_info, + global->record.output_dir, + sizeof(global->record.output_dir), + MENU_ENUM_LABEL_SCREENSHOT_DIRECTORY, + MENU_ENUM_LABEL_VALUE_SCREENSHOT_DIRECTORY, + g_defaults.dirs[DEFAULT_DIR_SCREENSHOT], + MENU_ENUM_LABEL_VALUE_DIRECTORY_CONTENT, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, + general_read_handler); + (*list)[list_info->index - 1].action_start = directory_action_start_generic; END_SUB_GROUP(list, list_info, parent_group); diff --git a/msg_hash.h b/msg_hash.h index 954b91a4e9..30038dc55a 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1680,6 +1680,7 @@ enum msg_hash_enums MENU_LABEL(VIDEO_GPU_RECORD), MENU_LABEL(RECORD_USE_OUTPUT_DIRECTORY), MENU_LABEL(RECORD_CONFIG), + MENU_LABEL(STREAM_CONFIG), MENU_LABEL(RECORD_PATH), MENU_LABEL(VIDEO_POST_FILTER_RECORD), MENU_LABEL(RECORD_ENABLE), diff --git a/record/record_driver.c b/record/record_driver.c index 1121749c81..a6ef7af312 100644 --- a/record/record_driver.c +++ b/record/record_driver.c @@ -52,7 +52,6 @@ size_t recording_gpu_width = 0; size_t recording_gpu_height = 0; static bool recording_enable = false; static bool streaming_enable = false; -static bool recording_use_output_dir = false; static const record_driver_t *recording_driver = NULL; void *recording_data = NULL; @@ -374,10 +373,6 @@ bool recording_init(void) } } - if (recording_use_output_dir) - fill_pathname_join(output, - global->record.output_dir, - global->record.path, sizeof(output)); params.out_width = av_info->geometry.base_width; params.out_height = av_info->geometry.base_height; @@ -522,7 +517,6 @@ unsigned *recording_driver_get_height(void) void recording_driver_free_state(void) { - recording_use_output_dir = false; recording_gpu_width = 0; recording_gpu_height = 0; recording_width = 0;