From 0511896444687dc5c2d38112b5774c589ec0883f Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 13 Jun 2015 03:13:55 -0500 Subject: [PATCH] FS-7641 fix seg from wrongly nulling ping_frame --- src/switch_core_media.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/switch_core_media.c b/src/switch_core_media.c index deba971311..b2f7e0dd4a 100644 --- a/src/switch_core_media.c +++ b/src/switch_core_media.c @@ -10476,20 +10476,21 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_cor switch_frame_t bug_frame = { 0 }; bug_frame.img = img; - bp->ping_frame = &bug_frame; - + if (bp->callback && switch_test_flag(bp, SMBF_WRITE_VIDEO_PING)) { + bp->ping_frame = &bug_frame; if (bp->callback(bp, bp->user_data, SWITCH_ABC_TYPE_WRITE_VIDEO_PING) == SWITCH_FALSE || (bp->stop_time && bp->stop_time <= switch_epoch_time_now(NULL))) { ok = SWITCH_FALSE; } + bp->ping_frame = NULL; } if (switch_core_media_bug_test_flag(bp, SMBF_SPY_VIDEO_STREAM_BLEG) && !patched) { - switch_core_media_bug_patch_spy_frame(bp, bp->ping_frame->img, SWITCH_RW_WRITE); + switch_core_media_bug_patch_spy_frame(bp, img, SWITCH_RW_WRITE); } - bp->ping_frame = NULL; + } if (ok == SWITCH_FALSE) { @@ -10704,21 +10705,20 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(switch_core if (bp->ready && (*frame) && (*frame)->img && (switch_test_flag(bp, SMBF_READ_VIDEO_PING) || (switch_core_media_bug_test_flag(bp, SMBF_SPY_VIDEO_STREAM) && !patched))) { - bp->ping_frame = *frame; + if (bp->callback && switch_test_flag(bp, SMBF_READ_VIDEO_PING)) { + bp->ping_frame = *frame; if (bp->callback(bp, bp->user_data, SWITCH_ABC_TYPE_READ_VIDEO_PING) == SWITCH_FALSE || (bp->stop_time && bp->stop_time <= switch_epoch_time_now(NULL))) { ok = SWITCH_FALSE; } + bp->ping_frame = NULL; } if (switch_core_media_bug_test_flag(bp, SMBF_SPY_VIDEO_STREAM) && !patched) { switch_core_media_bug_patch_spy_frame(bp, (*frame)->img, SWITCH_RW_READ); } - - - bp->ping_frame = NULL; } if (ok == SWITCH_FALSE) {