forked from Mirrors/freeswitch
zig
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7437 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
21602675ec
commit
fc20408ad4
@ -1513,7 +1513,8 @@ static void conference_loop_output(conference_member_t * member)
|
|||||||
uint32_t tsamples = member->orig_read_codec->implementation->samples_per_frame;
|
uint32_t tsamples = member->orig_read_codec->implementation->samples_per_frame;
|
||||||
uint32_t low_count = 0, bytes = samples * 2;
|
uint32_t low_count = 0, bytes = samples * 2;
|
||||||
call_list_t *call_list = NULL, *cp = NULL;
|
call_list_t *call_list = NULL, *cp = NULL;
|
||||||
|
uint32_t file_intervals = member->conference->interval / (member->orig_read_codec->implementation->microseconds_per_frame / 1000);
|
||||||
|
|
||||||
switch_assert(member->conference != NULL);
|
switch_assert(member->conference != NULL);
|
||||||
|
|
||||||
if (switch_core_timer_init(& timer, member->conference->timer_name, interval, tsamples, NULL) != SWITCH_STATUS_SUCCESS) {
|
if (switch_core_timer_init(& timer, member->conference->timer_name, interval, tsamples, NULL) != SWITCH_STATUS_SUCCESS) {
|
||||||
@ -1689,6 +1690,7 @@ static void conference_loop_output(conference_member_t * member)
|
|||||||
if (file_sample_len <= 0) {
|
if (file_sample_len <= 0) {
|
||||||
member->fnode->done++;
|
member->fnode->done++;
|
||||||
} else { /* there is file node data to deliver */
|
} else { /* there is file node data to deliver */
|
||||||
|
int ic;
|
||||||
write_frame.data = file_frame;
|
write_frame.data = file_frame;
|
||||||
write_frame.datalen = (uint32_t) file_data_len;
|
write_frame.datalen = (uint32_t) file_data_len;
|
||||||
write_frame.samples = (uint32_t) file_sample_len;
|
write_frame.samples = (uint32_t) file_sample_len;
|
||||||
@ -1698,8 +1700,10 @@ static void conference_loop_output(conference_member_t * member)
|
|||||||
}
|
}
|
||||||
write_frame.timestamp = timer.samplecount;
|
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, -1, 0);
|
||||||
switch_core_timer_next(&timer);
|
for (ic = 0; ic < file_intervals; ic++) {
|
||||||
|
switch_core_timer_next(&timer);
|
||||||
|
}
|
||||||
|
|
||||||
/* forget the conference data we played file node data instead */
|
/* forget the conference data we played file node data instead */
|
||||||
switch_set_flag_locked(member, MFLAG_FLUSH_BUFFER);
|
switch_set_flag_locked(member, MFLAG_FLUSH_BUFFER);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user