]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-8130 fix regression in conference recording
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 16 Sep 2015 16:46:06 +0000 (11:46 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Wed, 16 Sep 2015 16:46:06 +0000 (11:46 -0500)
src/mod/applications/mod_conference/conference_api.c
src/mod/applications/mod_conference/conference_event.c
src/mod/applications/mod_conference/conference_member.c
src/mod/applications/mod_conference/conference_video.c

index b96563f178711dc0ba933db9b7c8ae5b4fdf99f6..4009c4aafaa2144915084bd939fa093ae3dfe148 100644 (file)
@@ -401,7 +401,7 @@ switch_status_t conference_api_sub_conference_video_vmute_snap(conference_member
        if (member == NULL)
                return SWITCH_STATUS_GENERR;
 
-       if (switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY) {
+       if (member->video_media_flow == SWITCH_MEDIA_FLOW_SENDONLY) {
                return SWITCH_STATUS_SUCCESS;
        }
 
@@ -430,7 +430,7 @@ switch_status_t conference_api_sub_vmute(conference_member_t *member, switch_str
        if (member == NULL)
                return SWITCH_STATUS_GENERR;
 
-       if (switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY) {
+       if (member->video_media_flow == SWITCH_MEDIA_FLOW_SENDONLY) {
                return SWITCH_STATUS_SUCCESS;
        }
 
@@ -486,7 +486,7 @@ switch_status_t conference_api_sub_unvmute(conference_member_t *member, switch_s
        if (member == NULL)
                return SWITCH_STATUS_GENERR;
 
-       if (switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY) {
+       if (member->video_media_flow == SWITCH_MEDIA_FLOW_SENDONLY) {
                return SWITCH_STATUS_SUCCESS;
        }
 
index b37ecd7e665bb6ac6852644e47f5e88bfa251735..4855fc529b9d3baf70a3b2d7af0c394078918d0e 100644 (file)
@@ -378,7 +378,7 @@ void conference_event_la_command_handler(switch_live_array_t *la, const char *cm
 void conference_event_adv_la(conference_obj_t *conference, conference_member_t *member, switch_bool_t join)
 {
 
-       //if (switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY) {
+       //if (member->video_media_flow == SWITCH_MEDIA_FLOW_SENDONLY) {
        switch_channel_set_flag(member->channel, CF_VIDEO_REFRESH_REQ);
        switch_core_media_gen_key_frame(member->session);
        //}
index 664cccfae9e6eefe79c8d7f913ea9b6d13a4cea3..e1f5c3d7fd8a0cc50c395698d300d89ca6e1fa90 100644 (file)
@@ -170,7 +170,7 @@ void conference_member_update_status_field(conference_member_t *member)
                if (switch_channel_test_flag(member->channel, CF_VIDEO) || member->avatar_png_img) {
                        video = cJSON_CreateObject();
                        cJSON_AddItemToObject(video, "avatarPresented", cJSON_CreateBool(!!member->avatar_png_img));
-                       cJSON_AddItemToObject(video, "mediaFlow", cJSON_CreateString(switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY ? "sendOnly" : "sendRecv"));
+                       cJSON_AddItemToObject(video, "mediaFlow", cJSON_CreateString(member->video_media_flow == SWITCH_MEDIA_FLOW_SENDONLY ? "sendOnly" : "sendRecv"));
                        cJSON_AddItemToObject(video, "muted", cJSON_CreateBool(!conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN)));
                        cJSON_AddItemToObject(video, "floor", cJSON_CreateBool(member && member->id == member->conference->video_floor_holder));
                        if (member && member->id == member->conference->video_floor_holder && conference_utils_test_flag(member->conference, CFLAG_VID_FLOOR_LOCK)) {
@@ -702,7 +702,7 @@ switch_status_t conference_member_add(conference_obj_t *conference, conference_m
                switch_mutex_unlock(conference->canvas_mutex);
        }
 
-       if (switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY) {
+       if (member->video_media_flow == SWITCH_MEDIA_FLOW_SENDONLY) {
                conference_utils_member_clear_flag_locked(member, MFLAG_CAN_BE_SEEN);
        }
 
index 1660a380de30ddc49436025898e3d87bcbdc5e54..42106b5c68198b08b130c74442742095f23c6f1b 100644 (file)
@@ -888,7 +888,7 @@ switch_status_t conference_video_attach_video_layer(conference_member_t *member,
                return SWITCH_STATUS_FALSE;
        }
 
-       if (switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY && !member->avatar_png_img) {
+       if (member->video_media_flow == SWITCH_MEDIA_FLOW_SENDONLY && !member->avatar_png_img) {
                return SWITCH_STATUS_FALSE;
        }
 
@@ -1264,7 +1264,7 @@ void conference_video_write_canvas_image_to_codec_group(conference_obj_t *confer
                                        continue;
                                }
 
-                               if (switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_RECVONLY) {
+                               if (imember->video_media_flow == SWITCH_MEDIA_FLOW_RECVONLY) {
                                        continue;
                                }
 
@@ -1571,7 +1571,7 @@ void conference_video_check_avatar(conference_member_t *member, switch_bool_t fo
        canvas = member->conference->canvases[member->canvas_id];
 
        if (conference_utils_test_flag(member->conference, CFLAG_VIDEO_REQUIRED_FOR_CANVAS) &&
-               (!switch_channel_test_flag(member->channel, CF_VIDEO) || switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY)) {
+               (!switch_channel_test_flag(member->channel, CF_VIDEO) || member->video_media_flow == SWITCH_MEDIA_FLOW_SENDONLY)) {
                return;
        }
 
@@ -1581,7 +1581,7 @@ void conference_video_check_avatar(conference_member_t *member, switch_bool_t fo
 
        member->avatar_patched = 0;
 
-       if (!force && switch_channel_test_flag(member->channel, CF_VIDEO) && switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_SENDONLY) {
+       if (!force && switch_channel_test_flag(member->channel, CF_VIDEO) && member->video_media_flow != SWITCH_MEDIA_FLOW_SENDONLY) {
                conference_utils_member_set_flag_locked(member, MFLAG_ACK_VIDEO);
        } else {
                if (member->conference->no_video_avatar) {
@@ -1705,7 +1705,7 @@ switch_status_t conference_video_find_layer(conference_obj_t *conference, mcu_ca
        if (!layer &&
                (canvas->layers_used < canvas->total_layers ||
                 (avatar_layers && !member->avatar_png_img) || conference_utils_member_test_flag(member, MFLAG_MOD)) &&
-               (member->avatar_png_img || switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_SENDONLY)) {
+               (member->avatar_png_img || member->video_media_flow != SWITCH_MEDIA_FLOW_SENDONLY)) {
                /* find an empty layer */
                for (i = 0; i < canvas->total_layers; i++) {
                        mcu_layer_t *xlayer = &canvas->layers[i];
@@ -1778,7 +1778,7 @@ void conference_video_pop_next_image(conference_member_t *member, switch_image_t
                        size = switch_queue_size(member->video_queue);
                } while(size > 1);
 
-               if (conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN) && member->video_layer_id > -1 && switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_SENDONLY) {
+               if (conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN) && member->video_layer_id > -1 && member->video_media_flow != SWITCH_MEDIA_FLOW_SENDONLY) {
                        if (img) {
                                member->good_img++;
                                if ((member->good_img % (int)(member->conference->video_fps.fps * 10)) == 0) {
@@ -2130,7 +2130,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
                                switch_img_free(&img);
                        }
 
-                       if (!layer && (!conference_utils_test_flag(imember->conference, CFLAG_VIDEO_REQUIRED_FOR_CANVAS) || ((switch_channel_test_flag(imember->channel, CF_VIDEO) && switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_SENDONLY)))) {
+                       if (!layer && (!conference_utils_test_flag(imember->conference, CFLAG_VIDEO_REQUIRED_FOR_CANVAS) || ((switch_channel_test_flag(imember->channel, CF_VIDEO) && imember->video_media_flow != SWITCH_MEDIA_FLOW_SENDONLY)))) {
                                if (conference_video_find_layer(conference, canvas, imember, &layer) == SWITCH_STATUS_SUCCESS) {
                                        imember->layer_timeout = 0;
                                } else {
@@ -2256,7 +2256,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
                                                total += conference->members_with_avatar;
                                        }
 
-                                       if (switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_SENDONLY) {
+                                       if (imember->video_media_flow != SWITCH_MEDIA_FLOW_SENDONLY) {
                                                total--;
                                        }
 
@@ -2269,7 +2269,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
                                        }
                                }
                                
-                               if (switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_SENDONLY) {
+                               if (imember->video_media_flow != SWITCH_MEDIA_FLOW_SENDONLY) {
                                        conference_video_pop_next_image(imember, &imember->pcanvas_img);
                                }
 
@@ -2300,7 +2300,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
                        for (imember = conference->members; imember; imember = imember->next) {
                                int i = 0;
 
-                               if (!imember->session || !switch_channel_test_flag(imember->channel, CF_VIDEO || switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY) ||
+                               if (!imember->session || !switch_channel_test_flag(imember->channel, CF_VIDEO || imember->video_media_flow == SWITCH_MEDIA_FLOW_SENDONLY) ||
                                        switch_core_session_read_lock(imember->session) != SWITCH_STATUS_SUCCESS) {
                                        continue;
                                }
@@ -2309,7 +2309,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
                                        mcu_layer_t *layer = NULL;
                                        switch_image_t *use_img = NULL;
 
-                                       if (!omember->session || !switch_channel_test_flag(omember->channel, CF_VIDEO) || switch_core_session_media_flow(omember->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY) {
+                                       if (!omember->session || !switch_channel_test_flag(omember->channel, CF_VIDEO) || omember->video_media_flow == SWITCH_MEDIA_FLOW_SENDONLY) {
                                                continue;
                                        }
 
@@ -2590,7 +2590,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
                                }
 
                                if (!imember->session || !switch_channel_test_flag(imember->channel, CF_VIDEO) ||
-                                       switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_RECVONLY ||
+                                       imember->video_media_flow == SWITCH_MEDIA_FLOW_RECVONLY ||
                                        switch_core_session_read_lock(imember->session) != SWITCH_STATUS_SUCCESS) {
                                        continue;
                                }
@@ -2931,7 +2931,7 @@ void *SWITCH_THREAD_FUNC conference_video_super_muxing_thread_run(switch_thread_
                                continue;
                        }
 
-                       if (switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_RECVONLY) {
+                       if (imember->video_media_flow == SWITCH_MEDIA_FLOW_RECVONLY) {
                                continue;
                        }
 
@@ -3024,7 +3024,7 @@ void conference_video_find_floor(conference_member_t *member, switch_bool_t ente
                        continue;
                }
 
-               if (switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY && !imember->avatar_png_img) {
+               if (imember->video_media_flow == SWITCH_MEDIA_FLOW_SENDONLY && !imember->avatar_png_img) {
                        continue;
                }
 
@@ -3080,7 +3080,7 @@ void conference_video_set_floor_holder(conference_obj_t *conference, conference_
                return;
        }
 
-       if (member && switch_core_session_media_flow(member->session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY && !member->avatar_png_img) {
+       if (member && member->video_media_flow == SWITCH_MEDIA_FLOW_SENDONLY && !member->avatar_png_img) {
                return;
        }