From: Anthony Minessale Date: Mon, 29 Jun 2015 21:06:13 +0000 (-0500) Subject: FS-7726 #resolve X-Git-Tag: v1.6.2~370 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a73952cecaa81dacfbb969bb5d1625cda7f7e438;p=thirdparty%2Ffreeswitch.git FS-7726 #resolve --- diff --git a/src/switch_core_media.c b/src/switch_core_media.c index 9f2550a646..20342e2619 100644 --- a/src/switch_core_media.c +++ b/src/switch_core_media.c @@ -10495,12 +10495,14 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_cor prune++; } + } - switch_thread_rwlock_unlock(session->bug_rwlock); - if (prune) { - switch_core_media_bug_prune(session); - } + switch_thread_rwlock_unlock(session->bug_rwlock); + + if (prune) { + switch_core_media_bug_prune(session); } + } write_frame = *frame; @@ -10723,7 +10725,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(switch_core prune++; } } + switch_thread_rwlock_unlock(session->bug_rwlock); + if (prune) { switch_core_media_bug_prune(session); } diff --git a/src/switch_core_media_bug.c b/src/switch_core_media_bug.c index 83e0e99816..823bfeb8cb 100644 --- a/src/switch_core_media_bug.c +++ b/src/switch_core_media_bug.c @@ -789,7 +789,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_bug_add(switch_core_session_t bug->thread_id = switch_thread_self(); } - if (switch_test_flag(bug, SMBF_READ_VIDEO_STREAM) || switch_test_flag(bug, SMBF_WRITE_VIDEO_STREAM) || switch_test_flag(bug, SMBF_WRITE_VIDEO_PING)) { + if (switch_test_flag(bug, SMBF_READ_VIDEO_STREAM) || switch_test_flag(bug, SMBF_WRITE_VIDEO_STREAM) || switch_test_flag(bug, SMBF_READ_VIDEO_PING) || switch_test_flag(bug, SMBF_WRITE_VIDEO_PING)) { switch_channel_set_flag_recursive(session->channel, CF_VIDEO_DECODED_READ); } @@ -1148,7 +1148,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_bug_close(switch_media_bug_t * bp->callback(bp, bp->user_data, SWITCH_ABC_TYPE_CLOSE); } - if (switch_test_flag(bp, SMBF_READ_VIDEO_STREAM) || switch_test_flag(bp, SMBF_WRITE_VIDEO_STREAM) || switch_test_flag(bp, SMBF_WRITE_VIDEO_PING)) { + if (switch_test_flag(bp, SMBF_READ_VIDEO_STREAM) || switch_test_flag(bp, SMBF_WRITE_VIDEO_STREAM) || switch_test_flag(bp, SMBF_READ_VIDEO_PING) || switch_test_flag(bp, SMBF_WRITE_VIDEO_PING)) { switch_channel_clear_flag_recursive(bp->session->channel, CF_VIDEO_DECODED_READ); }