diff --git a/src/switch_ivr_bridge.c b/src/switch_ivr_bridge.c index cc38f1f28b..d90ae88f89 100644 --- a/src/switch_ivr_bridge.c +++ b/src/switch_ivr_bridge.c @@ -175,9 +175,6 @@ static void video_bridge_thread(switch_core_session_t *session, void *obj) while (switch_channel_up_nosig(channel) && switch_channel_up_nosig(b_channel) && vh->up == 1) { if (switch_channel_media_up(channel)) { - switch_codec_t *a_codec = switch_core_session_get_video_read_codec(vh->session_a); - switch_codec_t *b_codec = switch_core_session_get_video_write_codec(vh->session_b); - if (switch_core_session_transcoding(vh->session_a, vh->session_b, SWITCH_MEDIA_TYPE_VIDEO)) { pass_val = 1; } else { @@ -195,11 +192,14 @@ static void video_bridge_thread(switch_core_session_t *session, void *obj) } if (!switch_channel_test_flag(channel, CF_PROXY_MEDIA)) { - switch_assert(a_codec); - switch_assert(b_codec); + switch_codec_implementation_t session_a_codec_implementation; + switch_codec_implementation_t session_b_codec_implementation; + + switch_core_session_get_video_read_impl(vh->session_a, &session_a_codec_implementation); + switch_core_session_get_video_write_impl(vh->session_b, &session_b_codec_implementation); if (switch_channel_test_flag(channel, CF_VIDEO_DECODED_READ)) { - if (a_codec->implementation->impl_id == b_codec->implementation->impl_id && !switch_channel_test_flag(b_channel, CF_VIDEO_DECODED_READ)) { + if (session_a_codec_implementation.impl_id == session_b_codec_implementation.impl_id && !switch_channel_test_flag(b_channel, CF_VIDEO_DECODED_READ)) { if (set_decoded_read) { switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ); set_decoded_read = 0; @@ -207,7 +207,7 @@ static void video_bridge_thread(switch_core_session_t *session, void *obj) } } } else { - if (a_codec->implementation->impl_id != b_codec->implementation->impl_id || + if (session_a_codec_implementation.impl_id != session_b_codec_implementation.impl_id || switch_channel_test_flag(b_channel, CF_VIDEO_DECODED_READ)) { switch_channel_set_flag_recursive(channel, CF_VIDEO_DECODED_READ); set_decoded_read = 1;