mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-02-09 17:26:03 +00:00
FS-11425 add video_codec_config_profile_name to conference to choose a different codec profile
This commit is contained in:
parent
48539c278d
commit
d12aeb4fff
@ -3371,6 +3371,10 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
|
|||||||
canvas->write_codecs[i] = switch_core_alloc(conference->pool, sizeof(codec_set_t));
|
canvas->write_codecs[i] = switch_core_alloc(conference->pool, sizeof(codec_set_t));
|
||||||
canvas->write_codecs_count = i+1;
|
canvas->write_codecs_count = i+1;
|
||||||
|
|
||||||
|
if (conference->video_codec_config_profile_name) {
|
||||||
|
switch_set_string(conference->video_codec_settings.video.config_profile_name, conference->video_codec_config_profile_name);
|
||||||
|
}
|
||||||
|
|
||||||
if (switch_core_codec_copy(check_codec, &canvas->write_codecs[i]->codec,
|
if (switch_core_codec_copy(check_codec, &canvas->write_codecs[i]->codec,
|
||||||
&conference->video_codec_settings, conference->pool) == SWITCH_STATUS_SUCCESS) {
|
&conference->video_codec_settings, conference->pool) == SWITCH_STATUS_SUCCESS) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,
|
||||||
|
@ -2767,6 +2767,7 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co
|
|||||||
int scale_h264_canvas_height = 0;
|
int scale_h264_canvas_height = 0;
|
||||||
int scale_h264_canvas_fps_divisor = 0;
|
int scale_h264_canvas_fps_divisor = 0;
|
||||||
char *scale_h264_canvas_bandwidth = NULL;
|
char *scale_h264_canvas_bandwidth = NULL;
|
||||||
|
char *video_codec_config_profile_name = NULL;
|
||||||
int tmp;
|
int tmp;
|
||||||
|
|
||||||
/* Validate the conference name */
|
/* Validate the conference name */
|
||||||
@ -3136,6 +3137,8 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co
|
|||||||
if (scale_h264_canvas_fps_divisor < 0) scale_h264_canvas_fps_divisor = 0;
|
if (scale_h264_canvas_fps_divisor < 0) scale_h264_canvas_fps_divisor = 0;
|
||||||
} else if (!strcasecmp(var, "scale-h264-canvas-bandwidth") && !zstr(val)) {
|
} else if (!strcasecmp(var, "scale-h264-canvas-bandwidth") && !zstr(val)) {
|
||||||
scale_h264_canvas_bandwidth = val;
|
scale_h264_canvas_bandwidth = val;
|
||||||
|
} else if (!strcasecmp(var, "video-codec-config-profile-name") && !zstr(val)) {
|
||||||
|
video_codec_config_profile_name = val;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3203,6 +3206,7 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co
|
|||||||
conference->auto_kps_debounce = auto_kps_debounce;
|
conference->auto_kps_debounce = auto_kps_debounce;
|
||||||
switch_event_create_plain(&conference->variables, SWITCH_EVENT_CHANNEL_DATA);
|
switch_event_create_plain(&conference->variables, SWITCH_EVENT_CHANNEL_DATA);
|
||||||
conference->conference_video_mode = conference_video_mode;
|
conference->conference_video_mode = conference_video_mode;
|
||||||
|
conference->video_codec_config_profile_name = switch_core_strdup(conference->pool, video_codec_config_profile_name);
|
||||||
|
|
||||||
conference->scale_h264_canvas_width = scale_h264_canvas_width;
|
conference->scale_h264_canvas_width = scale_h264_canvas_width;
|
||||||
conference->scale_h264_canvas_height = scale_h264_canvas_height;
|
conference->scale_h264_canvas_height = scale_h264_canvas_height;
|
||||||
|
@ -759,6 +759,7 @@ typedef struct conference_obj {
|
|||||||
uint32_t floor_holder_score_iir;
|
uint32_t floor_holder_score_iir;
|
||||||
char *default_layout_name;
|
char *default_layout_name;
|
||||||
int mux_paused;
|
int mux_paused;
|
||||||
|
char *video_codec_config_profile_name;
|
||||||
} conference_obj_t;
|
} conference_obj_t;
|
||||||
|
|
||||||
/* Relationship with another member */
|
/* Relationship with another member */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user