spring cleaning, lose some pointless code
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8310 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
1a0a6a714d
commit
c4a18a09c2
|
@ -809,10 +809,10 @@ SWITCH_DECLARE(uint32_t) switch_core_session_flush_private_events(switch_core_se
|
|||
\param stream_id which logical media channel to use
|
||||
\return SWITCH_STATUS_SUCCESS a the frame was read
|
||||
*/
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(_In_ switch_core_session_t *session, switch_frame_t **frame, int timeout, int stream_id);
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(_In_ switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(_In_ switch_core_session_t *session, switch_frame_t **frame, int timeout, int stream_id);
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(_In_ switch_core_session_t *session, switch_frame_t *frame, int timeout, int stream_id);
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(_In_ switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(_In_ switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
|
||||
|
||||
/*!
|
||||
\brief Reset the buffers and resampler on a session
|
||||
|
@ -828,7 +828,7 @@ SWITCH_DECLARE(void) switch_core_session_reset(_In_ switch_core_session_t *sessi
|
|||
\param stream_id which logical media channel to use
|
||||
\return SWITCH_STATUS_SUCCESS a the frame was written
|
||||
*/
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(_In_ switch_core_session_t *session, switch_frame_t *frame, int timeout, int stream_id);
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(_In_ switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
|
||||
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_perform_kill_channel(_In_ switch_core_session_t *session,
|
||||
|
@ -841,24 +841,6 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_perform_kill_channel(_In_ sw
|
|||
*/
|
||||
#define switch_core_session_kill_channel(session, sig) switch_core_session_perform_kill_channel(session, __FILE__, __SWITCH_FUNC__, __LINE__, sig)
|
||||
|
||||
/*!
|
||||
\brief Wait for a session to be ready for input
|
||||
\param session session to wait for
|
||||
\param timeout number of milliseconds to wait for data
|
||||
\param stream_id which logical media channel to use
|
||||
\return SWITCH_STATUS_SUCCESS if data is available for read within timeframe specified
|
||||
*/
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_waitfor_read(_In_ switch_core_session_t *session, int timeout, int stream_id);
|
||||
|
||||
/*!
|
||||
\brief Wait for a session to be ready for output
|
||||
\param session session to wait for
|
||||
\param timeout number of milliseconds to wait for data
|
||||
\param stream_id which logical media channel to use
|
||||
\return SWITCH_STATUS_SUCCESS if the session is available for write within timeframe specified
|
||||
*/
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_waitfor_write(_In_ switch_core_session_t *session, int timeout, int stream_id);
|
||||
|
||||
/*!
|
||||
\brief Send DTMF to a session
|
||||
\param session session to send DTMF to
|
||||
|
|
|
@ -43,8 +43,6 @@ typedef struct switch_io_event_hook_video_read_frame switch_io_event_hook_video_
|
|||
typedef struct switch_io_event_hook_write_frame switch_io_event_hook_write_frame_t;
|
||||
typedef struct switch_io_event_hook_video_write_frame switch_io_event_hook_video_write_frame_t;
|
||||
typedef struct switch_io_event_hook_kill_channel switch_io_event_hook_kill_channel_t;
|
||||
typedef struct switch_io_event_hook_waitfor_read switch_io_event_hook_waitfor_read_t;
|
||||
typedef struct switch_io_event_hook_waitfor_write switch_io_event_hook_waitfor_write_t;
|
||||
typedef struct switch_io_event_hook_send_dtmf switch_io_event_hook_send_dtmf_t;
|
||||
typedef struct switch_io_event_hook_recv_dtmf switch_io_event_hook_recv_dtmf_t;
|
||||
typedef struct switch_io_event_hook_state_change switch_io_event_hook_state_change_t;
|
||||
|
@ -53,13 +51,11 @@ typedef switch_status_t (*switch_outgoing_channel_hook_t)
|
|||
(switch_core_session_t *, switch_caller_profile_t *, switch_core_session_t *, switch_originate_flag_t);
|
||||
typedef switch_status_t (*switch_receive_message_hook_t) (switch_core_session_t *, switch_core_session_message_t *);
|
||||
typedef switch_status_t (*switch_receive_event_hook_t) (switch_core_session_t *, switch_event_t *);
|
||||
typedef switch_status_t (*switch_read_frame_hook_t) (switch_core_session_t *, switch_frame_t **, int, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_video_read_frame_hook_t) (switch_core_session_t *, switch_frame_t **, int, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_write_frame_hook_t) (switch_core_session_t *, switch_frame_t *, int, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_video_write_frame_hook_t) (switch_core_session_t *, switch_frame_t *, int, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_read_frame_hook_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_video_read_frame_hook_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_write_frame_hook_t) (switch_core_session_t *, switch_frame_t *, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_video_write_frame_hook_t) (switch_core_session_t *, switch_frame_t *, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_kill_channel_hook_t) (switch_core_session_t *, int);
|
||||
typedef switch_status_t (*switch_waitfor_read_hook_t) (switch_core_session_t *, int, int);
|
||||
typedef switch_status_t (*switch_waitfor_write_hook_t) (switch_core_session_t *, int, int);
|
||||
typedef switch_status_t (*switch_send_dtmf_hook_t) (switch_core_session_t *, const switch_dtmf_t *);
|
||||
typedef switch_status_t (*switch_recv_dtmf_hook_t) (switch_core_session_t *, const switch_dtmf_t *);
|
||||
typedef switch_status_t (*switch_state_change_hook_t) (switch_core_session_t *);
|
||||
|
@ -120,20 +116,6 @@ struct switch_io_event_hook_kill_channel {
|
|||
struct switch_io_event_hook_kill_channel *next;
|
||||
};
|
||||
|
||||
/*! \brief Node in which to store custom waitfor read channel callback hooks */
|
||||
struct switch_io_event_hook_waitfor_read {
|
||||
/*! the waitfor read channel callback hook */
|
||||
switch_waitfor_read_hook_t waitfor_read;
|
||||
struct switch_io_event_hook_waitfor_read *next;
|
||||
};
|
||||
|
||||
/*! \brief Node in which to store custom waitfor write channel callback hooks */
|
||||
struct switch_io_event_hook_waitfor_write {
|
||||
/*! the waitfor write channel callback hook */
|
||||
switch_waitfor_write_hook_t waitfor_write;
|
||||
struct switch_io_event_hook_waitfor_write *next;
|
||||
};
|
||||
|
||||
/*! \brief Node in which to store custom send dtmf channel callback hooks */
|
||||
struct switch_io_event_hook_send_dtmf {
|
||||
/*! the send dtmf channel callback hook */
|
||||
|
@ -179,10 +161,6 @@ struct switch_io_event_hooks {
|
|||
switch_io_event_hook_video_write_frame_t *video_write_frame;
|
||||
/*! a list of kill channel hooks */
|
||||
switch_io_event_hook_kill_channel_t *kill_channel;
|
||||
/*! a list of wait for read hooks */
|
||||
switch_io_event_hook_waitfor_read_t *waitfor_read;
|
||||
/*! a list of wait for write hooks */
|
||||
switch_io_event_hook_waitfor_write_t *waitfor_write;
|
||||
/*! a list of send dtmf hooks */
|
||||
switch_io_event_hook_send_dtmf_t *send_dtmf;
|
||||
/*! a list of recv dtmf hooks */
|
||||
|
@ -244,8 +222,6 @@ NEW_HOOK_DECL_ADD_P(write_frame);
|
|||
NEW_HOOK_DECL_ADD_P(video_read_frame);
|
||||
NEW_HOOK_DECL_ADD_P(video_write_frame);
|
||||
NEW_HOOK_DECL_ADD_P(kill_channel);
|
||||
NEW_HOOK_DECL_ADD_P(waitfor_read);
|
||||
NEW_HOOK_DECL_ADD_P(waitfor_write);
|
||||
NEW_HOOK_DECL_ADD_P(send_dtmf);
|
||||
NEW_HOOK_DECL_ADD_P(recv_dtmf);
|
||||
NEW_HOOK_DECL_ADD_P(resurrect_session);
|
||||
|
@ -259,8 +235,6 @@ NEW_HOOK_DECL_REM_P(write_frame);
|
|||
NEW_HOOK_DECL_REM_P(video_read_frame);
|
||||
NEW_HOOK_DECL_REM_P(video_write_frame);
|
||||
NEW_HOOK_DECL_REM_P(kill_channel);
|
||||
NEW_HOOK_DECL_REM_P(waitfor_read);
|
||||
NEW_HOOK_DECL_REM_P(waitfor_write);
|
||||
NEW_HOOK_DECL_REM_P(send_dtmf);
|
||||
NEW_HOOK_DECL_REM_P(recv_dtmf);
|
||||
NEW_HOOK_DECL_REM_P(resurrect_session);
|
||||
|
|
|
@ -101,17 +101,15 @@ struct switch_io_event_hooks;
|
|||
|
||||
typedef switch_call_cause_t (*switch_io_outgoing_channel_t)
|
||||
(switch_core_session_t *, switch_caller_profile_t *, switch_core_session_t **, switch_memory_pool_t **, switch_originate_flag_t);
|
||||
typedef switch_status_t (*switch_io_read_frame_t) (switch_core_session_t *, switch_frame_t **, int, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_io_write_frame_t) (switch_core_session_t *, switch_frame_t *, int, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_io_read_frame_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_io_write_frame_t) (switch_core_session_t *, switch_frame_t *, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_io_kill_channel_t) (switch_core_session_t *, int);
|
||||
typedef switch_status_t (*switch_io_waitfor_read_t) (switch_core_session_t *, int, int);
|
||||
typedef switch_status_t (*switch_io_waitfor_write_t) (switch_core_session_t *, int, int);
|
||||
typedef switch_status_t (*switch_io_send_dtmf_t) (switch_core_session_t *, const switch_dtmf_t *);
|
||||
typedef switch_status_t (*switch_io_receive_message_t) (switch_core_session_t *, switch_core_session_message_t *);
|
||||
typedef switch_status_t (*switch_io_receive_event_t) (switch_core_session_t *, switch_event_t *);
|
||||
typedef switch_status_t (*switch_io_state_change_t) (switch_core_session_t *);
|
||||
typedef switch_status_t (*switch_io_read_video_frame_t) (switch_core_session_t *, switch_frame_t **, int, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_io_write_video_frame_t) (switch_core_session_t *, switch_frame_t *, int, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_io_read_video_frame_t) (switch_core_session_t *, switch_frame_t **, switch_io_flag_t, int);
|
||||
typedef switch_status_t (*switch_io_write_video_frame_t) (switch_core_session_t *, switch_frame_t *, switch_io_flag_t, int);
|
||||
typedef switch_call_cause_t (*switch_io_resurrect_session_t)(switch_core_session_t **, switch_memory_pool_t **, void *);
|
||||
|
||||
typedef enum {
|
||||
|
@ -119,8 +117,6 @@ typedef enum {
|
|||
SWITCH_IO_READ_FRAME,
|
||||
SWITCH_IO_WRITE_FRAME,
|
||||
SWITCH_IO_KILL_CHANNEL,
|
||||
SWITCH_IO_WAITFOR_READ,
|
||||
SWITCH_IO_WAITFOR_WRITE,
|
||||
SWITCH_IO_SEND_DTMF,
|
||||
SWITCH_IO_RECEIVE_MESSAGE,
|
||||
SWITCH_IO_RECEIVE_EVENT,
|
||||
|
@ -140,10 +136,6 @@ struct switch_io_routines {
|
|||
switch_io_write_frame_t write_frame;
|
||||
/*! send a kill signal to the session's channel */
|
||||
switch_io_kill_channel_t kill_channel;
|
||||
/*! wait for the session's channel to be ready to read audio */
|
||||
switch_io_waitfor_read_t waitfor_read;
|
||||
/*! wait for the session's channel to be ready to write audio */
|
||||
switch_io_waitfor_write_t waitfor_write;
|
||||
/*! send a string of DTMF digits to a session's channel */
|
||||
switch_io_send_dtmf_t send_dtmf;
|
||||
/*! receive a message from another session */
|
||||
|
|
|
@ -296,7 +296,7 @@ SWITCH_DECLARE(void) switch_rtp_set_invald_handler(switch_rtp_t *rtp_session, sw
|
|||
\return the number of bytes read
|
||||
*/
|
||||
SWITCH_DECLARE(switch_status_t) switch_rtp_read(switch_rtp_t *rtp_session, void *data, uint32_t * datalen,
|
||||
switch_payload_t *payload_type, switch_frame_flag_t *flags);
|
||||
switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags);
|
||||
|
||||
/*!
|
||||
\brief Queue RFC2833 DTMF data into an RTP Session
|
||||
|
@ -332,7 +332,7 @@ SWITCH_DECLARE(switch_size_t) switch_rtp_dequeue_dtmf(switch_rtp_t *rtp_session,
|
|||
\return the number of bytes read
|
||||
*/
|
||||
SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read(switch_rtp_t *rtp_session,
|
||||
void **data, uint32_t * datalen, switch_payload_t *payload_type, switch_frame_flag_t *flags);
|
||||
void **data, uint32_t * datalen, switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags);
|
||||
|
||||
/*!
|
||||
\brief Read data from a given RTP session without copying
|
||||
|
@ -340,7 +340,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read(switch_rtp_t *rtp_sessi
|
|||
\param frame a frame to populate with information
|
||||
\return the number of bytes read
|
||||
*/
|
||||
SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp_session, switch_frame_t *frame);
|
||||
SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp_session, switch_frame_t *frame, switch_io_flag_t io_flagsm);
|
||||
|
||||
/*!
|
||||
\brief Enable VAD on an RTP Session
|
||||
|
|
|
@ -943,7 +943,8 @@ typedef enum {
|
|||
} switch_file_flag_t;
|
||||
|
||||
typedef enum {
|
||||
SWITCH_IO_FLAG_NOOP = 0
|
||||
SWITCH_IO_FLAG_NONE = 0,
|
||||
SWITCH_IO_FLAG_NOBLOCK = (1 << 0)
|
||||
} switch_io_flag_t;
|
||||
|
||||
/* make sure this is synced with the EVENT_NAMES array in switch_event.c
|
||||
|
|
|
@ -783,7 +783,7 @@ static void *SWITCH_THREAD_FUNC conference_video_thread_run(switch_thread_t *thr
|
|||
}
|
||||
|
||||
if (switch_channel_test_flag(switch_core_session_get_channel(conference->floor_holder->session), CF_VIDEO)) {
|
||||
status = switch_core_session_read_video_frame(conference->floor_holder->session, &vid_frame, -1, 0);
|
||||
status = switch_core_session_read_video_frame(conference->floor_holder->session, &vid_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
conference->floor_holder = NULL;
|
||||
|
@ -835,7 +835,7 @@ static void *SWITCH_THREAD_FUNC conference_video_thread_run(switch_thread_t *thr
|
|||
for (imember = conference->members; imember; imember = imember->next) {
|
||||
if (switch_channel_test_flag(switch_core_session_get_channel(imember->session), CF_VIDEO)) {
|
||||
has_vid++;
|
||||
switch_core_session_write_video_frame(imember->session, vid_frame, -1, 0);
|
||||
switch_core_session_write_video_frame(imember->session, vid_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
}
|
||||
}
|
||||
switch_mutex_unlock(conference->member_mutex);
|
||||
|
@ -1497,7 +1497,7 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t * thread,
|
|||
|
||||
while (switch_test_flag(member, MFLAG_RUNNING) && switch_channel_ready(channel)) {
|
||||
/* Read a frame. */
|
||||
status = switch_core_session_read_frame(member->session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_frame(member->session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
/* end the loop, if appropriate */
|
||||
if (!SWITCH_READ_ACCEPTABLE(status) || !switch_test_flag(member, MFLAG_RUNNING)) {
|
||||
|
@ -1890,7 +1890,7 @@ static void conference_loop_output(conference_member_t * member)
|
|||
switch_change_sln_volume(write_frame.data, write_frame.samples, member->volume_out_level);
|
||||
}
|
||||
write_frame.timestamp = timer.samplecount;
|
||||
switch_core_session_write_frame(member->session, &write_frame, -1, 0);
|
||||
switch_core_session_write_frame(member->session, &write_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
switch_core_timer_next(&timer);
|
||||
|
||||
|
||||
|
@ -1933,7 +1933,7 @@ static void conference_loop_output(conference_member_t * member)
|
|||
switch_change_sln_volume(write_frame.data, write_frame.samples, member->volume_out_level);
|
||||
}
|
||||
write_frame.timestamp = timer.samplecount;
|
||||
switch_core_session_write_frame(member->session, &write_frame, -1, 0);
|
||||
switch_core_session_write_frame(member->session, &write_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1948,7 +1948,7 @@ static void conference_loop_output(conference_member_t * member)
|
|||
write_frame.datalen = bytes;
|
||||
write_frame.samples = samples;
|
||||
write_frame.timestamp = timer.samplecount;
|
||||
switch_core_session_write_frame(member->session, &write_frame, -1, 0);
|
||||
switch_core_session_write_frame(member->session, &write_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3961,7 +3961,7 @@ static switch_status_t conference_local_play_file(conference_obj_t * conference,
|
|||
/* generate some space infront of the file to be played */
|
||||
for (x = 0; x < leadin; x++) {
|
||||
switch_frame_t *read_frame;
|
||||
status = switch_core_session_read_frame(session, &read_frame, 1000, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
|
|
|
@ -1714,11 +1714,11 @@ SWITCH_STANDARD_APP(audio_bridge_function)
|
|||
/* SIP won't let us redir media until the call has been answered #$^#%& so we will proxy any early media until they do */
|
||||
while (switch_channel_ready(caller_channel) && switch_channel_ready(peer_channel)
|
||||
&& !switch_channel_test_flag(peer_channel, CF_ANSWERED)) {
|
||||
switch_status_t status = switch_core_session_read_frame(peer_session, &read_frame, -1, 0);
|
||||
switch_status_t status = switch_core_session_read_frame(peer_session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
uint8_t bad = 1;
|
||||
|
||||
if (SWITCH_READ_ACCEPTABLE(status)
|
||||
&& switch_core_session_write_frame(session, read_frame, -1, 0) == SWITCH_STATUS_SUCCESS) {
|
||||
&& switch_core_session_write_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0) == SWITCH_STATUS_SUCCESS) {
|
||||
bad = 0;
|
||||
}
|
||||
if (bad) {
|
||||
|
|
|
@ -130,7 +130,7 @@ SWITCH_STANDARD_APP(bcast_function)
|
|||
|
||||
|
||||
while(!ready) {
|
||||
status = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
if (read_frame && switch_test_flag(read_frame, SFF_CNG)) {
|
||||
continue;
|
||||
}
|
||||
|
@ -206,7 +206,7 @@ SWITCH_STANDARD_APP(bcast_function)
|
|||
|
||||
for(;;) {
|
||||
|
||||
status = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
|
|
|
@ -804,7 +804,7 @@ SWITCH_STANDARD_APP(fifo_function)
|
|||
break;
|
||||
}
|
||||
|
||||
status = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
|
@ -854,7 +854,7 @@ SWITCH_STANDARD_APP(fifo_function)
|
|||
switch_channel_set_flag(other_channel, CF_BREAK);
|
||||
|
||||
while (switch_channel_ready(channel) && switch_channel_ready(other_channel) && switch_channel_test_flag(other_channel, CF_TAGGED)) {
|
||||
status = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ static void *SWITCH_THREAD_FUNC record_video_thread(switch_thread_t *thread, voi
|
|||
|
||||
eh->up = 1;
|
||||
while(switch_channel_ready(channel)) {
|
||||
status = switch_core_session_read_video_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_video_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
|
@ -90,7 +90,7 @@ static void *SWITCH_THREAD_FUNC record_video_thread(switch_thread_t *thread, voi
|
|||
|
||||
switch_mutex_unlock(eh->mutex);
|
||||
|
||||
switch_core_session_write_video_frame(session, read_frame, -1, 0);
|
||||
switch_core_session_write_video_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
}
|
||||
eh->up = 0;
|
||||
return NULL;
|
||||
|
@ -165,7 +165,7 @@ SWITCH_STANDARD_APP(record_fsv_function)
|
|||
|
||||
while(switch_channel_ready(channel)) {
|
||||
|
||||
status = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
|
@ -315,7 +315,7 @@ SWITCH_STANDARD_APP(play_fsv_function)
|
|||
hdr->pt = pt;
|
||||
}
|
||||
if (switch_channel_test_flag(channel, CF_VIDEO)) {
|
||||
switch_core_session_write_video_frame(session, &vid_frame, -1, 0);
|
||||
switch_core_session_write_video_frame(session, &vid_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
}
|
||||
if (ts && last && last != ts) {
|
||||
switch_yield(1000);
|
||||
|
@ -328,7 +328,7 @@ SWITCH_STANDARD_APP(play_fsv_function)
|
|||
if ((write_frame.datalen = read(fd, write_frame.data, bytes)) <= 0) {
|
||||
break;
|
||||
}
|
||||
switch_core_session_write_frame(session, &write_frame, -1, 0);
|
||||
switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
switch_core_timer_next(&timer);
|
||||
}
|
||||
|
||||
|
|
|
@ -171,7 +171,6 @@ SWITCH_STANDARD_APP(rss_function)
|
|||
switch_speech_flag_t flags = SWITCH_SPEECH_FLAG_NONE;
|
||||
switch_core_thread_session_t thread_session;
|
||||
uint32_t rate, interval = 20;
|
||||
int stream_id = 0;
|
||||
switch_timer_t timer = { 0 }, *timerp = NULL;
|
||||
uint32_t last;
|
||||
char *mydata = NULL;
|
||||
|
@ -292,9 +291,7 @@ SWITCH_STANDARD_APP(rss_function)
|
|||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "setup timer success %u bytes per %d ms!\n", (rate / 50) * 2, interval);
|
||||
|
||||
/* start a thread to absorb incoming audio */
|
||||
for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
|
||||
switch_core_service_session(session, &thread_session, stream_id);
|
||||
}
|
||||
switch_core_service_session(session, &thread_session, 0);
|
||||
timerp = &timer;
|
||||
}
|
||||
|
||||
|
|
|
@ -149,8 +149,8 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
|
|||
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
|
||||
switch_caller_profile_t *outbound_profile,
|
||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig);
|
||||
static switch_status_t engage_device(unsigned int samplerate, int codec_ms);
|
||||
static switch_status_t load_config(void);
|
||||
|
@ -501,27 +501,6 @@ static switch_status_t channel_on_exchange_media(switch_core_session_t *session)
|
|||
}
|
||||
|
||||
|
||||
static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id)
|
||||
{
|
||||
private_t *tech_pvt = NULL;
|
||||
|
||||
tech_pvt = switch_core_session_get_private(session);
|
||||
assert(tech_pvt != NULL);
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id)
|
||||
{
|
||||
private_t *tech_pvt = NULL;
|
||||
|
||||
tech_pvt = switch_core_session_get_private(session);
|
||||
assert(tech_pvt != NULL);
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
|
||||
}
|
||||
|
||||
static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
|
||||
{
|
||||
private_t *tech_pvt = NULL;
|
||||
|
@ -534,7 +513,7 @@ static switch_status_t channel_send_dtmf(switch_core_session_t *session, const s
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
switch_channel_t *channel = NULL;
|
||||
private_t *tech_pvt = NULL;
|
||||
|
@ -652,7 +631,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
|
|||
return status;
|
||||
}
|
||||
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
switch_channel_t *channel = NULL;
|
||||
private_t *tech_pvt = NULL;
|
||||
|
|
|
@ -211,8 +211,8 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
|
|||
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
|
||||
switch_caller_profile_t *outbound_profile,
|
||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig);
|
||||
|
||||
static ldl_status handle_signalling(ldl_handle_t * handle, ldl_session_t * dlsession, ldl_signal_t dl_signal,
|
||||
|
@ -1306,26 +1306,6 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id)
|
||||
{
|
||||
struct private_object *tech_pvt = NULL;
|
||||
|
||||
tech_pvt = switch_core_session_get_private(session);
|
||||
switch_assert(tech_pvt != NULL);
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id)
|
||||
{
|
||||
struct private_object *tech_pvt = NULL;
|
||||
|
||||
tech_pvt = switch_core_session_get_private(session);
|
||||
switch_assert(tech_pvt != NULL);
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
|
||||
}
|
||||
|
||||
static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
|
||||
{
|
||||
|
@ -1340,7 +1320,7 @@ static switch_status_t channel_send_dtmf(switch_core_session_t *session, const s
|
|||
|
||||
}
|
||||
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
struct private_object *tech_pvt = NULL;
|
||||
switch_channel_t *channel = switch_core_session_get_channel(session);
|
||||
|
@ -1381,7 +1361,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
|
|||
while (switch_test_flag(tech_pvt, TFLAG_IO) && tech_pvt->read_frame.datalen == 0) {
|
||||
tech_pvt->read_frame.flags = SFF_NONE;
|
||||
|
||||
status = switch_rtp_zerocopy_read_frame(tech_pvt->rtp_session, &tech_pvt->read_frame);
|
||||
status = switch_rtp_zerocopy_read_frame(tech_pvt->rtp_session, &tech_pvt->read_frame, flags);
|
||||
if (status != SWITCH_STATUS_SUCCESS && status != SWITCH_STATUS_BREAK) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
@ -1438,7 +1418,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
struct private_object *tech_pvt;
|
||||
switch_channel_t *channel = switch_core_session_get_channel(session);
|
||||
|
|
|
@ -422,8 +422,8 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
|
|||
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
|
||||
switch_caller_profile_t *outbound_profile,
|
||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig);
|
||||
|
||||
|
||||
|
@ -557,20 +557,6 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id)
|
||||
{
|
||||
assert(switch_core_session_get_private(session));
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id)
|
||||
{
|
||||
assert(switch_core_session_get_private(session));
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
|
||||
{
|
||||
private_t *tech_pvt = switch_core_session_get_private(session);
|
||||
|
@ -584,11 +570,9 @@ static switch_status_t channel_send_dtmf(switch_core_session_t *session, const s
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
private_t *tech_pvt = switch_core_session_get_private(session);
|
||||
switch_time_t started = switch_timestamp_now();
|
||||
unsigned int elapsed;
|
||||
switch_byte_t *data;
|
||||
|
||||
switch_assert(tech_pvt != NULL);
|
||||
|
@ -630,12 +614,6 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
if (timeout > -1) {
|
||||
elapsed = (unsigned int) ((switch_timestamp_now() - started) / 1000);
|
||||
if (elapsed >= (unsigned int) timeout) {
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
}
|
||||
switch_yield(1000);
|
||||
}
|
||||
|
||||
|
@ -651,7 +629,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
private_t *tech_pvt = switch_core_session_get_private(session);
|
||||
switch_assert(tech_pvt != NULL);
|
||||
|
@ -812,8 +790,6 @@ switch_io_routines_t iax_io_routines = {
|
|||
/*.read_frame */ channel_read_frame,
|
||||
/*.write_frame */ channel_write_frame,
|
||||
/*.kill_channel */ channel_kill_channel,
|
||||
/*.waitfor_read */ channel_waitfor_read,
|
||||
/*.waitfor_write */ channel_waitfor_write,
|
||||
/*.send_dtmf */ channel_send_dtmf,
|
||||
/*.receive_message*/ channel_receive_message,
|
||||
/*.receive_event */ channel_receive_event
|
||||
|
|
|
@ -146,8 +146,8 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
|
|||
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
|
||||
switch_caller_profile_t *outbound_profile,
|
||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig);
|
||||
static switch_status_t engage_device(int samplerate, int codec_ms);
|
||||
static switch_status_t engage_ring_device(int sample_rate, int channels);
|
||||
|
@ -448,16 +448,6 @@ static switch_status_t channel_on_exchange_media(switch_core_session_t *session)
|
|||
}
|
||||
|
||||
|
||||
static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id)
|
||||
{
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id)
|
||||
{
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
|
||||
{
|
||||
private_t *tech_pvt = switch_core_session_get_private(session);
|
||||
|
@ -468,7 +458,7 @@ static switch_status_t channel_send_dtmf(switch_core_session_t *session, const s
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
private_t *tech_pvt = switch_core_session_get_private(session);
|
||||
int samples = 0;
|
||||
|
@ -566,7 +556,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
|
|||
return status;
|
||||
}
|
||||
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
switch_status_t status = SWITCH_STATUS_FALSE;
|
||||
private_t *tech_pvt = switch_core_session_get_private(session);
|
||||
|
|
|
@ -106,8 +106,8 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session);
|
|||
static switch_call_cause_t channel_outgoing_channel(switch_core_session_t *session,
|
||||
switch_caller_profile_t *outbound_profile,
|
||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t channel_kill_channel(switch_core_session_t *session, int sig);
|
||||
|
||||
|
||||
|
@ -260,27 +260,6 @@ static switch_status_t channel_on_soft_execute(switch_core_session_t *session)
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_waitfor_read(switch_core_session_t *session, int ms, int stream_id)
|
||||
{
|
||||
private_t *tech_pvt = NULL;
|
||||
|
||||
tech_pvt = switch_core_session_get_private(session);
|
||||
assert(tech_pvt != NULL);
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_waitfor_write(switch_core_session_t *session, int ms, int stream_id)
|
||||
{
|
||||
private_t *tech_pvt = NULL;
|
||||
|
||||
tech_pvt = switch_core_session_get_private(session);
|
||||
assert(tech_pvt != NULL);
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
|
||||
}
|
||||
|
||||
static switch_status_t channel_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
|
||||
{
|
||||
private_t *tech_pvt = switch_core_session_get_private(session);
|
||||
|
@ -289,7 +268,7 @@ static switch_status_t channel_send_dtmf(switch_core_session_t *session, const s
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
switch_channel_t *channel = NULL;
|
||||
private_t *tech_pvt = NULL;
|
||||
|
@ -350,7 +329,7 @@ static switch_status_t channel_read_frame(switch_core_session_t *session, switch
|
|||
|
||||
}
|
||||
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
switch_channel_t *channel = NULL;
|
||||
private_t *tech_pvt = NULL;
|
||||
|
@ -494,8 +473,6 @@ switch_io_routines_t reference_io_routines = {
|
|||
/*.read_frame */ channel_read_frame,
|
||||
/*.write_frame */ channel_write_frame,
|
||||
/*.kill_channel */ channel_kill_channel,
|
||||
/*.waitfor_read */ channel_waitfor_read,
|
||||
/*.waitfor_write */ channel_waitfor_write,
|
||||
/*.send_dtmf */ channel_send_dtmf,
|
||||
/*.receive_message*/ channel_receive_message,
|
||||
/*.receive_event */ channel_receive_event
|
||||
|
|
|
@ -55,10 +55,10 @@ static switch_status_t sofia_on_soft_execute(switch_core_session_t *session);
|
|||
static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session,
|
||||
switch_caller_profile_t *outbound_profile, switch_core_session_t **new_session,
|
||||
switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||
static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t sofia_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t sofia_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t sofia_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t sofia_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t sofia_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t sofia_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t sofia_kill_channel(switch_core_session_t *session, int sig);
|
||||
|
||||
/* BODY OF THE MODULE */
|
||||
|
@ -407,7 +407,7 @@ static switch_status_t sofia_answer_channel(switch_core_session_t *session)
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t sofia_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t sofia_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
private_object_t *tech_pvt = (private_object_t *) switch_core_session_get_private(session);
|
||||
switch_channel_t *channel = switch_core_session_get_channel(session);
|
||||
|
@ -442,7 +442,7 @@ static switch_status_t sofia_read_video_frame(switch_core_session_t *session, sw
|
|||
while (switch_test_flag(tech_pvt, TFLAG_IO) && tech_pvt->video_read_frame.datalen == 0) {
|
||||
tech_pvt->video_read_frame.flags = SFF_NONE;
|
||||
|
||||
status = switch_rtp_zerocopy_read_frame(tech_pvt->video_rtp_session, &tech_pvt->video_read_frame);
|
||||
status = switch_rtp_zerocopy_read_frame(tech_pvt->video_rtp_session, &tech_pvt->video_read_frame, flags);
|
||||
if (status != SWITCH_STATUS_SUCCESS && status != SWITCH_STATUS_BREAK) {
|
||||
if (status == SWITCH_STATUS_TIMEOUT) {
|
||||
switch_channel_hangup(tech_pvt->channel, SWITCH_CAUSE_MEDIA_TIMEOUT);
|
||||
|
@ -468,7 +468,7 @@ static switch_status_t sofia_read_video_frame(switch_core_session_t *session, sw
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t sofia_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t sofia_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
private_object_t *tech_pvt = (private_object_t *) switch_core_session_get_private(session);
|
||||
switch_channel_t *channel = switch_core_session_get_channel(session);
|
||||
|
@ -503,7 +503,7 @@ static switch_status_t sofia_write_video_frame(switch_core_session_t *session, s
|
|||
return status;
|
||||
}
|
||||
|
||||
static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
private_object_t *tech_pvt = switch_core_session_get_private(session);
|
||||
switch_channel_t *channel = switch_core_session_get_channel(session);
|
||||
|
@ -544,7 +544,7 @@ static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_f
|
|||
while (switch_test_flag(tech_pvt, TFLAG_IO) && tech_pvt->read_frame.datalen == 0) {
|
||||
tech_pvt->read_frame.flags = SFF_NONE;
|
||||
|
||||
status = switch_rtp_zerocopy_read_frame(tech_pvt->rtp_session, &tech_pvt->read_frame);
|
||||
status = switch_rtp_zerocopy_read_frame(tech_pvt->rtp_session, &tech_pvt->read_frame, flags);
|
||||
|
||||
if (status != SWITCH_STATUS_SUCCESS && status != SWITCH_STATUS_BREAK) {
|
||||
if (status == SWITCH_STATUS_TIMEOUT) {
|
||||
|
@ -588,7 +588,7 @@ static switch_status_t sofia_read_frame(switch_core_session_t *session, switch_f
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t sofia_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t sofia_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
private_object_t *tech_pvt = switch_core_session_get_private(session);
|
||||
switch_channel_t *channel = switch_core_session_get_channel(session);
|
||||
|
@ -673,16 +673,6 @@ static switch_status_t sofia_kill_channel(switch_core_session_t *session, int si
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t sofia_waitfor_read(switch_core_session_t *session, int ms, int stream_id)
|
||||
{
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t sofia_waitfor_write(switch_core_session_t *session, int ms, int stream_id)
|
||||
{
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t sofia_send_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
|
||||
{
|
||||
private_object_t *tech_pvt;
|
||||
|
@ -1623,8 +1613,6 @@ switch_io_routines_t sofia_io_routines = {
|
|||
/*.read_frame */ sofia_read_frame,
|
||||
/*.write_frame */ sofia_write_frame,
|
||||
/*.kill_channel */ sofia_kill_channel,
|
||||
/*.waitfor_read */ sofia_waitfor_read,
|
||||
/*.waitfor_read */ sofia_waitfor_write,
|
||||
/*.send_dtmf */ sofia_send_dtmf,
|
||||
/*.receive_message */ sofia_receive_message,
|
||||
/*.receive_event */ sofia_receive_event,
|
||||
|
|
|
@ -468,9 +468,9 @@ static switch_status_t wanpipe_on_exchange_media(switch_core_session_t *session)
|
|||
static switch_status_t wanpipe_on_soft_execute(switch_core_session_t *session);
|
||||
static switch_call_cause_t wanpipe_outgoing_channel(switch_core_session_t *session, switch_caller_profile_t *outbound_profile,
|
||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||
static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout,
|
||||
static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch_frame_t **frame,
|
||||
switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t wanpipe_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout,
|
||||
static switch_status_t wanpipe_write_frame(switch_core_session_t *session, switch_frame_t *frame,
|
||||
switch_io_flag_t flags, int stream_id);
|
||||
static int on_info(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent);
|
||||
static int on_hangup(struct sangoma_pri *spri, sangoma_pri_event_t event_type, pri_event *pevent);
|
||||
|
@ -751,7 +751,7 @@ static switch_status_t wanpipe_answer_channel(switch_core_session_t *session)
|
|||
|
||||
|
||||
|
||||
static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout,
|
||||
static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch_frame_t **frame,
|
||||
switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
private_object_t *tech_pvt;
|
||||
|
@ -838,7 +838,7 @@ static switch_status_t wanpipe_read_frame(switch_core_session_t *session, switch
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t wanpipe_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout,
|
||||
static switch_status_t wanpipe_write_frame(switch_core_session_t *session, switch_frame_t *frame,
|
||||
switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
private_object_t *tech_pvt;
|
||||
|
@ -993,8 +993,6 @@ switch_io_routines_t wanpipe_io_routines = {
|
|||
/*.read_frame */ wanpipe_read_frame,
|
||||
/*.write_frame */ wanpipe_write_frame,
|
||||
/*.kill_channel */ wanpipe_kill_channel,
|
||||
/*.waitfor_read */ NULL,
|
||||
/*.waitfor_read */ NULL,
|
||||
/*.send_dtmf*/ wanpipe_send_dtmf,
|
||||
/*.receive_message*/ wanpipe_receive_message
|
||||
};
|
||||
|
|
|
@ -176,8 +176,8 @@ static switch_status_t woomera_on_soft_execute(switch_core_session_t *session);
|
|||
static switch_call_cause_t woomera_outgoing_channel(switch_core_session_t *session,
|
||||
switch_caller_profile_t *outbound_profile,
|
||||
switch_core_session_t **new_session, switch_memory_pool_t **pool, switch_originate_flag_t flags);
|
||||
static switch_status_t woomera_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t woomera_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t woomera_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t woomera_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id);
|
||||
static switch_status_t woomera_kill_channel(switch_core_session_t *session, int sig);
|
||||
static void tech_destroy(private_object * tech_pvt);
|
||||
static void woomera_printf(woomera_profile * profile, switch_socket_t * socket, char *fmt, ...);
|
||||
|
@ -322,28 +322,7 @@ static switch_status_t woomera_on_soft_execute(switch_core_session_t *session)
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t woomera_waitfor_read(switch_core_session_t *session, int ms, int stream_id)
|
||||
{
|
||||
struct private_object *tech_pvt = NULL;
|
||||
|
||||
tech_pvt = switch_core_session_get_private(session);
|
||||
switch_assert(tech_pvt != NULL);
|
||||
|
||||
return switch_socket_waitfor(tech_pvt->read_poll, ms) ? SWITCH_STATUS_FALSE : SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t woomera_waitfor_write(switch_core_session_t *session, int ms, int stream_id)
|
||||
{
|
||||
struct private_object *tech_pvt = NULL;
|
||||
|
||||
tech_pvt = switch_core_session_get_private(session);
|
||||
switch_assert(tech_pvt != NULL);
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
// return switch_socket_waitfor(tech_pvt->write_poll, ms);
|
||||
}
|
||||
|
||||
static switch_status_t woomera_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t woomera_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
struct private_object *tech_pvt = switch_core_session_get_private(session);
|
||||
switch_frame_t *pframe;
|
||||
|
@ -379,7 +358,7 @@ static switch_status_t woomera_read_frame(switch_core_session_t *session, switch
|
|||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
static switch_status_t woomera_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t woomera_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
struct private_object *tech_pvt = switch_core_session_get_private(session);
|
||||
switch_size_t len;
|
||||
|
@ -417,8 +396,6 @@ static switch_io_routines_t woomera_io_routines = {
|
|||
/*.read_frame */ woomera_read_frame,
|
||||
/*.write_frame */ woomera_write_frame,
|
||||
/*.kill_channel */ woomera_kill_channel,
|
||||
/*.waitfor_read */ woomera_waitfor_read,
|
||||
/*.waitfor_write */ woomera_waitfor_write
|
||||
};
|
||||
|
||||
/* Make sure when you have 2 sessions in the same scope that you pass the appropriate one to the routines
|
||||
|
|
|
@ -209,7 +209,6 @@ static JSBool teletone_generate(JSContext * cx, JSObject * obj, uintN argc, jsva
|
|||
switch_frame_t write_frame = { 0 };
|
||||
unsigned char *fdata[1024];
|
||||
switch_frame_t *read_frame;
|
||||
int stream_id;
|
||||
switch_core_thread_session_t thread_session = { 0 };
|
||||
switch_channel_t *channel;
|
||||
|
||||
|
@ -238,9 +237,7 @@ static JSBool teletone_generate(JSContext * cx, JSObject * obj, uintN argc, jsva
|
|||
channel = switch_core_session_get_channel(session);
|
||||
|
||||
if (tto->timer) {
|
||||
for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
|
||||
switch_core_service_session(session, &thread_session, stream_id);
|
||||
}
|
||||
switch_core_service_session(session, &thread_session, 0);
|
||||
}
|
||||
|
||||
if (loops) {
|
||||
|
@ -275,7 +272,7 @@ static JSBool teletone_generate(JSContext * cx, JSObject * obj, uintN argc, jsva
|
|||
|
||||
} else {
|
||||
switch_status_t status;
|
||||
status = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
|
@ -287,11 +284,9 @@ static JSBool teletone_generate(JSContext * cx, JSObject * obj, uintN argc, jsva
|
|||
}
|
||||
|
||||
write_frame.samples = write_frame.datalen / 2;
|
||||
for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
|
||||
if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Bad Write\n");
|
||||
break;
|
||||
}
|
||||
if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Bad Write\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -187,7 +187,7 @@ static void *switch_core_service_thread(switch_thread_t * thread, void *obj)
|
|||
|
||||
switch_channel_set_flag(channel, CF_SERVICE);
|
||||
while (data->running > 0) {
|
||||
switch (switch_core_session_read_frame(session, &read_frame, -1, stream_id)) {
|
||||
switch (switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, stream_id)) {
|
||||
case SWITCH_STATUS_SUCCESS:
|
||||
case SWITCH_STATUS_TIMEOUT:
|
||||
case SWITCH_STATUS_BREAK:
|
||||
|
|
|
@ -40,8 +40,6 @@ NEW_HOOK_DECL(write_frame)
|
|||
NEW_HOOK_DECL(video_read_frame)
|
||||
NEW_HOOK_DECL(video_write_frame)
|
||||
NEW_HOOK_DECL(kill_channel)
|
||||
NEW_HOOK_DECL(waitfor_read)
|
||||
NEW_HOOK_DECL(waitfor_write)
|
||||
NEW_HOOK_DECL(send_dtmf)
|
||||
NEW_HOOK_DECL(recv_dtmf)
|
||||
NEW_HOOK_DECL(resurrect_session)
|
||||
|
|
|
@ -35,20 +35,19 @@
|
|||
#include <switch.h>
|
||||
#include "private/switch_core_pvt.h"
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, int stream_id)
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
switch_io_event_hook_video_write_frame_t *ptr;
|
||||
switch_status_t status = SWITCH_STATUS_FALSE;
|
||||
switch_io_flag_t flags = 0;
|
||||
|
||||
if (switch_channel_get_state(session->channel) >= CS_HANGUP) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
if (session->endpoint_interface->io_routines->write_video_frame) {
|
||||
if ((status = session->endpoint_interface->io_routines->write_video_frame(session, frame, timeout, flags, stream_id)) == SWITCH_STATUS_SUCCESS) {
|
||||
if ((status = session->endpoint_interface->io_routines->write_video_frame(session, frame, flags, stream_id)) == SWITCH_STATUS_SUCCESS) {
|
||||
for (ptr = session->event_hooks.video_write_frame; ptr; ptr = ptr->next) {
|
||||
if ((status = ptr->video_write_frame(session, frame, timeout, flags, stream_id)) != SWITCH_STATUS_SUCCESS) {
|
||||
if ((status = ptr->video_write_frame(session, frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -57,7 +56,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_video_frame(switch_cor
|
|||
return status;
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, int stream_id)
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
switch_status_t status = SWITCH_STATUS_FALSE;
|
||||
switch_io_event_hook_video_read_frame_t *ptr;
|
||||
|
@ -68,9 +67,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(switch_core
|
|||
|
||||
if (session->endpoint_interface->io_routines->read_video_frame) {
|
||||
if ((status =
|
||||
session->endpoint_interface->io_routines->read_video_frame(session, frame, timeout, SWITCH_IO_FLAG_NOOP, stream_id)) == SWITCH_STATUS_SUCCESS) {
|
||||
session->endpoint_interface->io_routines->read_video_frame(session, frame, flags, stream_id)) == SWITCH_STATUS_SUCCESS) {
|
||||
for (ptr = session->event_hooks.video_read_frame; ptr; ptr = ptr->next) {
|
||||
if ((status = ptr->video_read_frame(session, frame, timeout, SWITCH_IO_FLAG_NOOP, stream_id)) != SWITCH_STATUS_SUCCESS) {
|
||||
if ((status = ptr->video_read_frame(session, frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -98,7 +97,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_video_frame(switch_core
|
|||
return status;
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_session_t *session, switch_frame_t **frame, int timeout, int stream_id)
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_session_t *session, switch_frame_t **frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
switch_io_event_hook_read_frame_t *ptr;
|
||||
switch_status_t status;
|
||||
|
@ -125,9 +124,9 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi
|
|||
|
||||
if (session->endpoint_interface->io_routines->read_frame) {
|
||||
if ((status =
|
||||
session->endpoint_interface->io_routines->read_frame(session, frame, timeout, SWITCH_IO_FLAG_NOOP, stream_id)) == SWITCH_STATUS_SUCCESS) {
|
||||
session->endpoint_interface->io_routines->read_frame(session, frame, flags, stream_id)) == SWITCH_STATUS_SUCCESS) {
|
||||
for (ptr = session->event_hooks.read_frame; ptr; ptr = ptr->next) {
|
||||
if ((status = ptr->read_frame(session, frame, timeout, SWITCH_IO_FLAG_NOOP, stream_id)) != SWITCH_STATUS_SUCCESS) {
|
||||
if ((status = ptr->read_frame(session, frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -469,16 +468,16 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi
|
|||
return status;
|
||||
}
|
||||
|
||||
static switch_status_t perform_write(switch_core_session_t *session, switch_frame_t *frame, int timeout, switch_io_flag_t flags, int stream_id)
|
||||
static switch_status_t perform_write(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
switch_io_event_hook_write_frame_t *ptr;
|
||||
switch_status_t status = SWITCH_STATUS_FALSE;
|
||||
|
||||
if (session->endpoint_interface->io_routines->write_frame) {
|
||||
|
||||
if ((status = session->endpoint_interface->io_routines->write_frame(session, frame, timeout, flags, stream_id)) == SWITCH_STATUS_SUCCESS) {
|
||||
if ((status = session->endpoint_interface->io_routines->write_frame(session, frame, flags, stream_id)) == SWITCH_STATUS_SUCCESS) {
|
||||
for (ptr = session->event_hooks.write_frame; ptr; ptr = ptr->next) {
|
||||
if ((status = ptr->write_frame(session, frame, timeout, flags, stream_id)) != SWITCH_STATUS_SUCCESS) {
|
||||
if ((status = ptr->write_frame(session, frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -488,13 +487,12 @@ static switch_status_t perform_write(switch_core_session_t *session, switch_fram
|
|||
return status;
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_session_t *session, switch_frame_t *frame, int timeout, int stream_id)
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
|
||||
{
|
||||
|
||||
switch_status_t status = SWITCH_STATUS_FALSE;
|
||||
switch_frame_t *enc_frame = NULL, *write_frame = frame;
|
||||
unsigned int flag = 0, need_codec = 0, perfect = 0, do_bugs = 0, do_write = 0, do_resample = 0, ptime_mismatch = 0;
|
||||
switch_io_flag_t io_flag = SWITCH_IO_FLAG_NOOP;
|
||||
|
||||
switch_assert(session != NULL);
|
||||
switch_assert(frame != NULL);
|
||||
|
@ -509,12 +507,12 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
|
|||
|
||||
if (switch_test_flag(frame, SFF_PROXY_PACKET)) {
|
||||
/* Fast PASS! */
|
||||
return perform_write(session, frame, timeout, flag, stream_id);
|
||||
return perform_write(session, frame, flag, stream_id);
|
||||
}
|
||||
|
||||
if (switch_test_flag(frame, SFF_CNG)) {
|
||||
if (switch_channel_test_flag(session->channel, CF_ACCEPT_CNG)) {
|
||||
return perform_write(session, frame, timeout, flag, stream_id);
|
||||
return perform_write(session, frame, flag, stream_id);
|
||||
}
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
@ -755,7 +753,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
|
|||
if (flag & SFF_CNG) {
|
||||
switch_set_flag(write_frame, SFF_CNG);
|
||||
}
|
||||
status = perform_write(session, write_frame, timeout, io_flag, stream_id);
|
||||
status = perform_write(session, write_frame, flags, stream_id);
|
||||
return status;
|
||||
} else {
|
||||
switch_size_t used = switch_buffer_inuse(session->raw_write_buffer);
|
||||
|
@ -861,7 +859,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
|
|||
switch_set_flag(write_frame, SFF_CNG);
|
||||
}
|
||||
|
||||
if ((status = perform_write(session, write_frame, timeout, io_flag, stream_id)) != SWITCH_STATUS_SUCCESS) {
|
||||
if ((status = perform_write(session, write_frame, flags, stream_id)) != SWITCH_STATUS_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -877,7 +875,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
|
|||
done:
|
||||
|
||||
if (do_write) {
|
||||
return perform_write(session, frame, timeout, io_flag, stream_id);
|
||||
return perform_write(session, frame, flags, stream_id);
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
@ -911,40 +909,6 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_perform_kill_channel(switch_
|
|||
return status;
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_waitfor_read(switch_core_session_t *session, int timeout, int stream_id)
|
||||
{
|
||||
switch_io_event_hook_waitfor_read_t *ptr;
|
||||
switch_status_t status = SWITCH_STATUS_FALSE;
|
||||
|
||||
if (session->endpoint_interface->io_routines->waitfor_read) {
|
||||
if ((status = session->endpoint_interface->io_routines->waitfor_read(session, timeout, stream_id)) == SWITCH_STATUS_SUCCESS) {
|
||||
for (ptr = session->event_hooks.waitfor_read; ptr; ptr = ptr->next) {
|
||||
if ((status = ptr->waitfor_read(session, timeout, stream_id)) != SWITCH_STATUS_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_waitfor_write(switch_core_session_t *session, int timeout, int stream_id)
|
||||
{
|
||||
switch_io_event_hook_waitfor_write_t *ptr;
|
||||
switch_status_t status = SWITCH_STATUS_FALSE;
|
||||
|
||||
if (session->endpoint_interface->io_routines->waitfor_write) {
|
||||
if ((status = session->endpoint_interface->io_routines->waitfor_write(session, timeout, stream_id)) == SWITCH_STATUS_SUCCESS) {
|
||||
for (ptr = session->event_hooks.waitfor_write; ptr; ptr = ptr->next) {
|
||||
if ((status = ptr->waitfor_write(session, timeout, stream_id)) != SWITCH_STATUS_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_core_session_recv_dtmf(switch_core_session_t *session, const switch_dtmf_t *dtmf)
|
||||
{
|
||||
switch_io_event_hook_recv_dtmf_t *ptr;
|
||||
|
|
|
@ -64,7 +64,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_sleep(switch_core_session_t *session,
|
|||
(!switch_channel_test_flag(channel, CF_ANSWERED) && !switch_channel_test_flag(channel, CF_EARLY_MEDIA))) {
|
||||
switch_yield(1000);
|
||||
} else {
|
||||
status = switch_core_session_read_frame(session, &read_frame, left, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ static void *SWITCH_THREAD_FUNC unicast_thread_run(switch_thread_t *thread, void
|
|||
}
|
||||
conninfo->write_frame.datalen = (uint32_t)len;
|
||||
conninfo->write_frame.samples = conninfo->write_frame.datalen / 2;
|
||||
switch_core_session_write_frame(conninfo->session, &conninfo->write_frame, -1, conninfo->stream_id);
|
||||
switch_core_session_write_frame(conninfo->session, &conninfo->write_frame, SWITCH_IO_FLAG_NONE, conninfo->stream_id);
|
||||
}
|
||||
|
||||
switch_clear_flag_locked(conninfo, SUF_READY);
|
||||
|
@ -276,7 +276,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se
|
|||
int frame_count = atoi(lead_frames);
|
||||
|
||||
while(frame_count > 0) {
|
||||
status = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
goto done;
|
||||
}
|
||||
|
@ -449,7 +449,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_park(switch_core_session_t *session,
|
|||
|
||||
while (switch_channel_ready(channel) && switch_channel_test_flag(channel, CF_CONTROLLED)) {
|
||||
|
||||
if ((status = switch_core_session_read_frame(session, &read_frame, -1, stream_id)) == SWITCH_STATUS_SUCCESS) {
|
||||
if ((status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, stream_id)) == SWITCH_STATUS_SUCCESS) {
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
}
|
||||
|
@ -615,7 +615,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_collect_digits_callback(switch_core_s
|
|||
if (switch_channel_test_flag(channel, CF_SERVICE)) {
|
||||
switch_yield(1000);
|
||||
} else {
|
||||
status = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
}
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
|
@ -731,7 +731,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_collect_digits_count(switch_core_sess
|
|||
if (switch_channel_test_flag(channel, CF_SERVICE)) {
|
||||
switch_yield(1000);
|
||||
} else {
|
||||
status = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
}
|
||||
|
@ -843,7 +843,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_media(const char *uuid, switch_media_
|
|||
switch_core_session_receive_message(session, &msg);
|
||||
|
||||
switch_channel_wait_for_flag(channel, CF_REQ_MEDIA, SWITCH_FALSE, 10000);
|
||||
switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if ((flags & SMF_REBRIDGE)
|
||||
&& (other_uuid = switch_channel_get_variable(channel, SWITCH_SIGNAL_BRIDGE_VARIABLE))
|
||||
|
@ -852,7 +852,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_media(const char *uuid, switch_media_
|
|||
switch_assert(other_channel != NULL);
|
||||
switch_core_session_receive_message(other_session, &msg);
|
||||
switch_channel_wait_for_flag(other_channel, CF_REQ_MEDIA, SWITCH_FALSE, 10000);
|
||||
switch_core_session_read_frame(other_session, &read_frame, -1, 0);
|
||||
switch_core_session_read_frame(other_session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
switch_channel_clear_state_handler(other_channel, NULL);
|
||||
switch_core_session_rwunlock(other_session);
|
||||
}
|
||||
|
@ -1642,7 +1642,7 @@ SWITCH_DECLARE(void) switch_ivr_delay_echo(switch_core_session_t *session, uint3
|
|||
write_frame.codec = read_codec;
|
||||
|
||||
while(switch_channel_ready(channel)) {
|
||||
status = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
}
|
||||
|
@ -1653,7 +1653,7 @@ SWITCH_DECLARE(void) switch_ivr_delay_echo(switch_core_session_t *session, uint3
|
|||
if ((jb_frame = stfu_n_read_a_frame(jb))) {
|
||||
write_frame.data = jb_frame->data;
|
||||
write_frame.datalen = (uint32_t)jb_frame->dlen;
|
||||
status = switch_core_session_write_frame(session, &write_frame, -1, 0);
|
||||
status = switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ static void *SWITCH_THREAD_FUNC echo_video_thread(switch_thread_t *thread, void
|
|||
|
||||
eh->up = 1;
|
||||
while(switch_channel_ready(channel)) {
|
||||
status = switch_core_session_read_video_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_video_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
|
@ -59,7 +59,7 @@ static void *SWITCH_THREAD_FUNC echo_video_thread(switch_thread_t *thread, void
|
|||
continue;
|
||||
}
|
||||
|
||||
switch_core_session_write_video_frame(session, read_frame, -1, 0);
|
||||
switch_core_session_write_video_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
}
|
||||
eh->up = 0;
|
||||
|
@ -91,14 +91,14 @@ SWITCH_DECLARE(void) switch_ivr_session_echo(switch_core_session_t *session)
|
|||
#endif
|
||||
|
||||
while(switch_channel_ready(channel)) {
|
||||
status = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
}
|
||||
switch_core_session_write_frame(session, read_frame, -1, 0);
|
||||
switch_core_session_write_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
#ifndef SWITCH_VIDEO_IN_THREADS
|
||||
status = switch_core_session_read_video_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_video_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
|
@ -108,7 +108,7 @@ SWITCH_DECLARE(void) switch_ivr_session_echo(switch_core_session_t *session)
|
|||
continue;
|
||||
}
|
||||
|
||||
switch_core_session_write_video_frame(session, read_frame, -1, 0);
|
||||
switch_core_session_write_video_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
@ -590,7 +590,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_eavesdrop_session(switch_core_session
|
|||
char *fcommand = NULL;
|
||||
char db[2] = "";
|
||||
|
||||
status = switch_core_session_read_frame(session, &read_frame, 1000, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
goto end;
|
||||
|
@ -676,7 +676,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_eavesdrop_session(switch_core_session
|
|||
while (switch_buffer_inuse(ep->buffer) >= len) {
|
||||
write_frame.datalen = (uint32_t)switch_buffer_read(ep->buffer, buf, len);
|
||||
write_frame.samples = write_frame.datalen / 2;
|
||||
if ((status = switch_core_session_write_frame(session, &write_frame, 1000, 0)) != SWITCH_STATUS_SUCCESS) {
|
||||
if ((status = switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0)) != SWITCH_STATUS_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -52,13 +52,13 @@ static void *SWITCH_THREAD_FUNC video_bridge_thread(switch_thread_t *thread, voi
|
|||
|
||||
vh->up = 1;
|
||||
while(switch_channel_ready(channel) && vh->up == 1) {
|
||||
status = switch_core_session_read_video_frame(vh->session_a, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_video_frame(vh->session_a, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
}
|
||||
|
||||
switch_core_session_write_video_frame(vh->session_b, read_frame, -1, 0);
|
||||
switch_core_session_write_video_frame(vh->session_b, read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
}
|
||||
vh->up = 0;
|
||||
|
@ -164,7 +164,7 @@ static void *audio_bridge_thread(switch_thread_t * thread, void *obj)
|
|||
if (switch_channel_test_flag(chan_a, CF_SUSPEND)) {
|
||||
status = SWITCH_STATUS_SUCCESS;
|
||||
} else {
|
||||
status = switch_core_session_read_frame(session_a, &read_frame, -1, stream_id);
|
||||
status = switch_core_session_read_frame(session_a, &read_frame, SWITCH_IO_FLAG_NONE, stream_id);
|
||||
}
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
|
@ -250,18 +250,18 @@ static void *audio_bridge_thread(switch_thread_t * thread, void *obj)
|
|||
#ifndef SWITCH_VIDEO_IN_THREADS
|
||||
if (switch_channel_test_flag(chan_a, CF_VIDEO) && switch_channel_test_flag(chan_b, CF_VIDEO)) {
|
||||
/* read video from 1 channel and write it to the other */
|
||||
status = switch_core_session_read_video_frame(session_a, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_video_frame(session_a, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
goto end_of_bridge_loop;
|
||||
}
|
||||
|
||||
switch_core_session_write_video_frame(session_b, read_frame, -1, 0);
|
||||
switch_core_session_write_video_frame(session_b, read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* read audio from 1 channel and write it to the other */
|
||||
status = switch_core_session_read_frame(session_a, &read_frame, -1, stream_id);
|
||||
status = switch_core_session_read_frame(session_a, &read_frame, SWITCH_IO_FLAG_NONE, stream_id);
|
||||
|
||||
if (SWITCH_READ_ACCEPTABLE(status)) {
|
||||
if (switch_test_flag(read_frame, SFF_CNG)) {
|
||||
|
@ -269,7 +269,7 @@ static void *audio_bridge_thread(switch_thread_t * thread, void *obj)
|
|||
}
|
||||
|
||||
if (status != SWITCH_STATUS_BREAK && !switch_channel_test_flag(chan_a, CF_HOLD)) {
|
||||
if (switch_core_session_write_frame(session_b, read_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
|
||||
if (switch_core_session_write_frame(session_b, read_frame, SWITCH_IO_FLAG_NONE, stream_id) != SWITCH_STATUS_SUCCESS) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "write: %s Bad Frame....[%u] Bubye!\n",
|
||||
switch_channel_get_name(chan_b), read_frame->datalen);
|
||||
goto end_of_bridge_loop;
|
||||
|
|
|
@ -383,7 +383,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_wait_for_answer(switch_core_session_t
|
|||
message = NULL;
|
||||
}
|
||||
}
|
||||
status = switch_core_session_read_frame(session, &read_frame, 1000, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
}
|
||||
|
@ -421,7 +421,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_wait_for_answer(switch_core_session_t
|
|||
}
|
||||
}
|
||||
|
||||
if (switch_core_session_write_frame(session, &write_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) {
|
||||
if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
|
@ -1061,7 +1061,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
|
|||
if (session && (ringback_data ||
|
||||
!(switch_channel_test_flag(caller_channel, CF_PROXY_MODE) && switch_channel_test_flag(caller_channel, CF_PROXY_MODE))) &&
|
||||
(switch_channel_test_flag(caller_channel, CF_ANSWERED) || switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA))) {
|
||||
switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, 1000, 0);
|
||||
switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(tstatus)) {
|
||||
break;
|
||||
|
@ -1100,7 +1100,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
|
|||
}
|
||||
}
|
||||
|
||||
if (switch_core_session_write_frame(session, &write_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) {
|
||||
if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -505,7 +505,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_record_file(switch_core_session_t *se
|
|||
}
|
||||
}
|
||||
|
||||
status = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
}
|
||||
|
@ -624,7 +624,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_gentones(switch_core_session_t *sessi
|
|||
break;
|
||||
}
|
||||
|
||||
status = switch_core_session_read_frame(session, &read_frame, 1000, 0);
|
||||
status = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(status)) {
|
||||
break;
|
||||
|
@ -643,7 +643,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_gentones(switch_core_session_t *sessi
|
|||
|
||||
write_frame.samples = write_frame.datalen / 2;
|
||||
|
||||
if (switch_core_session_write_frame(session, &write_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) {
|
||||
if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -674,7 +674,6 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess
|
|||
switch_codec_t codec;
|
||||
switch_memory_pool_t *pool = switch_core_session_get_pool(session);
|
||||
char *codec_name;
|
||||
int stream_id = 0;
|
||||
switch_status_t status = SWITCH_STATUS_SUCCESS;
|
||||
switch_file_handle_t lfh;
|
||||
switch_codec_t *read_codec = NULL;
|
||||
|
@ -899,9 +898,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess
|
|||
|
||||
if (timer_name) {
|
||||
/* start a thread to absorb incoming audio */
|
||||
for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
|
||||
switch_core_service_session(session, &thread_session, stream_id);
|
||||
}
|
||||
switch_core_service_session(session, &thread_session, 0);
|
||||
}
|
||||
|
||||
ilen = samples;
|
||||
|
@ -1080,14 +1077,12 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess
|
|||
}
|
||||
#endif
|
||||
#endif
|
||||
stream_id = 0;
|
||||
|
||||
if (fh->vol) {
|
||||
switch_change_sln_volume(write_frame.data, write_frame.datalen / 2, fh->vol);
|
||||
}
|
||||
|
||||
fh->offset_pos += write_frame.samples / 2;
|
||||
status = switch_core_session_write_frame(session, &write_frame, -1, stream_id);
|
||||
status = switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (status == SWITCH_STATUS_MORE_DATA) {
|
||||
status = SWITCH_STATUS_SUCCESS;
|
||||
|
@ -1112,7 +1107,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess
|
|||
switch_yield(10000);
|
||||
}
|
||||
|
||||
tstatus = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
tstatus = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
if (!SWITCH_READ_ACCEPTABLE(tstatus)) {
|
||||
break;
|
||||
|
@ -1338,7 +1333,6 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text_handle(switch_core_session
|
|||
switch_size_t ilen = 0;
|
||||
switch_frame_t write_frame = { 0 };
|
||||
int x;
|
||||
int stream_id = 0;
|
||||
int done = 0;
|
||||
int lead_in_out = 10;
|
||||
switch_status_t status = SWITCH_STATUS_SUCCESS;
|
||||
|
@ -1420,7 +1414,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text_handle(switch_core_session
|
|||
if (timer) {
|
||||
write_frame.timestamp = timer->samplecount;
|
||||
}
|
||||
if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
|
||||
if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) {
|
||||
done = 1;
|
||||
break;
|
||||
}
|
||||
|
@ -1490,7 +1484,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text_handle(switch_core_session
|
|||
}
|
||||
} else {
|
||||
switch_frame_t *read_frame;
|
||||
switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
while (switch_channel_ready(channel) && switch_channel_test_flag(channel, CF_HOLD)) {
|
||||
switch_yield(10000);
|
||||
|
@ -1518,7 +1512,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text_handle(switch_core_session
|
|||
if (timer) {
|
||||
write_frame.timestamp = timer->samplecount;
|
||||
}
|
||||
if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
|
||||
if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) {
|
||||
done = 1;
|
||||
break;
|
||||
}
|
||||
|
@ -1538,7 +1532,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text_handle(switch_core_session
|
|||
if (timer) {
|
||||
write_frame.timestamp = timer->samplecount;
|
||||
}
|
||||
if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
|
||||
if (switch_core_session_write_frame(session, &write_frame, SWITCH_IO_FLAG_NONE, 0) != SWITCH_STATUS_SUCCESS) {
|
||||
done = 1;
|
||||
break;
|
||||
}
|
||||
|
@ -1553,7 +1547,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text_handle(switch_core_session
|
|||
}
|
||||
} else { /* time off the channel (if you must) */
|
||||
switch_frame_t *read_frame;
|
||||
switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, -1, 0);
|
||||
switch_status_t tstatus = switch_core_session_read_frame(session, &read_frame, SWITCH_IO_FLAG_NONE, 0);
|
||||
|
||||
while (switch_channel_ready(channel) && switch_channel_test_flag(channel, CF_HOLD)) {
|
||||
switch_yield(10000);
|
||||
|
@ -1618,7 +1612,6 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text(switch_core_session_t *ses
|
|||
switch_codec_t lcodec, *codec;
|
||||
switch_memory_pool_t *pool = switch_core_session_get_pool(session);
|
||||
char *codec_name;
|
||||
int stream_id = 0;
|
||||
switch_status_t status = SWITCH_STATUS_SUCCESS;
|
||||
switch_speech_handle_t lsh, *sh;
|
||||
switch_speech_flag_t flags = SWITCH_SPEECH_FLAG_NONE;
|
||||
|
@ -1721,9 +1714,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_speak_text(switch_core_session_t *ses
|
|||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "setup timer success %u bytes per %d ms!\n", sh->samples * 2, interval);
|
||||
}
|
||||
/* start a thread to absorb incoming audio */
|
||||
for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
|
||||
switch_core_service_session(session, &thread_session, stream_id);
|
||||
}
|
||||
switch_core_service_session(session, &thread_session, 0);
|
||||
|
||||
}
|
||||
|
||||
status = switch_ivr_speak_text_handle(session, sh, write_frame.codec, timer_name ? timer : NULL, text, args);
|
||||
|
|
|
@ -1094,7 +1094,7 @@ static void do_2833(switch_rtp_t *rtp_session)
|
|||
}
|
||||
}
|
||||
|
||||
static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_type, switch_frame_flag_t *flags)
|
||||
static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags)
|
||||
{
|
||||
switch_size_t bytes = 0;
|
||||
switch_status_t status;
|
||||
|
@ -1142,6 +1142,12 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
|
|||
goto end;
|
||||
}
|
||||
|
||||
if (!bytes && (io_flags & SWITCH_IO_FLAG_NOBLOCK)) {
|
||||
do_cng = 1;
|
||||
goto cng;
|
||||
}
|
||||
|
||||
|
||||
if (rtp_session->timer.interval) {
|
||||
check = (uint8_t) (switch_core_timer_check(&rtp_session->timer, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS);
|
||||
if (bytes) {
|
||||
|
@ -1508,7 +1514,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_queue_rfc2833_in(switch_rtp_t *rtp_se
|
|||
}
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_rtp_read(switch_rtp_t *rtp_session, void *data, uint32_t * datalen,
|
||||
switch_payload_t *payload_type, switch_frame_flag_t *flags)
|
||||
switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags)
|
||||
{
|
||||
int bytes = 0;
|
||||
|
||||
|
@ -1516,7 +1522,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_read(switch_rtp_t *rtp_session, void
|
|||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
bytes = rtp_common_read(rtp_session, payload_type, flags);
|
||||
bytes = rtp_common_read(rtp_session, payload_type, flags, io_flags);
|
||||
|
||||
if (bytes < 0) {
|
||||
*datalen = 0;
|
||||
|
@ -1535,7 +1541,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_read(switch_rtp_t *rtp_session, void
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp_session, switch_frame_t *frame)
|
||||
SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp_session, switch_frame_t *frame, switch_io_flag_t io_flags)
|
||||
{
|
||||
int bytes = 0;
|
||||
|
||||
|
@ -1543,7 +1549,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp
|
|||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
bytes = rtp_common_read(rtp_session, &frame->payload, &frame->flags);
|
||||
bytes = rtp_common_read(rtp_session, &frame->payload, &frame->flags, io_flags);
|
||||
|
||||
frame->data = rtp_session->recv_msg.body;
|
||||
frame->packet = &rtp_session->recv_msg;
|
||||
|
@ -1574,7 +1580,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read_frame(switch_rtp_t *rtp
|
|||
}
|
||||
|
||||
SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read(switch_rtp_t *rtp_session,
|
||||
void **data, uint32_t * datalen, switch_payload_t *payload_type, switch_frame_flag_t *flags)
|
||||
void **data, uint32_t * datalen, switch_payload_t *payload_type, switch_frame_flag_t *flags, switch_io_flag_t io_flags)
|
||||
{
|
||||
int bytes = 0;
|
||||
|
||||
|
@ -1582,7 +1588,7 @@ SWITCH_DECLARE(switch_status_t) switch_rtp_zerocopy_read(switch_rtp_t *rtp_sessi
|
|||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
bytes = rtp_common_read(rtp_session, payload_type, flags);
|
||||
bytes = rtp_common_read(rtp_session, payload_type, flags, io_flags);
|
||||
*data = rtp_session->recv_msg.body;
|
||||
|
||||
if (bytes < 0) {
|
||||
|
|
Loading…
Reference in New Issue