提交 cd054f7d authored 作者: Anthony Minessale's avatar Anthony Minessale

update

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@7540 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 3624982f
...@@ -760,15 +760,12 @@ static void *SWITCH_THREAD_FUNC conference_video_thread_run(switch_thread_t *thr ...@@ -760,15 +760,12 @@ static void *SWITCH_THREAD_FUNC conference_video_thread_run(switch_thread_t *thr
continue; continue;
} }
if (!conference->floor_holder) {
req_iframe = 0;
continue;
}
if (conference->floor_holder != last_member) { if (conference->floor_holder != last_member) {
int iframe = 0; int iframe = 0;
#if 0
switch_core_session_message_t msg = { 0 }; switch_core_session_message_t msg = { 0 };
if (!req_iframe) { if (!req_iframe) {
/* Tell the channel to request a fresh vid frame */ /* Tell the channel to request a fresh vid frame */
msg.from = __FILE__; msg.from = __FILE__;
...@@ -776,6 +773,7 @@ static void *SWITCH_THREAD_FUNC conference_video_thread_run(switch_thread_t *thr ...@@ -776,6 +773,7 @@ static void *SWITCH_THREAD_FUNC conference_video_thread_run(switch_thread_t *thr
switch_core_session_receive_message(conference->floor_holder->session, &msg); switch_core_session_receive_message(conference->floor_holder->session, &msg);
req_iframe = 1; req_iframe = 1;
} }
#endif
if (vid_frame->codec->implementation->ianacode == 34) { /* h.263 */ if (vid_frame->codec->implementation->ianacode == 34) { /* h.263 */
iframe = (*((int16_t*)vid_frame->data) >> 12 == 6); iframe = (*((int16_t*)vid_frame->data) >> 12 == 6);
...@@ -945,7 +943,7 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t * thread, ...@@ -945,7 +943,7 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t * thread,
} }
if (ready || has_file_data) { if (ready || has_file_data) {
int nt = 0; //int nt = 0;
/* Build a muxed frame for every member that contains the mixed audio of everyone else */ /* Build a muxed frame for every member that contains the mixed audio of everyone else */
for (omember = conference->members; omember; omember = omember->next) { for (omember = conference->members; omember; omember = omember->next) {
if (has_file_data && file_sample_len) { if (has_file_data && file_sample_len) {
...@@ -996,12 +994,12 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t * thread, ...@@ -996,12 +994,12 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t * thread,
} }
} }
} }
#if 0
if (nt && conference->not_talking_buf_len && !switch_test_flag(omember, MFLAG_HAS_AUDIO)) { if (nt && conference->not_talking_buf_len && !switch_test_flag(omember, MFLAG_HAS_AUDIO)) {
memcpy(omember->mux_frame, conference->not_talking_buf, conference->not_talking_buf_len); memcpy(omember->mux_frame, conference->not_talking_buf, conference->not_talking_buf_len);
continue; continue;
} }
#endif
bptr = (int16_t *) imember->frame; bptr = (int16_t *) imember->frame;
muxed = (int16_t *) omember->mux_frame; muxed = (int16_t *) omember->mux_frame;
...@@ -1010,7 +1008,7 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t * thread, ...@@ -1010,7 +1008,7 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t * thread,
switch_normalize_to_16bit(z); switch_normalize_to_16bit(z);
muxed[x] = (int16_t) z; muxed[x] = (int16_t) z;
} }
#if 0
if (total - ready > 1) { if (total - ready > 1) {
conference->not_talking_buf_len = imember->read; conference->not_talking_buf_len = imember->read;
if (!conference->not_talking_buf) { if (!conference->not_talking_buf) {
...@@ -1019,6 +1017,7 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t * thread, ...@@ -1019,6 +1017,7 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t * thread,
memcpy(conference->not_talking_buf, muxed, conference->not_talking_buf_len); memcpy(conference->not_talking_buf, muxed, conference->not_talking_buf_len);
nt++; nt++;
} }
#endif
} }
} }
...@@ -2590,6 +2589,11 @@ static void conference_list(conference_obj_t * conference, switch_stream_handle_ ...@@ -2590,6 +2589,11 @@ static void conference_list(conference_obj_t * conference, switch_stream_handle_
count++; count++;
} }
if (switch_channel_test_flag(switch_core_session_get_channel(member->session), CF_VIDEO)) {
stream->write_function(stream, "%s%s", count ? "|" : "", "video");
count++;
}
if (member == member->conference->floor_holder) { if (member == member->conference->floor_holder) {
stream->write_function(stream, "%s%s", count ? "|" : "", "floor"); stream->write_function(stream, "%s%s", count ? "|" : "", "floor");
count++; count++;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论