mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-14 08:05:37 +00:00
FS-7502: set video flag on record session
This commit is contained in:
parent
dc7608fb9e
commit
216850c1a0
@ -2680,7 +2680,7 @@ SWITCH_DECLARE(void) switch_core_session_video_reset(switch_core_session_t *sess
|
||||
{
|
||||
switch_channel_clear_flag(session->channel, CF_VIDEO_ECHO);
|
||||
switch_channel_clear_flag(session->channel, CF_VIDEO_PASSIVE);
|
||||
switch_channel_clear_flag(session->channel, CF_VIDEO_DECODED_READ);
|
||||
//switch_channel_clear_flag(session->channel, CF_VIDEO_DECODED_READ);
|
||||
switch_channel_clear_flag(session->channel, CF_VIDEO_DEBUG_READ);
|
||||
switch_channel_clear_flag(session->channel, CF_VIDEO_DEBUG_WRITE);
|
||||
switch_core_session_request_video_refresh(session);
|
||||
|
@ -1332,8 +1332,15 @@ static switch_bool_t record_callback(switch_media_bug_t *bug, void *user_data, s
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (switch_core_file_has_video(rh->fh)) {
|
||||
switch_core_media_set_video_file(session, NULL, SWITCH_RW_READ);
|
||||
}
|
||||
|
||||
switch_core_file_close(rh->fh);
|
||||
|
||||
|
||||
|
||||
if (rh->fh->samples_out < rh->fh->samplerate * rh->min_sec) {
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Discarding short file %s\n", rh->file);
|
||||
switch_channel_set_variable(channel, "RECORD_DISCARDED", "true");
|
||||
@ -2269,6 +2276,10 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_record_session(switch_core_session_t
|
||||
if ((ext = strrchr(file, '.'))) {
|
||||
ext++;
|
||||
|
||||
if (switch_channel_test_flag(channel, CF_VIDEO)) {
|
||||
file_flags |= SWITCH_FILE_FLAG_VIDEO;
|
||||
}
|
||||
|
||||
if (switch_core_file_open(fh, file, channels, read_impl.actual_samples_per_second, file_flags, NULL) != SWITCH_STATUS_SUCCESS) {
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Error opening %s\n", file);
|
||||
if (hangup_on_error) {
|
||||
@ -2277,6 +2288,11 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_record_session(switch_core_session_t
|
||||
}
|
||||
return SWITCH_STATUS_GENERR;
|
||||
}
|
||||
|
||||
if (switch_core_file_has_video(fh)) {
|
||||
switch_core_media_set_video_file(session, fh, SWITCH_RW_READ);
|
||||
}
|
||||
|
||||
} else {
|
||||
int tflags = 0;
|
||||
|
||||
|
@ -67,7 +67,8 @@ static void video_bridge_thread(switch_core_session_t *session, void *obj)
|
||||
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 (!b_codec || !a_codec || a_codec->implementation->impl_id == b_codec->implementation->impl_id) {
|
||||
if ((!b_codec || !a_codec || a_codec->implementation->impl_id == b_codec->implementation->impl_id) &&
|
||||
!switch_channel_test_flag(b_channel, CF_VIDEO_DECODED_READ)) {
|
||||
switch_channel_clear_flag(channel, CF_VIDEO_DECODED_READ);
|
||||
} else {
|
||||
switch_channel_set_flag(channel, CF_VIDEO_DECODED_READ);
|
||||
|
@ -1262,7 +1262,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess
|
||||
|
||||
if (switch_channel_test_flag(channel, CF_VIDEO)) {
|
||||
flags |= SWITCH_FILE_FLAG_VIDEO;
|
||||
switch_channel_set_flag_recursive(channel, CF_VIDEO_DECODED_READ);
|
||||
//switch_channel_set_flag_recursive(channel, CF_VIDEO_DECODED_READ);
|
||||
}
|
||||
|
||||
if (switch_core_file_open(fh,
|
||||
@ -1357,7 +1357,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess
|
||||
switch_core_session_io_rwunlock(session);
|
||||
|
||||
if (switch_core_file_has_video(fh)) {
|
||||
switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
|
||||
//switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
|
||||
switch_core_media_set_video_file(session, NULL, SWITCH_RW_WRITE);
|
||||
}
|
||||
|
||||
@ -1383,7 +1383,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess
|
||||
switch_core_session_io_rwunlock(session);
|
||||
|
||||
if (switch_core_file_has_video(fh)) {
|
||||
switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
|
||||
//switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
|
||||
switch_core_media_set_video_file(session, NULL, SWITCH_RW_WRITE);
|
||||
}
|
||||
switch_core_file_close(fh);
|
||||
@ -1412,7 +1412,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess
|
||||
switch_channel_set_private(channel, "__fh", NULL);
|
||||
switch_core_session_io_rwunlock(session);
|
||||
if (switch_core_file_has_video(fh)) {
|
||||
switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
|
||||
//switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
|
||||
switch_core_media_set_video_file(session, NULL, SWITCH_RW_WRITE);
|
||||
}
|
||||
switch_core_file_close(fh);
|
||||
@ -1823,7 +1823,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess
|
||||
switch_core_session_io_rwunlock(session);
|
||||
|
||||
if (switch_core_file_has_video(fh)) {
|
||||
switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
|
||||
//switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
|
||||
switch_core_media_set_video_file(session, NULL, SWITCH_RW_WRITE);
|
||||
}
|
||||
switch_core_file_close(fh);
|
||||
|
Loading…
x
Reference in New Issue
Block a user