]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7499 FS-7513 video mute the old way seems to break chrome when resuming, add some...
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 6 May 2015 19:23:10 +0000 (14:23 -0500)
committerMichael Jerris <mike@jerris.com>
Thu, 28 May 2015 17:47:30 +0000 (12:47 -0500)
src/mod/applications/mod_conference/mod_conference.c
src/switch_rtp.c

index 266417412851af2d6206fd84f2b78f0b0c00b20a..f95391c26630430c49beb1be9dc2824dad92522c 100644 (file)
@@ -2029,7 +2029,6 @@ static void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread
                                        }
 
                                        imember->blanks = 0;
-                                       switch_core_session_request_video_refresh(imember->session);
                                        switch_channel_video_sync(imember->channel);
                                }
                                                
@@ -8319,11 +8318,11 @@ static switch_status_t conf_api_sub_vmute(conference_member_t *member, switch_st
 
        switch_clear_flag_locked(member, MFLAG_CAN_BE_SEEN);
 
-       if (member->channel) {
-               switch_channel_set_flag(member->channel, CF_VIDEO_PAUSE_READ);
-               switch_core_session_request_video_refresh(member->session);
-               switch_channel_video_sync(member->channel);
-       }
+       //if (member->channel) {
+               //switch_channel_set_flag(member->channel, CF_VIDEO_PAUSE_READ);
+               //switch_core_session_request_video_refresh(member->session);
+               //switch_channel_video_sync(member->channel);
+       //}
 
        if (!(data) || !strstr((char *) data, "quiet")) {
                switch_set_flag(member, MFLAG_INDICATE_MUTE);
@@ -8378,8 +8377,7 @@ static switch_status_t conf_api_sub_unvmute(conference_member_t *member, switch_
        switch_set_flag_locked(member, MFLAG_CAN_BE_SEEN);
 
        if (member->channel) {
-               switch_channel_clear_flag(member->channel, CF_VIDEO_PAUSE_READ);
-               switch_core_session_request_video_refresh(member->session);
+               //switch_channel_clear_flag(member->channel, CF_VIDEO_PAUSE_READ);
                switch_channel_video_sync(member->channel);
        }
 
index 9bb4287a69fb103df4c26de32c7c954acb250a37..24b87d0eea21e098e53b714c6f9fb4ffd6f16bb9 100644 (file)
@@ -4791,6 +4791,12 @@ static void do_flush(switch_rtp_t *rtp_session, int force)
                }
        }
 
+       if (rtp_session->flags[SWITCH_RTP_FLAG_VIDEO] && rtp_session->session) {
+               int type = 1; // sum flags: 1 encoder; 2; decoder
+               switch_core_media_codec_control(rtp_session->session, SWITCH_MEDIA_TYPE_VIDEO, SWITCH_IO_READ, SCC_VIDEO_RESET, SCCT_INT, (void *)&type, NULL, NULL);
+               switch_core_session_request_video_refresh(rtp_session->session);
+       }
+
        READ_DEC(rtp_session);
 }