]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7513: don't write 0 data, openh264 might return 0
authorSeven Du <dujinfang@gmail.com>
Wed, 15 Apr 2015 12:28:53 +0000 (20:28 +0800)
committerMichael Jerris <mike@jerris.com>
Thu, 28 May 2015 17:47:20 +0000 (12:47 -0500)
src/mod/applications/mod_conference/mod_conference.c
src/switch_core_media.c

index 7f6f6af1484fb8cfed9cee617b193a44f8cc0b1f..b4d4c6193196a5d98834a0a489a4ac7cc533d011 100644 (file)
@@ -1593,6 +1593,11 @@ static void write_canvas_image_to_codec_group(conference_obj_t *conference, code
                if (encode_status == SWITCH_STATUS_SUCCESS || encode_status == SWITCH_STATUS_MORE_DATA) {
 
                        switch_assert((encode_status == SWITCH_STATUS_SUCCESS && frame->m) || !frame->m);
+
+                       if (frame->datalen == 0) {
+                               continue;
+                       }
+
                        if (frame->timestamp) {
                                switch_set_flag(frame, SFF_RAW_RTP_PARSE_FRAME);
                        }
index 6b86edfc00498188194fa747cc9c3911e8a2a59b..c72c2a5183e9d85aa5dadf169378f3d97a48fb43 100644 (file)
@@ -10392,7 +10392,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_cor
                                switch_core_session_video_reinit(session);
                                frame->flags &= ~SFF_PICTURE_RESET;
                        }
-                       
+
+                       if (frame->datalen == 0) continue;
+
                        switch_set_flag(frame, SFF_RAW_RTP_PARSE_FRAME);
                        status = switch_core_session_write_encoded_video_frame(session, frame, flags, stream_id);
                }