]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-10116: [RTP] Crash when rtp_autofix_timing=true on video calls #resolve
authorMike Jerris <mike@jerris.com>
Thu, 9 Mar 2017 17:13:51 +0000 (11:13 -0600)
committerMike Jerris <mike@jerris.com>
Thu, 9 Mar 2017 17:20:01 +0000 (11:20 -0600)
Conflicts:
src/switch_core_media.c

src/switch_core_media.c

index f797d04ef1fb1168a061536528ff6ce621b140a6..966bc491fc3241232d9f9fb4033a0163056ed79a 100644 (file)
@@ -2420,7 +2420,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_read_frame(switch_core_session
                                }
                                
                                /* check for timing issues */
-                               if (smh->media_flags[SCMF_AUTOFIX_TIMING]) {
+                               if (smh->media_flags[SCMF_AUTOFIX_TIMING] && type == SWITCH_MEDIA_TYPE_AUDIO && engine->read_impl.samples_per_second) {
                                        char is_vbr;
                                        is_vbr = engine->read_impl.encoded_bytes_per_packet?0:1;
 
@@ -2494,8 +2494,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_read_frame(switch_core_session
                                                engine->last_ts = engine->read_frame.timestamp;
                                                engine->last_seq = engine->read_frame.seq;
 
-                                       } else if (smh->media_flags[SCMF_AUTOFIX_TIMING] && is_vbr && switch_rtp_get_jitter_buffer(engine->rtp_session) 
-                                                                                                                                                       && engine->read_frame.timestamp && engine->read_frame.seq) {
+                                       } else if (smh->media_flags[SCMF_AUTOFIX_TIMING] && is_vbr && switch_rtp_get_jitter_buffer(engine->rtp_session)
+                                                          && type == SWITCH_MEDIA_TYPE_AUDIO
+                                                          && engine->read_frame.timestamp && engine->read_frame.seq) {
 
                                                uint32_t codec_ms = (int) (engine->read_frame.timestamp -
                                                                   engine->last_ts) / (engine->read_impl.samples_per_second / 1000);