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 {
}
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;
}
}
} 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;