Merge branch 'master' of fs-git:freeswitch

This commit is contained in:
Raymond Chandler 2013-03-20 15:10:31 -04:00
commit cd0dc2c0af
2 changed files with 22 additions and 3 deletions

View File

@ -405,6 +405,7 @@ Description: mod_opal
Module: endpoints/mod_portaudio Module: endpoints/mod_portaudio
Description: mod_portaudio Description: mod_portaudio
Adds mod_portaudio. Adds mod_portaudio.
Build-Depends: libasound2-dev
Module: endpoints/mod_reference Module: endpoints/mod_reference
Description: mod_reference Description: mod_reference

View File

@ -271,6 +271,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi
if (bp->ready) { if (bp->ready) {
if (!switch_test_flag(bp, SMBF_TAP_NATIVE_READ) && !switch_test_flag(bp, SMBF_TAP_NATIVE_WRITE)) { if (!switch_test_flag(bp, SMBF_TAP_NATIVE_READ) && !switch_test_flag(bp, SMBF_TAP_NATIVE_WRITE)) {
printf("FUCKER\n\n\n");
tap_only = 0; tap_only = 0;
} }
@ -341,6 +342,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi
need_codec = 0; need_codec = 0;
do_resample = 0; do_resample = 0;
do_bugs = 0; do_bugs = 0;
goto done;
} }
@ -657,7 +659,7 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_read_frame(switch_core_sessi
} }
} }
if (do_bugs) { if (do_bugs || tap_only) {
goto done; goto done;
} }
@ -985,8 +987,24 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_sess
} }
if (session->bugs && !need_codec) { if (session->bugs && !need_codec) {
do_bugs = TRUE; switch_media_bug_t *bp;
need_codec = TRUE; int tap_only = 1;
switch_thread_rwlock_rdlock(session->bug_rwlock);
for (bp = session->bugs; bp; bp = bp->next) {
if (bp->ready) {
if (!switch_test_flag(bp, SMBF_TAP_NATIVE_READ) && !switch_test_flag(bp, SMBF_TAP_NATIVE_WRITE)) {
tap_only = 0;
break;
}
}
}
switch_thread_rwlock_unlock(session->bug_rwlock);
if (!tap_only) {
do_bugs = TRUE;
need_codec = TRUE;
}
} }
if (frame->codec->implementation->actual_samples_per_second != session->write_impl.actual_samples_per_second) { if (frame->codec->implementation->actual_samples_per_second != session->write_impl.actual_samples_per_second) {