mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-06-07 13:35:00 +00:00
FS-10138: [freeswitch-core,mod_conference] Add alpha video to conference
This commit is contained in:
parent
e2fec7bddb
commit
2e71cfd536
@ -1120,6 +1120,10 @@ switch_status_t conference_member_del(conference_obj_t *conference, conference_m
|
|||||||
|
|
||||||
switch_thread_rwlock_wrlock(member->rwlock);
|
switch_thread_rwlock_wrlock(member->rwlock);
|
||||||
|
|
||||||
|
if (member->video_queue) {
|
||||||
|
conference_video_flush_queue(member->video_queue, 0);
|
||||||
|
}
|
||||||
|
|
||||||
if (member->session && (exit_sound = switch_channel_get_variable(switch_core_session_get_channel(member->session), "conference_exit_sound"))) {
|
if (member->session && (exit_sound = switch_channel_get_variable(switch_core_session_get_channel(member->session), "conference_exit_sound"))) {
|
||||||
conference_file_play(conference, (char *)exit_sound, CONF_DEFAULT_LEADIN,
|
conference_file_play(conference, (char *)exit_sound, CONF_DEFAULT_LEADIN,
|
||||||
switch_core_session_get_channel(member->session), 0);
|
switch_core_session_get_channel(member->session), 0);
|
||||||
|
@ -3658,11 +3658,15 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
|
|||||||
switch_img_free(&file_img);
|
switch_img_free(&file_img);
|
||||||
switch_img_fit(&write_frame.img, canvas->img->d_w, canvas->img->d_h, SWITCH_FIT_SIZE);
|
switch_img_fit(&write_frame.img, canvas->img->d_w, canvas->img->d_h, SWITCH_FIT_SIZE);
|
||||||
file_img = write_frame.img;
|
file_img = write_frame.img;
|
||||||
|
|
||||||
if (file_img->fmt == SWITCH_IMG_FMT_ARGB) {
|
if (file_img->fmt == SWITCH_IMG_FMT_ARGB) {
|
||||||
|
switch_image_t *overlay_img = NULL;
|
||||||
|
switch_img_copy(canvas->img, &overlay_img);
|
||||||
|
|
||||||
|
write_img = overlay_img;
|
||||||
switch_img_patch(write_img, file_img, 0, 0);
|
switch_img_patch(write_img, file_img, 0, 0);
|
||||||
switch_img_free(&file_img);
|
switch_img_free(&file_img);
|
||||||
switch_img_copy(write_img, &file_img);
|
file_img = overlay_img;
|
||||||
} else {
|
} else {
|
||||||
write_img = file_img;
|
write_img = file_img;
|
||||||
}
|
}
|
||||||
|
@ -1149,6 +1149,7 @@ void conference_event_mod_channel_handler(const char *event_channel, cJSON *json
|
|||||||
void conference_event_chat_channel_handler(const char *event_channel, cJSON *json, const char *key, switch_event_channel_id_t id);
|
void conference_event_chat_channel_handler(const char *event_channel, cJSON *json, const char *key, switch_event_channel_id_t id);
|
||||||
|
|
||||||
void conference_member_itterator(conference_obj_t *conference, switch_stream_handle_t *stream, uint8_t non_mod, conference_api_member_cmd_t pfncallback, void *data);
|
void conference_member_itterator(conference_obj_t *conference, switch_stream_handle_t *stream, uint8_t non_mod, conference_api_member_cmd_t pfncallback, void *data);
|
||||||
|
int conference_video_flush_queue(switch_queue_t *q, int min);
|
||||||
|
|
||||||
switch_status_t conference_api_sub_mute(conference_member_t *member, switch_stream_handle_t *stream, void *data);
|
switch_status_t conference_api_sub_mute(conference_member_t *member, switch_stream_handle_t *stream, void *data);
|
||||||
switch_status_t conference_api_sub_tmute(conference_member_t *member, switch_stream_handle_t *stream, void *data);
|
switch_status_t conference_api_sub_tmute(conference_member_t *member, switch_stream_handle_t *stream, void *data);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user