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) {
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) {