]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7513: move code to core
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 4 Mar 2015 17:22:37 +0000 (11:22 -0600)
committerMichael Jerris <mike@jerris.com>
Thu, 28 May 2015 17:47:08 +0000 (12:47 -0500)
src/mod/applications/mod_conference/mod_conference.c
src/switch_core_media.c

index 0704076dff2db92289197e08fefc5ed4a185b260..29e7e9b9e6e353f0bea93c065281c9ac1384e891 100644 (file)
@@ -1595,7 +1595,6 @@ static void *SWITCH_THREAD_FUNC conference_video_muxing_write_thread_run(switch_
 {
        conference_member_t *member = (conference_member_t *) obj;
        void *pop;
-       int loops = 0;
 
        while(switch_test_flag(member, MFLAG_RUNNING) || switch_queue_size(member->mux_out_queue)) {
                switch_frame_t *frame;
@@ -1604,12 +1603,6 @@ static void *SWITCH_THREAD_FUNC conference_video_muxing_write_thread_run(switch_
                        if (switch_queue_pop(member->mux_out_queue, &pop) == SWITCH_STATUS_SUCCESS) {
                                if (!pop) continue;
 
-                               if (loops == 0 || loops == 50) {
-                                       switch_core_media_gen_key_frame(member->session);
-                                       switch_core_session_request_video_refresh(member->session);
-                               }
-                               loops++;
-
                                frame = (switch_frame_t *) pop;
                                if (switch_test_flag(frame, SFF_ENCODED)) {
                                        switch_core_session_write_encoded_video_frame(member->session, frame, 0, 0);
index 25d3077be6f95fdbfcf0eb8717387cfe022b226c..64aae8328d22d7e3b499acbf6a7a413360d95d4e 100644 (file)
@@ -4726,16 +4726,23 @@ static void *SWITCH_THREAD_FUNC video_helper_thread(switch_thread_t *thread, voi
                        }
                
                        if (read_frame->img) {
-                               if (++vloops > 5) {
+                               if (vloops > 5) {
                                        switch_channel_set_flag(channel, CF_VIDEO_READY);
                                        smh->vid_params.width = read_frame->img->d_w;
                                        smh->vid_params.height = read_frame->img->d_h;
                                }
-                       } else if (read_frame->datalen > 2 && !switch_channel_test_flag(channel, CF_VIDEO_DECODED_READ) && ++vloops > 20) {
+                       } else if (read_frame->datalen > 2 && !switch_channel_test_flag(channel, CF_VIDEO_DECODED_READ) && vloops > 20) {
                                switch_channel_set_flag(channel, CF_VIDEO_READY);
                        }
                }
 
+               if (vloops < 300 && (vloops % 100) == 0) {
+                       switch_core_media_gen_key_frame(session);
+                       switch_core_session_request_video_refresh(session);
+               }
+               
+               vloops++;
+
                if (!buf) {
                        int buflen = SWITCH_RECOMMENDED_BUFFER_SIZE * 4;
                        buf = switch_core_session_alloc(session, buflen);