Freeswitch-trunk
Threads by month
- ----- 2026 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
January 2009
- 18 participants
- 356 discussions
Author: anthm
Date: Sat Jan 10 10:04:34 2009
New Revision: 11113
Log:
tweak
Modified:
freeswitch/trunk/src/switch_ivr_play_say.c
Modified: freeswitch/trunk/src/switch_ivr_play_say.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr_play_say.c (original)
+++ freeswitch/trunk/src/switch_ivr_play_say.c Sat Jan 10 10:04:34 2009
@@ -431,6 +431,10 @@
return SWITCH_STATUS_GENERR;
}
+ if (switch_test_flag(fh, SWITCH_FILE_NATIVE)) {
+ asis = 1;
+ }
+
switch_channel_pre_answer(channel);
if ((p = switch_channel_get_variable(channel, "RECORD_TITLE"))) {
1
0
[commit] r11112 - in freeswitch/trunk/src/mod/languages/mod_managed: . managed
by FreeSWITCH SVN 10 Jan '09
by FreeSWITCH SVN 10 Jan '09
10 Jan '09
Author: brian
Date: Sat Jan 10 10:01:02 2009
New Revision: 11112
Log:
reswig
Modified:
freeswitch/trunk/src/mod/languages/mod_managed/freeswitch_wrap.cxx
freeswitch/trunk/src/mod/languages/mod_managed/managed/swig.cs
Modified: freeswitch/trunk/src/mod/languages/mod_managed/freeswitch_wrap.cxx
==============================================================================
--- freeswitch/trunk/src/mod/languages/mod_managed/freeswitch_wrap.cxx (original)
+++ freeswitch/trunk/src/mod/languages/mod_managed/freeswitch_wrap.cxx Sat Jan 10 10:01:02 2009
@@ -1510,6 +1510,17 @@
}
+SWIGEXPORT int SWIGSTDCALL CSharp_SWITCH_DEFAULT_FILE_BUFFER_LEN_get() {
+ int jresult ;
+ int result;
+
+ result = (int) 65536;
+
+ jresult = result;
+ return jresult;
+}
+
+
SWIGEXPORT void SWIGSTDCALL CSharp_switch_dtmf_t_digit_set(void * jarg1, char jarg2) {
switch_dtmf_t *arg1 = (switch_dtmf_t *) 0 ;
char arg2 ;
@@ -6143,13 +6154,15 @@
}
-SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_reset(void * jarg1, int jarg2) {
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_core_session_reset(void * jarg1, int jarg2, int jarg3) {
switch_core_session_t *arg1 = (switch_core_session_t *) 0 ;
switch_bool_t arg2 ;
+ switch_bool_t arg3 ;
arg1 = (switch_core_session_t *)jarg1;
arg2 = (switch_bool_t)jarg2;
- switch_core_session_reset(arg1,arg2);
+ arg3 = (switch_bool_t)jarg3;
+ switch_core_session_reset(arg1,arg2,arg3);
}
@@ -13093,6 +13106,81 @@
}
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_handle_pre_buffer_set(void * jarg1, void * jarg2) {
+ switch_file_handle *arg1 = (switch_file_handle *) 0 ;
+ switch_buffer_t *arg2 = (switch_buffer_t *) 0 ;
+
+ arg1 = (switch_file_handle *)jarg1;
+ arg2 = (switch_buffer_t *)jarg2;
+ if (arg1) (arg1)->pre_buffer = arg2;
+
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_handle_pre_buffer_get(void * jarg1) {
+ void * jresult ;
+ switch_file_handle *arg1 = (switch_file_handle *) 0 ;
+ switch_buffer_t *result = 0 ;
+
+ arg1 = (switch_file_handle *)jarg1;
+ result = (switch_buffer_t *) ((arg1)->pre_buffer);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_handle_pre_buffer_data_set(void * jarg1, void * jarg2) {
+ switch_file_handle *arg1 = (switch_file_handle *) 0 ;
+ unsigned char *arg2 = (unsigned char *) 0 ;
+
+ arg1 = (switch_file_handle *)jarg1;
+ arg2 = (unsigned char *)jarg2;
+ if (arg1) (arg1)->pre_buffer_data = arg2;
+
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_handle_pre_buffer_data_get(void * jarg1) {
+ void * jresult ;
+ switch_file_handle *arg1 = (switch_file_handle *) 0 ;
+ unsigned char *result = 0 ;
+
+ arg1 = (switch_file_handle *)jarg1;
+ result = (unsigned char *) ((arg1)->pre_buffer_data);
+ jresult = (void *)result;
+ return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_handle_pre_buffer_datalen_set(void * jarg1, void * jarg2) {
+ switch_file_handle *arg1 = (switch_file_handle *) 0 ;
+ switch_size_t arg2 ;
+ switch_size_t *argp2 ;
+
+ arg1 = (switch_file_handle *)jarg1;
+ argp2 = (switch_size_t *)jarg2;
+ if (!argp2) {
+ SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null switch_size_t", 0);
+ return ;
+ }
+ arg2 = *argp2;
+ if (arg1) (arg1)->pre_buffer_datalen = arg2;
+
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_switch_file_handle_pre_buffer_datalen_get(void * jarg1) {
+ void * jresult ;
+ switch_file_handle *arg1 = (switch_file_handle *) 0 ;
+ switch_size_t result;
+
+ arg1 = (switch_file_handle *)jarg1;
+ result = ((arg1)->pre_buffer_datalen);
+ jresult = new switch_size_t((switch_size_t &)result);
+ return jresult;
+}
+
+
SWIGEXPORT void SWIGSTDCALL CSharp_switch_file_handle_file_set(void * jarg1, char * jarg2) {
switch_file_handle *arg1 = (switch_file_handle *) 0 ;
char *arg2 = (char *) 0 ;
@@ -18377,6 +18465,26 @@
}
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_channel_event_set_basic_data(void * jarg1, void * jarg2) {
+ switch_channel_t *arg1 = (switch_channel_t *) 0 ;
+ switch_event_t *arg2 = (switch_event_t *) 0 ;
+
+ arg1 = (switch_channel_t *)jarg1;
+ arg2 = (switch_event_t *)jarg2;
+ switch_channel_event_set_basic_data(arg1,arg2);
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_switch_channel_event_set_extended_data(void * jarg1, void * jarg2) {
+ switch_channel_t *arg1 = (switch_channel_t *) 0 ;
+ switch_event_t *arg2 = (switch_event_t *) 0 ;
+
+ arg1 = (switch_channel_t *)jarg1;
+ arg2 = (switch_event_t *)jarg2;
+ switch_channel_event_set_extended_data(arg1,arg2);
+}
+
+
SWIGEXPORT char * SWIGSTDCALL CSharp_switch_channel_expand_variables(void * jarg1, char * jarg2) {
char * jresult ;
switch_channel_t *arg1 = (switch_channel_t *) 0 ;
Modified: freeswitch/trunk/src/mod/languages/mod_managed/managed/swig.cs
==============================================================================
--- freeswitch/trunk/src/mod/languages/mod_managed/managed/swig.cs (original)
+++ freeswitch/trunk/src/mod/languages/mod_managed/managed/swig.cs Sat Jan 10 10:01:02 2009
@@ -1344,8 +1344,8 @@
return ret;
}
- public static void switch_core_session_reset(SWIGTYPE_p_switch_core_session session, switch_bool_t flush_dtmf) {
- freeswitchPINVOKE.switch_core_session_reset(SWIGTYPE_p_switch_core_session.getCPtr(session), (int)flush_dtmf);
+ public static void switch_core_session_reset(SWIGTYPE_p_switch_core_session session, switch_bool_t flush_dtmf, switch_bool_t reset_read_codec) {
+ freeswitchPINVOKE.switch_core_session_reset(SWIGTYPE_p_switch_core_session.getCPtr(session), (int)flush_dtmf, (int)reset_read_codec);
}
public static switch_status_t switch_core_session_write_frame(SWIGTYPE_p_switch_core_session session, switch_frame frame, uint flags, int stream_id) {
@@ -2581,6 +2581,14 @@
freeswitchPINVOKE.switch_channel_event_set_data(SWIGTYPE_p_switch_channel.getCPtr(channel), switch_event.getCPtr(arg1));
}
+ public static void switch_channel_event_set_basic_data(SWIGTYPE_p_switch_channel channel, switch_event arg1) {
+ freeswitchPINVOKE.switch_channel_event_set_basic_data(SWIGTYPE_p_switch_channel.getCPtr(channel), switch_event.getCPtr(arg1));
+ }
+
+ public static void switch_channel_event_set_extended_data(SWIGTYPE_p_switch_channel channel, switch_event arg1) {
+ freeswitchPINVOKE.switch_channel_event_set_extended_data(SWIGTYPE_p_switch_channel.getCPtr(channel), switch_event.getCPtr(arg1));
+ }
+
public static string switch_channel_expand_variables(SWIGTYPE_p_switch_channel channel, string arg1) {
string ret = freeswitchPINVOKE.switch_channel_expand_variables(SWIGTYPE_p_switch_channel.getCPtr(channel), arg1);
return ret;
@@ -4109,6 +4117,7 @@
public static readonly string SWITCH_SPEECH_KEY = freeswitchPINVOKE.SWITCH_SPEECH_KEY_get();
public static readonly string SWITCH_UUID_BRIDGE = freeswitchPINVOKE.SWITCH_UUID_BRIDGE_get();
public static readonly int SWITCH_BITS_PER_BYTE = freeswitchPINVOKE.SWITCH_BITS_PER_BYTE_get();
+ public static readonly int SWITCH_DEFAULT_FILE_BUFFER_LEN = freeswitchPINVOKE.SWITCH_DEFAULT_FILE_BUFFER_LEN_get();
public static readonly int SWITCH_MAX_STACKS = freeswitchPINVOKE.SWITCH_MAX_STACKS_get();
public static readonly int SWITCH_THREAD_STACKSIZE = freeswitchPINVOKE.SWITCH_THREAD_STACKSIZE_get();
public static readonly int SWITCH_SYSTEM_THREAD_STACKSIZE = freeswitchPINVOKE.SWITCH_SYSTEM_THREAD_STACKSIZE_get();
@@ -4690,6 +4699,9 @@
[DllImport("mod_managed", EntryPoint="CSharp_SWITCH_BITS_PER_BYTE_get")]
public static extern int SWITCH_BITS_PER_BYTE_get();
+ [DllImport("mod_managed", EntryPoint="CSharp_SWITCH_DEFAULT_FILE_BUFFER_LEN_get")]
+ public static extern int SWITCH_DEFAULT_FILE_BUFFER_LEN_get();
+
[DllImport("mod_managed", EntryPoint="CSharp_switch_dtmf_t_digit_set")]
public static extern void switch_dtmf_t_digit_set(HandleRef jarg1, char jarg2);
@@ -5798,7 +5810,7 @@
public static extern int switch_core_session_write_video_frame(HandleRef jarg1, HandleRef jarg2, uint jarg3, int jarg4);
[DllImport("mod_managed", EntryPoint="CSharp_switch_core_session_reset")]
- public static extern void switch_core_session_reset(HandleRef jarg1, int jarg2);
+ public static extern void switch_core_session_reset(HandleRef jarg1, int jarg2, int jarg3);
[DllImport("mod_managed", EntryPoint="CSharp_switch_core_session_write_frame")]
public static extern int switch_core_session_write_frame(HandleRef jarg1, HandleRef jarg2, uint jarg3, int jarg4);
@@ -7438,6 +7450,24 @@
[DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_dbuflen_get")]
public static extern IntPtr switch_file_handle_dbuflen_get(HandleRef jarg1);
+ [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_pre_buffer_set")]
+ public static extern void switch_file_handle_pre_buffer_set(HandleRef jarg1, HandleRef jarg2);
+
+ [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_pre_buffer_get")]
+ public static extern IntPtr switch_file_handle_pre_buffer_get(HandleRef jarg1);
+
+ [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_pre_buffer_data_set")]
+ public static extern void switch_file_handle_pre_buffer_data_set(HandleRef jarg1, HandleRef jarg2);
+
+ [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_pre_buffer_data_get")]
+ public static extern IntPtr switch_file_handle_pre_buffer_data_get(HandleRef jarg1);
+
+ [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_pre_buffer_datalen_set")]
+ public static extern void switch_file_handle_pre_buffer_datalen_set(HandleRef jarg1, HandleRef jarg2);
+
+ [DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_pre_buffer_datalen_get")]
+ public static extern IntPtr switch_file_handle_pre_buffer_datalen_get(HandleRef jarg1);
+
[DllImport("mod_managed", EntryPoint="CSharp_switch_file_handle_file_set")]
public static extern void switch_file_handle_file_set(HandleRef jarg1, string jarg2);
@@ -8743,6 +8773,12 @@
[DllImport("mod_managed", EntryPoint="CSharp_switch_channel_event_set_data")]
public static extern void switch_channel_event_set_data(HandleRef jarg1, HandleRef jarg2);
+ [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_event_set_basic_data")]
+ public static extern void switch_channel_event_set_basic_data(HandleRef jarg1, HandleRef jarg2);
+
+ [DllImport("mod_managed", EntryPoint="CSharp_switch_channel_event_set_extended_data")]
+ public static extern void switch_channel_event_set_extended_data(HandleRef jarg1, HandleRef jarg2);
+
[DllImport("mod_managed", EntryPoint="CSharp_switch_channel_expand_variables")]
public static extern string switch_channel_expand_variables(HandleRef jarg1, string jarg2);
@@ -19956,7 +19992,9 @@
SWITCH_FILE_NATIVE = (1 << 9),
SWITCH_FILE_SEEK = (1 << 10),
SWITCH_FILE_OPEN = (1 << 11),
- SWITCH_FILE_CALLBACK = (1 << 12)
+ SWITCH_FILE_CALLBACK = (1 << 12),
+ SWITCH_FILE_DONE = (1 << 13),
+ SWITCH_FILE_BUFFER_DONE = (1 << 14)
}
}
@@ -20304,6 +20342,40 @@
}
}
+ public SWIGTYPE_p_switch_buffer pre_buffer {
+ set {
+ freeswitchPINVOKE.switch_file_handle_pre_buffer_set(swigCPtr, SWIGTYPE_p_switch_buffer.getCPtr(value));
+ }
+ get {
+ IntPtr cPtr = freeswitchPINVOKE.switch_file_handle_pre_buffer_get(swigCPtr);
+ SWIGTYPE_p_switch_buffer ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_switch_buffer(cPtr, false);
+ return ret;
+ }
+ }
+
+ public SWIGTYPE_p_unsigned_char pre_buffer_data {
+ set {
+ freeswitchPINVOKE.switch_file_handle_pre_buffer_data_set(swigCPtr, SWIGTYPE_p_unsigned_char.getCPtr(value));
+ }
+ get {
+ IntPtr cPtr = freeswitchPINVOKE.switch_file_handle_pre_buffer_data_get(swigCPtr);
+ SWIGTYPE_p_unsigned_char ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_unsigned_char(cPtr, false);
+ return ret;
+ }
+ }
+
+ public SWIGTYPE_p_switch_size_t pre_buffer_datalen {
+ set {
+ freeswitchPINVOKE.switch_file_handle_pre_buffer_datalen_set(swigCPtr, SWIGTYPE_p_switch_size_t.getCPtr(value));
+ if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve();
+ }
+ get {
+ SWIGTYPE_p_switch_size_t ret = new SWIGTYPE_p_switch_size_t(freeswitchPINVOKE.switch_file_handle_pre_buffer_datalen_get(swigCPtr), true);
+ if (freeswitchPINVOKE.SWIGPendingException.Pending) throw freeswitchPINVOKE.SWIGPendingException.Retrieve();
+ return ret;
+ }
+ }
+
public string file {
set {
freeswitchPINVOKE.switch_file_handle_file_set(swigCPtr, value);
1
0
10 Jan '09
Author: silik0n
Date: Sat Jan 10 01:38:59 2009
New Revision: 11070
Log:
add option to return a specific field for API usage
Modified:
freeswitch/trunk/src/mod/applications/mod_easyroute/mod_easyroute.c
Modified: freeswitch/trunk/src/mod/applications/mod_easyroute/mod_easyroute.c
==============================================================================
--- freeswitch/trunk/src/mod/applications/mod_easyroute/mod_easyroute.c (original)
+++ freeswitch/trunk/src/mod/applications/mod_easyroute/mod_easyroute.c Sat Jan 10 01:38:59 2009
@@ -319,14 +319,43 @@
if ((argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0]))))) {
destnum = argv[0];
+ if (argc < 1 || argc > 2){
+ stream->write_function(stream, "Invalid Input!\n");
+ return SWITCH_STATUS_SUCCESS;
+ }
if (!route_lookup(destnum, &results) == SWITCH_STATUS_SUCCESS) {
stream->write_function(stream, "No Match!\n");
return SWITCH_STATUS_SUCCESS;
}
-
- stream->write_function(stream, "Number \tLimit \tGroup \tAcctCode \tDialstring\n");
- stream->write_function(stream, "%-10s\t%-10s\t%-10s\t%-10s\t%s\n", destnum, results.limit, results.group, results.acctcode, results.dialstring);
+ if (argc != 2){
+ stream->write_function(stream, "Number \tLimit \tGroup \tAcctCode \tDialstring\n");
+ stream->write_function(stream, "%-10s\t%-10s\t%-10s\t%-10s\t%s\n", destnum, results.limit, results.group, results.acctcode, results.dialstring);
+ } else {
+
+ /* char limit[16];
+ char destnum[16];
+ char dialstring[256];
+ char group[16];
+ char acctcode[17];
+ char translated[17];
+ */
+
+ if (!strncasecmp(argv[1], "dialstring", 10)) {
+ stream->write_function(stream, "%s", results.dialstring);
+ } else if (!strncasecmp(argv[1], "translated", 10)) {
+ stream->write_function(stream, "%s", results.translated);
+ } else if (!strncasecmp(argv[1], "limit", 5)) {
+ stream->write_function(stream, "%s", results.limit);
+ } else if (!strncasecmp(argv[1], "group", 5)) {
+ stream->write_function(stream, "%s", results.group);
+ } else if (!strncasecmp(argv[1], "acctcode", 8)) {
+ stream->write_function(stream, "%s", results.acctcode);
+ } else {
+ stream->write_function(stream, "Invalid Input!\n");
+ return SWITCH_STATUS_SUCCESS;
+ }
+ }
} else {
stream->write_function(stream, "Invalid Input!\n");
}
1
0
[commit] r11108 - in freeswitch/trunk/src: . mod/formats/mod_local_stream
by FreeSWITCH SVN 10 Jan '09
by FreeSWITCH SVN 10 Jan '09
10 Jan '09
Author: anthm
Date: Fri Jan 9 21:52:28 2009
New Revision: 11108
Log:
fix double close of filehandles and add recording of native files
Modified:
freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c
freeswitch/trunk/src/switch_core_file.c
freeswitch/trunk/src/switch_ivr_play_say.c
Modified: freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c
==============================================================================
--- freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c (original)
+++ freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c Fri Jan 9 21:52:28 2009
@@ -251,7 +251,7 @@
done:
- if (fh.file_interface) {
+ if (switch_test_flag((&fh), SWITCH_FILE_OPEN)) {
switch_core_file_close(&fh);
}
Modified: freeswitch/trunk/src/switch_core_file.c
==============================================================================
--- freeswitch/trunk/src/switch_core_file.c (original)
+++ freeswitch/trunk/src/switch_core_file.c Fri Jan 9 21:52:28 2009
@@ -132,7 +132,7 @@
{
switch_status_t status = SWITCH_STATUS_FALSE;
switch_size_t want, got, orig_len = *len;
-
+
switch_assert(fh != NULL);
switch_assert(fh->file_interface != NULL);
@@ -155,19 +155,21 @@
if (fh->pre_buffer) {
switch_size_t rlen;
+ int asis = switch_test_flag(fh, SWITCH_FILE_NATIVE);
+
if (!switch_test_flag(fh, SWITCH_FILE_BUFFER_DONE)) {
if (!switch_buffer_inuse(fh->pre_buffer)) {
- rlen = fh->pre_buffer_datalen / 2;
+ rlen = asis ? fh->pre_buffer_datalen : fh->pre_buffer_datalen / 2;
if ((status = fh->file_interface->file_read(fh, fh->pre_buffer_data, &rlen)) != SWITCH_STATUS_SUCCESS || !rlen) {
switch_set_flag(fh, SWITCH_FILE_BUFFER_DONE);
} else {
- switch_buffer_write(fh->pre_buffer, fh->pre_buffer_data, rlen * 2);
+ switch_buffer_write(fh->pre_buffer, fh->pre_buffer_data, asis ? rlen : rlen * 2);
}
}
}
- rlen = switch_buffer_read(fh->pre_buffer, data, *len * 2);
- *len = rlen / 2;
+ rlen = switch_buffer_read(fh->pre_buffer, data, asis ? *len : *len * 2);
+ *len = asis ? rlen : rlen / 2;
if (*len == 0) {
switch_set_flag(fh, SWITCH_FILE_DONE);
@@ -277,13 +279,14 @@
if (fh->pre_buffer) {
switch_size_t rlen, blen;
switch_status_t status = SWITCH_STATUS_SUCCESS;
+ int asis = switch_test_flag(fh, SWITCH_FILE_NATIVE);
- switch_buffer_write(fh->pre_buffer, data, *len * 2);
+ switch_buffer_write(fh->pre_buffer, data, asis ? *len : *len * 2);
rlen = switch_buffer_inuse(fh->pre_buffer);
if (rlen >= fh->pre_buffer_datalen) {
blen = switch_buffer_read(fh->pre_buffer, fh->pre_buffer_data, fh->pre_buffer_datalen);
- blen /= 2;
+ if (!asis) blen /= 2;
if ((status = fh->file_interface->file_write(fh, fh->pre_buffer_data, &blen)) != SWITCH_STATUS_SUCCESS) {
*len = 0;
}
@@ -345,6 +348,10 @@
switch_assert(fh != NULL);
switch_assert(fh->file_interface != NULL);
+ if (!switch_test_flag(fh, SWITCH_FILE_OPEN)) {
+ return SWITCH_STATUS_FALSE;
+ }
+
switch_clear_flag(fh, SWITCH_FILE_OPEN);
status = fh->file_interface->file_close(fh);
@@ -355,9 +362,11 @@
if (fh->pre_buffer) {
if (switch_test_flag(fh, SWITCH_FILE_FLAG_WRITE)) {
switch_size_t rlen, blen;
+ int asis = switch_test_flag(fh, SWITCH_FILE_NATIVE);
+
while((rlen = switch_buffer_inuse(fh->pre_buffer))) {
blen = switch_buffer_read(fh->pre_buffer, fh->pre_buffer_data, fh->pre_buffer_datalen);
- blen /= 2;
+ if (asis) blen /= 2;
if (fh->file_interface->file_write(fh, fh->pre_buffer_data, &blen) != SWITCH_STATUS_SUCCESS) {
break;
}
Modified: freeswitch/trunk/src/switch_ivr_play_say.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr_play_say.c (original)
+++ freeswitch/trunk/src/switch_ivr_play_say.c Fri Jan 9 21:52:28 2009
@@ -384,6 +384,7 @@
const char *vval;
time_t start = 0;
uint32_t org_silence_hits = 0;
+ int asis = 0;
switch_assert(read_codec != NULL);
@@ -396,6 +397,30 @@
fh->channels = read_codec->implementation->number_of_channels;
fh->native_rate = read_codec->implementation->actual_samples_per_second;
+
+
+ if (!strstr(file, SWITCH_URL_SEPARATOR)) {
+ char *ext;
+ const char *prefix;
+
+ prefix = switch_channel_get_variable(channel, "sound_prefix");
+ if (!prefix) {
+ prefix = SWITCH_GLOBAL_dirs.base_dir;
+ }
+
+ if (!switch_is_file_path(file)) {
+ file = switch_core_session_sprintf(session, "%s%s%s", prefix, SWITCH_PATH_SEPARATOR, file);
+ }
+ if ((ext = strrchr(file, '.'))) {
+ ext++;
+ } else {
+ ext = read_codec->implementation->iananame;
+ file = switch_core_session_sprintf(session, "%s.%s", file, ext);
+ asis = 1;
+ }
+ }
+
+
if (switch_core_file_open(fh,
file,
fh->channels,
@@ -444,37 +469,43 @@
switch_channel_set_variable(channel, "RECORD_DATE", NULL);
}
- codec_name = "L16";
- if (switch_core_codec_init(&codec,
- codec_name,
- NULL,
- read_codec->implementation->actual_samples_per_second,
- read_codec->implementation->microseconds_per_packet / 1000,
- read_codec->implementation->number_of_channels,
- SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE, NULL,
- switch_core_session_get_pool(session)) == SWITCH_STATUS_SUCCESS) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Raw Codec Activated\n");
- switch_core_session_set_read_codec(session, &codec);
- } else {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
- "Raw Codec Activation Failed %s@%uhz %u channels %dms\n", codec_name, fh->samplerate,
- fh->channels, read_codec->implementation->microseconds_per_packet / 1000);
- switch_core_file_close(fh);
- switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
- return SWITCH_STATUS_GENERR;
+ if (!asis) {
+ codec_name = "L16";
+ if (switch_core_codec_init(&codec,
+ codec_name,
+ NULL,
+ read_codec->implementation->actual_samples_per_second,
+ read_codec->implementation->microseconds_per_packet / 1000,
+ read_codec->implementation->number_of_channels,
+ SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE, NULL,
+ switch_core_session_get_pool(session)) == SWITCH_STATUS_SUCCESS) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Raw Codec Activated\n");
+ switch_core_session_set_read_codec(session, &codec);
+ } else {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
+ "Raw Codec Activation Failed %s@%uhz %u channels %dms\n", codec_name, fh->samplerate,
+ fh->channels, read_codec->implementation->microseconds_per_packet / 1000);
+ switch_core_file_close(fh);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
+ return SWITCH_STATUS_GENERR;
+ }
}
if (limit) {
start = switch_timestamp(NULL);
}
-
+
if (fh->thresh) {
- if (fh->silence_hits) {
- fh->silence_hits = fh->samplerate * fh->silence_hits / read_codec->implementation->samples_per_packet;
+ if (asis) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Can't detect silence on a native recording.\n");
} else {
- fh->silence_hits = fh->samplerate * 3 / read_codec->implementation->samples_per_packet;
+ if (fh->silence_hits) {
+ fh->silence_hits = fh->samplerate * fh->silence_hits / read_codec->implementation->samples_per_packet;
+ } else {
+ fh->silence_hits = fh->samplerate * 3 / read_codec->implementation->samples_per_packet;
+ }
+ org_silence_hits = fh->silence_hits;
}
- org_silence_hits = fh->silence_hits;
}
for (;;) {
@@ -543,7 +574,7 @@
}
}
- if (fh->thresh) {
+ if (!asis && fh->thresh) {
int16_t *fdata = (int16_t *) read_frame->data;
uint32_t samples = read_frame->datalen / sizeof(*fdata);
uint32_t score, count = 0, j = 0;
@@ -571,8 +602,8 @@
if (!switch_test_flag(fh, SWITCH_FILE_PAUSE) && !switch_test_flag(read_frame, SFF_CNG)) {
int16_t *data = read_frame->data;
- len = (switch_size_t) read_frame->datalen / 2;
-
+ len = (switch_size_t) asis ? read_frame->datalen : read_frame->datalen / 2;
+
if (switch_core_file_write(fh, data, &len) != SWITCH_STATUS_SUCCESS) {
break;
}
1
0
10 Jan '09
Author: silik0n
Date: Fri Jan 9 22:02:34 2009
New Revision: 11069
Log:
fix a couple of SWITCH_LOG levels and properly disconnect from DB on shutdown
Modified:
freeswitch/trunk/src/mod/applications/mod_easyroute/mod_easyroute.c
Modified: freeswitch/trunk/src/mod/applications/mod_easyroute/mod_easyroute.c
==============================================================================
--- freeswitch/trunk/src/mod/applications/mod_easyroute/mod_easyroute.c (original)
+++ freeswitch/trunk/src/mod/applications/mod_easyroute/mod_easyroute.c Fri Jan 9 22:02:34 2009
@@ -257,7 +257,7 @@
switch_set_string(results->acctcode, pdata.acctcode);
}
} else {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "DB Error Setting Default Route!\n");
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "DB Error Setting Default Route!\n");
switch_set_string(results->limit, "9999");
switch_snprintf(results->dialstring, 256, "%s/%s@%s", globals.default_techprofile, dn, globals.default_gateway);
switch_set_string(results->group, "");
@@ -290,7 +290,7 @@
if ((argc = switch_separate_string(mydata, ' ', argv, (sizeof(argv) / sizeof(argv[0]))))) {
destnum = argv[0];
route_lookup(destnum, &results);
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "EASY ROUTE DEST: [%s]\n", results.dialstring);
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "EASY ROUTE DEST: [%s]\n", results.dialstring);
switch_channel_set_variable(channel, "easy_destnum", results.destnum);
switch_channel_set_variable(channel, "easy_dialstring", results.dialstring);
switch_channel_set_variable(channel, "easy_group", results.group);
@@ -354,7 +354,7 @@
SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_easyroute_shutdown)
{
- switch_odbc_handle_connect(globals.master_odbc);
+ switch_odbc_handle_disconnect(globals.master_odbc);
return SWITCH_STATUS_UNLOAD;
}
1
0
09 Jan '09
Author: anthm
Date: Fri Jan 9 17:21:38 2009
New Revision: 11106
Log:
MODENDP-167
Modified:
freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c Fri Jan 9 17:21:38 2009
@@ -2675,12 +2675,12 @@
if (call_id) {
sql = switch_mprintf("select sip_user,sip_host,contact,profile_name,'%q','%q','%q' "
- "from sip_registrations where call_id='%q'", ct, es, body, call_id
+ "from sip_registrations where call_id='%q'", ct, es, switch_str_nil(body), call_id
);
} else {
sql = switch_mprintf("select sip_user,sip_host,contact,profile_name,'%q','%q','%q' "
"from sip_registrations where sip_user='%s' and sip_host='%q'",
- ct, es, body, user, host
+ ct, es, switch_str_nil(body), switch_str_nil(user), switch_str_nil(host)
);
}
1
0
Author: anthm
Date: Fri Jan 9 16:09:49 2009
New Revision: 11105
Log:
make error more clear about missing trunk_type param in openzap.conf (and auto tolerate the err) and fix printf metas
Modified:
freeswitch/trunk/libs/libg722_1/src/dct4.h
Modified: freeswitch/trunk/libs/libg722_1/src/dct4.h
==============================================================================
--- freeswitch/trunk/libs/libg722_1/src/dct4.h (original)
+++ freeswitch/trunk/libs/libg722_1/src/dct4.h Fri Jan 9 16:09:49 2009
@@ -1,7 +1,7 @@
static const float max_dct_core_a[] =
{
- 5.572937315437795e-02,
- 5.435713103213160e-02,
+ 5.572937315437796e-02,
+ 5.435713103213161e-02,
5.164643594289910e-02,
4.766403419605858e-02,
4.250798573945089e-02,
@@ -10,95 +10,95 @@
2.139265421578210e-02,
1.304999256534943e-02,
4.385996787515619e-03,
- 5.435713103213160e-02,
+ 5.435713103213161e-02,
4.250798573945089e-02,
2.139265421578210e-02,
-4.385996787515612e-03,
-2.920855772127336e-02,
-4.766403419605858e-02,
-5.572937315437795e-02,
- -5.164643594289911e-02,
- -3.630524959802151e-02,
- -1.304999256534941e-02,
+ -5.164643594289910e-02,
+ -3.630524959802149e-02,
+ -1.304999256534943e-02,
5.164643594289910e-02,
2.139265421578210e-02,
-2.139265421578209e-02,
-5.164643594289910e-02,
- -5.164643594289911e-02,
- -2.139265421578213e-02,
- 2.139265421578211e-02,
- 5.164643594289909e-02,
+ -5.164643594289910e-02,
+ -2.139265421578210e-02,
+ 2.139265421578208e-02,
5.164643594289910e-02,
- 2.139265421578213e-02,
+ 5.164643594289911e-02,
+ 2.139265421578211e-02,
4.766403419605858e-02,
-4.385996787515612e-03,
-5.164643594289910e-02,
-4.250798573945090e-02,
- 1.304999256534939e-02,
- 5.435713103213161e-02,
- 3.630524959802152e-02,
- -2.139265421578210e-02,
+ 1.304999256534941e-02,
+ 5.435713103213160e-02,
+ 3.630524959802150e-02,
+ -2.139265421578208e-02,
-5.572937315437795e-02,
- -2.920855772127336e-02,
+ -2.920855772127339e-02,
4.250798573945089e-02,
-2.920855772127336e-02,
- -5.164643594289911e-02,
- 1.304999256534939e-02,
- 5.572937315437795e-02,
- 4.385996787515657e-03,
- -5.435713103213161e-02,
- -2.139265421578214e-02,
- 4.766403419605858e-02,
- 3.630524959802153e-02,
+ -5.164643594289910e-02,
+ 1.304999256534941e-02,
+ 5.572937315437796e-02,
+ 4.385996787515633e-03,
+ -5.435713103213160e-02,
+ -2.139265421578212e-02,
+ 4.766403419605857e-02,
+ 3.630524959802151e-02,
3.630524959802148e-02,
-4.766403419605858e-02,
- -2.139265421578213e-02,
- 5.435713103213161e-02,
- 4.385996787515657e-03,
- -5.572937315437795e-02,
- 1.304999256534937e-02,
- 5.164643594289910e-02,
- -2.920855772127332e-02,
- -4.250798573945090e-02,
+ -2.139265421578210e-02,
+ 5.435713103213160e-02,
+ 4.385996787515633e-03,
+ -5.572937315437796e-02,
+ 1.304999256534940e-02,
+ 5.164643594289911e-02,
+ -2.920855772127334e-02,
+ -4.250798573945092e-02,
2.920855772127337e-02,
-5.572937315437795e-02,
- 2.139265421578211e-02,
- 3.630524959802152e-02,
- -5.435713103213161e-02,
- 1.304999256534937e-02,
- 4.250798573945089e-02,
- -5.164643594289908e-02,
- 4.385996787515504e-03,
- 4.766403419605861e-02,
+ 2.139265421578208e-02,
+ 3.630524959802150e-02,
+ -5.435713103213160e-02,
+ 1.304999256534940e-02,
+ 4.250798573945092e-02,
+ -5.164643594289909e-02,
+ 4.385996787515578e-03,
+ 4.766403419605860e-02,
2.139265421578210e-02,
- -5.164643594289911e-02,
- 5.164643594289909e-02,
- -2.139265421578210e-02,
- -2.139265421578214e-02,
+ -5.164643594289910e-02,
5.164643594289910e-02,
- -5.164643594289908e-02,
- 2.139265421578208e-02,
- 2.139265421578216e-02,
- -5.164643594289915e-02,
+ -2.139265421578208e-02,
+ -2.139265421578212e-02,
+ 5.164643594289911e-02,
+ -5.164643594289909e-02,
+ 2.139265421578206e-02,
+ 2.139265421578214e-02,
+ -5.164643594289912e-02,
1.304999256534943e-02,
- -3.630524959802151e-02,
- 5.164643594289910e-02,
+ -3.630524959802149e-02,
+ 5.164643594289911e-02,
-5.572937315437795e-02,
- 4.766403419605858e-02,
- -2.920855772127332e-02,
- 4.385996787515504e-03,
- 2.139265421578216e-02,
- -4.250798573945092e-02,
- 5.435713103213160e-02,
+ 4.766403419605857e-02,
+ -2.920855772127334e-02,
+ 4.385996787515578e-03,
+ 2.139265421578214e-02,
+ -4.250798573945093e-02,
+ 5.435713103213162e-02,
4.385996787515619e-03,
- -1.304999256534941e-02,
- 2.139265421578213e-02,
- -2.920855772127336e-02,
- 3.630524959802153e-02,
- -4.250798573945090e-02,
- 4.766403419605861e-02,
- -5.164643594289915e-02,
- 5.435713103213160e-02,
+ -1.304999256534943e-02,
+ 2.139265421578211e-02,
+ -2.920855772127339e-02,
+ 3.630524959802151e-02,
+ -4.250798573945092e-02,
+ 4.766403419605860e-02,
+ -5.164643594289912e-02,
+ 5.435713103213162e-02,
-5.572937315437796e-02
};
@@ -106,10 +106,10 @@
{
7.881323533747238e-02,
7.687259191733195e-02,
- 7.303909015868119e-02,
- 6.740712359748102e-02,
+ 7.303909015868121e-02,
+ 6.740712359748104e-02,
6.011536994189358e-02,
- 5.134337636686234e-02,
+ 5.134337636686235e-02,
4.130713846678219e-02,
3.025378172711701e-02,
1.845547647478522e-02,
@@ -117,92 +117,92 @@
7.687259191733195e-02,
6.011536994189358e-02,
3.025378172711701e-02,
- -6.202736141429404e-03,
+ -6.202736141429405e-03,
-4.130713846678218e-02,
-6.740712359748102e-02,
-7.881323533747238e-02,
-7.303909015868121e-02,
- -5.134337636686238e-02,
- -1.845547647478519e-02,
- 7.303909015868119e-02,
+ -5.134337636686236e-02,
+ -1.845547647478523e-02,
+ 7.303909015868121e-02,
3.025378172711701e-02,
- -3.025378172711701e-02,
+ -3.025378172711700e-02,
-7.303909015868119e-02,
-7.303909015868121e-02,
- -3.025378172711705e-02,
- 3.025378172711703e-02,
- 7.303909015868118e-02,
+ -3.025378172711702e-02,
+ 3.025378172711700e-02,
7.303909015868119e-02,
- 3.025378172711706e-02,
- 6.740712359748102e-02,
- -6.202736141429404e-03,
+ 7.303909015868121e-02,
+ 3.025378172711703e-02,
+ 6.740712359748104e-02,
+ -6.202736141429405e-03,
-7.303909015868119e-02,
-6.011536994189359e-02,
- 1.845547647478516e-02,
- 7.687259191733196e-02,
- 5.134337636686239e-02,
- -3.025378172711702e-02,
+ 1.845547647478520e-02,
+ 7.687259191733195e-02,
+ 5.134337636686236e-02,
+ -3.025378172711699e-02,
-7.881323533747238e-02,
- -4.130713846678218e-02,
+ -4.130713846678221e-02,
6.011536994189358e-02,
-4.130713846678218e-02,
-7.303909015868121e-02,
- 1.845547647478516e-02,
+ 1.845547647478520e-02,
7.881323533747238e-02,
- 6.202736141429469e-03,
- -7.687259191733196e-02,
- -3.025378172711707e-02,
- 6.740712359748102e-02,
- 5.134337636686240e-02,
- 5.134337636686234e-02,
+ 6.202736141429434e-03,
+ -7.687259191733195e-02,
+ -3.025378172711704e-02,
+ 6.740712359748101e-02,
+ 5.134337636686238e-02,
+ 5.134337636686235e-02,
-6.740712359748102e-02,
- -3.025378172711705e-02,
- 7.687259191733196e-02,
- 6.202736141429469e-03,
- -7.881323533747238e-02,
- 1.845547647478515e-02,
- 7.303909015868119e-02,
- -4.130713846678212e-02,
- -6.011536994189359e-02,
+ -3.025378172711702e-02,
+ 7.687259191733195e-02,
+ 6.202736141429434e-03,
+ -7.881323533747239e-02,
+ 1.845547647478518e-02,
+ 7.303909015868122e-02,
+ -4.130713846678215e-02,
+ -6.011536994189361e-02,
4.130713846678219e-02,
-7.881323533747238e-02,
- 3.025378172711703e-02,
- 5.134337636686239e-02,
- -7.687259191733196e-02,
- 1.845547647478515e-02,
- 6.011536994189358e-02,
+ 3.025378172711700e-02,
+ 5.134337636686236e-02,
+ -7.687259191733195e-02,
+ 1.845547647478518e-02,
+ 6.011536994189360e-02,
-7.303909015868118e-02,
- 6.202736141429252e-03,
- 6.740712359748108e-02,
+ 6.202736141429356e-03,
+ 6.740712359748106e-02,
3.025378172711701e-02,
-7.303909015868121e-02,
- 7.303909015868118e-02,
- -3.025378172711702e-02,
- -3.025378172711707e-02,
7.303909015868119e-02,
+ -3.025378172711699e-02,
+ -3.025378172711704e-02,
+ 7.303909015868122e-02,
-7.303909015868118e-02,
- 3.025378172711699e-02,
- 3.025378172711710e-02,
- -7.303909015868128e-02,
+ 3.025378172711696e-02,
+ 3.025378172711706e-02,
+ -7.303909015868124e-02,
1.845547647478522e-02,
- -5.134337636686238e-02,
- 7.303909015868119e-02,
+ -5.134337636686236e-02,
+ 7.303909015868121e-02,
-7.881323533747238e-02,
- 6.740712359748102e-02,
- -4.130713846678212e-02,
- 6.202736141429252e-03,
- 3.025378172711710e-02,
- -6.011536994189360e-02,
- 7.687259191733195e-02,
- 6.202736141429415e-03,
- -1.845547647478519e-02,
+ 6.740712359748101e-02,
+ -4.130713846678215e-02,
+ 6.202736141429356e-03,
3.025378172711706e-02,
- -4.130713846678218e-02,
- 5.134337636686240e-02,
- -6.011536994189359e-02,
- 6.740712359748108e-02,
- -7.303909015868128e-02,
- 7.687259191733195e-02,
+ -6.011536994189362e-02,
+ 7.687259191733196e-02,
+ 6.202736141429415e-03,
+ -1.845547647478523e-02,
+ 3.025378172711703e-02,
+ -4.130713846678221e-02,
+ 5.134337636686238e-02,
+ -6.011536994189361e-02,
+ 6.740712359748106e-02,
+ -7.303909015868124e-02,
+ 7.687259191733196e-02,
-7.881323533747239e-02
};
@@ -280,21 +280,21 @@
{9.039892931234433e-01, -4.275550934302821e-01},
{8.954205553686970e-01, -4.452213258854682e-01},
{8.865066159447464e-01, -4.627159170443501e-01},
- {8.772509113449243e-01, -4.800321224090111e-01},
- {8.676570098195440e-01, -4.971632662526544e-01},
+ {8.772509113449243e-01, -4.800321224090112e-01},
+ {8.676570098195441e-01, -4.971632662526543e-01},
{8.577286100002721e-01, -5.141027441932217e-01},
- {8.474695394742344e-01, -5.308440257395095e-01},
- {8.368837533084094e-01, -5.473806568087964e-01},
+ {8.474695394742344e-01, -5.308440257395094e-01},
+ {8.368837533084094e-01, -5.473806568087966e-01},
{8.259753325248732e-01, -5.637062622150167e-01},
- {8.147484825274894e-01, -5.798145481265136e-01},
+ {8.147484825274894e-01, -5.798145481265137e-01},
{8.032075314806449e-01, -5.956993044924334e-01},
{7.913569286406602e-01, -6.113544074368165e-01},
- {7.792012426405167e-01, -6.267738216194696e-01},
- {7.667451597285615e-01, -6.419516025627030e-01},
- {7.539934819618694e-01, -6.568818989430414e-01},
+ {7.792012426405167e-01, -6.267738216194695e-01},
+ {7.667451597285615e-01, -6.419516025627031e-01},
+ {7.539934819618695e-01, -6.568818989430413e-01},
{7.409511253549591e-01, -6.715589548470183e-01},
- {7.276231179845748e-01, -6.859771119901928e-01},
- {7.140145980512683e-01, -7.001308118985236e-01}
+ {7.276231179845749e-01, -6.859771119901927e-01},
+ {7.140145980512682e-01, -7.001308118985236e-01}
};
static const cos_msin_t cos_msin_80[80] =
@@ -325,59 +325,59 @@
{9.735041230957107e-01, -2.286694608286194e-01},
{9.712122877993118e-01, -2.382156418617946e-01},
{9.688268450411880e-01, -2.477388631755984e-01},
- {9.663480247352773e-01, -2.572382069021397e-01},
+ {9.663480247352773e-01, -2.572382069021396e-01},
{9.637760657954398e-01, -2.667127574748984e-01},
{9.611112161124317e-01, -2.761616017169707e-01},
{9.583537325300114e-01, -2.855838289290823e-01},
{9.555038808201862e-01, -2.949785309773635e-01},
- {9.525619356575953e-01, -3.043448023808773e-01},
+ {9.525619356575953e-01, -3.043448023808774e-01},
{9.495281805930367e-01, -3.136817403988915e-01},
- {9.464029080261377e-01, -3.229884451178863e-01},
- {9.431864191771733e-01, -3.322640195382908e-01},
+ {9.464029080261377e-01, -3.229884451178864e-01},
+ {9.431864191771733e-01, -3.322640195382907e-01},
{9.398790240580331e-01, -3.415075696609363e-01},
{9.364810414423427e-01, -3.507182045732232e-01},
- {9.329927988347390e-01, -3.598950365349881e-01},
+ {9.329927988347388e-01, -3.598950365349881e-01},
{9.294146324393044e-01, -3.690371810640665e-01},
{9.257468871271640e-01, -3.781437570215405e-01},
- {9.219899164032445e-01, -3.872138866966656e-01},
+ {9.219899164032446e-01, -3.872138866966656e-01},
{9.181440823722039e-01, -3.962466958914656e-01},
{9.142097557035307e-01, -4.052413140049899e-01},
- {9.101873155958178e-01, -4.141968741172237e-01},
+ {9.101873155958177e-01, -4.141968741172238e-01},
{9.060771497402148e-01, -4.231125130726441e-01},
{9.018796542830616e-01, -4.319873715634118e-01},
{8.975952337877069e-01, -4.408205942121939e-01},
- {8.932243011955153e-01, -4.496113296546065e-01},
+ {8.932243011955153e-01, -4.496113296546066e-01},
{8.887672777860675e-01, -4.583587306212713e-01},
{8.842245931365562e-01, -4.670619540194765e-01},
- {8.795966850803829e-01, -4.757201610144369e-01},
+ {8.795966850803829e-01, -4.757201610144368e-01},
{8.748839996649583e-01, -4.843325171101412e-01},
{8.700869911087115e-01, -4.928981922297840e-01},
- {8.652061217573113e-01, -5.014163607957690e-01},
+ {8.652061217573112e-01, -5.014163607957690e-01},
{8.602418620391045e-01, -5.098862018092806e-01},
{8.551946904197751e-01, -5.183068989294132e-01},
- {8.500650933562288e-01, -5.266776405518521e-01},
+ {8.500650933562289e-01, -5.266776405518521e-01},
{8.448535652497071e-01, -5.349976198870972e-01},
{8.395606083981356e-01, -5.432660350382236e-01},
{8.341867329477124e-01, -5.514820890781694e-01},
{8.287324568437381e-01, -5.596449901265460e-01},
{8.231983057806959e-01, -5.677539514259605e-01},
- {8.175848131515837e-01, -5.758081914178453e-01},
+ {8.175848131515837e-01, -5.758081914178452e-01},
{8.118925199965048e-01, -5.838069338177863e-01},
{8.061219749505210e-01, -5.917494076903429e-01},
{8.002737341907743e-01, -5.996348475233523e-01},
- {7.943483613828813e-01, -6.074624933017110e-01},
- {7.883464276266063e-01, -6.152315905806268e-01},
+ {7.943483613828815e-01, -6.074624933017110e-01},
+ {7.883464276266062e-01, -6.152315905806268e-01},
{7.822685114008164e-01, -6.229413905583340e-01},
- {7.761151985077279e-01, -6.305911501482637e-01},
- {7.698870820164444e-01, -6.381801320506653e-01},
- {7.635847622057965e-01, -6.457076048236672e-01},
+ {7.761151985077279e-01, -6.305911501482638e-01},
+ {7.698870820164445e-01, -6.381801320506653e-01},
+ {7.635847622057965e-01, -6.457076048236673e-01},
{7.572088465064846e-01, -6.531728429537768e-01},
{7.507599494425343e-01, -6.605751269258050e-01},
{7.442386925720670e-01, -6.679137432922161e-01},
{7.376457044273930e-01, -6.751879847418903e-01},
{7.309816204544317e-01, -6.823971501682968e-01},
- {7.242470829514670e-01, -6.895405447370668e-01},
- {7.174427410072399e-01, -6.966174799529642e-01},
+ {7.242470829514669e-01, -6.895405447370669e-01},
+ {7.174427410072399e-01, -6.966174799529641e-01},
{7.105692504383896e-01, -7.036272737262429e-01}
};
@@ -425,7 +425,7 @@
{9.812611495231950e-01, -1.926825275846723e-01},
{9.803035031058607e-01, -1.974969412380297e-01},
{9.793222356232406e-01, -2.023065960711564e-01},
- {9.783173707196277e-01, -2.071113761922186e-01},
+ {9.783173707196277e-01, -2.071113761922185e-01},
{9.772889326079104e-01, -2.119111658268416e-01},
{9.762369460689896e-01, -2.167058493209000e-01},
{9.751614364511810e-01, -2.214953111433043e-01},
@@ -433,7 +433,7 @@
{9.729399522055602e-01, -2.310581082806711e-01},
{9.717940311058891e-01, -2.358312131736727e-01},
{9.706246939823230e-01, -2.405986355566504e-01},
- {9.694319690108180e-01, -2.453602605553894e-01},
+ {9.694319690108180e-01, -2.453602605553893e-01},
{9.682158849308760e-01, -2.501159734353663e-01},
{9.669764710448521e-01, -2.548656596045146e-01},
{9.657137572172489e-01, -2.596092046159851e-01},
@@ -445,8 +445,8 @@
{9.576499185369652e-01, -2.879351203416211e-01},
{9.562249883902162e-01, -2.926324855140505e-01},
{9.547770173660172e-01, -2.973227995119985e-01},
- {9.533060403541939e-01, -3.020059493192281e-01},
- {9.518120927989161e-01, -3.066818220921279e-01},
+ {9.533060403541939e-01, -3.020059493192280e-01},
+ {9.518120927989161e-01, -3.066818220921280e-01},
{9.502952106978444e-01, -3.113503051624320e-01},
{9.487554306012626e-01, -3.160112860399338e-01},
{9.471927896111967e-01, -3.206646524151973e-01},
@@ -456,7 +456,7 @@
{9.407143780171653e-01, -3.391997331835298e-01},
{9.390380083377340e-01, -3.438133489222048e-01},
{9.373390119125750e-01, -3.484186802494346e-01},
- {9.356174296801376e-01, -3.530156161966958e-01},
+ {9.356174296801375e-01, -3.530156161966959e-01},
{9.338733031230915e-01, -3.576040459977578e-01},
{9.321066742673269e-01, -3.621838590913509e-01},
{9.303175856809415e-01, -3.667549451238308e-01},
@@ -466,16 +466,16 @@
{9.229375043106232e-01, -3.849498189853822e-01},
{9.210367744973499e-01, -3.894756218603648e-01},
{9.191138516900578e-01, -3.939920400610481e-01},
- {9.171687822228516e-01, -3.984989647613298e-01},
- {9.152016129634744e-01, -4.029962873638600e-01},
+ {9.171687822228515e-01, -3.984989647613298e-01},
+ {9.152016129634745e-01, -4.029962873638600e-01},
{9.132123913121788e-01, -4.074838995026576e-01},
{9.112011652005843e-01, -4.119616930457218e-01},
{9.091679830905224e-01, -4.164295600976372e-01},
{9.071128939728691e-01, -4.208873930021739e-01},
{9.050359473663644e-01, -4.253350843448814e-01},
{9.029371933164189e-01, -4.297725269556770e-01},
- {9.008166823939081e-01, -4.341996139114278e-01},
- {8.986744656939538e-01, -4.386162385385277e-01},
+ {9.008166823939080e-01, -4.341996139114278e-01},
+ {8.986744656939538e-01, -4.386162385385276e-01},
{8.965105948346932e-01, -4.430222944154668e-01},
{8.943251219560346e-01, -4.474176753753967e-01},
{8.921180997184014e-01, -4.518022755086881e-01},
@@ -488,32 +488,32 @@
{8.760700941954066e-01, -4.821837720791227e-01},
{8.736926348985243e-01, -4.864783445581868e-01},
{8.712941233961736e-01, -4.907611950177941e-01},
- {8.688746174820854e-01, -4.950322202598127e-01},
- {8.664341754558650e-01, -4.992913173710469e-01},
- {8.639728561215868e-01, -5.035383837257176e-01},
+ {8.688746174820855e-01, -4.950322202598127e-01},
+ {8.664341754558649e-01, -4.992913173710469e-01},
+ {8.639728561215867e-01, -5.035383837257176e-01},
{8.614907187863783e-01, -5.077733169879345e-01},
{8.589878232589904e-01, -5.119960151141624e-01},
- {8.564642298483565e-01, -5.162063763556797e-01},
+ {8.564642298483565e-01, -5.162063763556798e-01},
{8.539199993621391e-01, -5.204042992610306e-01},
- {8.513551931052652e-01, -5.245896826784689e-01},
+ {8.513551931052652e-01, -5.245896826784688e-01},
{8.487698728784481e-01, -5.287624257583958e-01},
- {8.461641009766995e-01, -5.329224279557898e-01},
+ {8.461641009766994e-01, -5.329224279557899e-01},
{8.435379401878270e-01, -5.370695890326298e-01},
- {8.408914537909229e-01, -5.412038090603096e-01},
- {8.382247055548381e-01, -5.453249884220465e-01},
+ {8.408914537909230e-01, -5.412038090603096e-01},
+ {8.382247055548381e-01, -5.453249884220464e-01},
{8.355377597366458e-01, -5.494330278152808e-01},
{8.328306810800937e-01, -5.535278282540700e-01},
{8.301035348140438e-01, -5.576092910714722e-01},
- {8.273563866508998e-01, -5.616773179219247e-01},
- {8.245893027850253e-01, -5.657318107836131e-01},
+ {8.273563866508998e-01, -5.616773179219245e-01},
+ {8.245893027850253e-01, -5.657318107836132e-01},
{8.218023498911473e-01, -5.697726719608341e-01},
{8.189955951227504e-01, -5.737998040863485e-01},
- {8.161691061104588e-01, -5.778131101237274e-01},
- {8.133229509604062e-01, -5.818124933696910e-01},
+ {8.161691061104588e-01, -5.778131101237273e-01},
+ {8.133229509604062e-01, -5.818124933696911e-01},
{8.104571982525948e-01, -5.857978574564389e-01},
{8.075719170392435e-01, -5.897691063539708e-01},
{8.046671768431229e-01, -5.937261443724019e-01},
- {8.017430476558816e-01, -5.976688761642677e-01},
+ {8.017430476558816e-01, -5.976688761642678e-01},
{7.987995999363579e-01, -6.015972067268220e-01},
{7.958369046088836e-01, -6.055110414043255e-01},
{7.928550330615741e-01, -6.094102858903271e-01},
@@ -521,18 +521,18 @@
{7.868340491684999e-01, -6.171646288220856e-01},
{7.837950819023488e-01, -6.210195404217892e-01},
{7.807372285720945e-01, -6.248594881423863e-01},
- {7.776605628587479e-01, -6.286843794577813e-01},
+ {7.776605628587477e-01, -6.286843794577813e-01},
{7.745651588966166e-01, -6.324941222046724e-01},
{7.714510912715192e-01, -6.362886245847729e-01},
{7.683184350189877e-01, -6.400677951670226e-01},
- {7.651672656224590e-01, -6.438315428897914e-01},
+ {7.651672656224590e-01, -6.438315428897915e-01},
{7.619976590114568e-01, -6.475797770630733e-01},
{7.588096915597616e-01, -6.513124073706714e-01},
{7.556034400835709e-01, -6.550293438723744e-01},
- {7.523789818396478e-01, -6.587304970061237e-01},
+ {7.523789818396478e-01, -6.587304970061238e-01},
{7.491363945234594e-01, -6.624157775901718e-01},
- {7.458757562673048e-01, -6.660850968252301e-01},
- {7.425971456384329e-01, -6.697383662966099e-01},
+ {7.458757562673048e-01, -6.660850968252300e-01},
+ {7.425971456384330e-01, -6.697383662966099e-01},
{7.393006416371488e-01, -6.733754979763520e-01},
{7.359863236949099e-01, -6.769964042253483e-01},
{7.326542716724128e-01, -6.806009977954530e-01},
@@ -540,8 +540,8 @@
{7.259372869640676e-01, -6.877608998738217e-01},
{7.225525161284360e-01, -6.913160358594803e-01},
{7.191503349090794e-01, -6.948545141251936e-01},
- {7.157308252838186e-01, -6.983762494089729e-01},
- {7.122940696480137e-01, -7.018811568522627e-01},
+ {7.157308252838187e-01, -6.983762494089728e-01},
+ {7.122940696480137e-01, -7.018811568522628e-01},
{7.088401508125785e-01, -7.053691520019861e-01}
};
@@ -562,7 +562,7 @@
{9.995294175010931e-01, -3.067480317663663e-02},
{9.994511197373437e-01, -3.312792259967294e-02},
{9.993668013545645e-01, -3.558084246257342e-02},
- {9.992764628606833e-01, -3.803354798913168e-02},
+ {9.992764628606832e-01, -3.803354798913168e-02},
{9.991801047998923e-01, -4.048602440443251e-02},
{9.990777277526454e-01, -4.293825693494082e-02},
{9.989693323356542e-01, -4.539023080859068e-02},
@@ -572,27 +572,27 @@
{9.984755805732948e-01, -5.519524434968993e-02},
{9.983371038270131e-01, -5.764570341570704e-02},
{9.981926131724506e-01, -6.009581522830464e-02},
- {9.980421094800079e-01, -6.254556502819182e-02},
+ {9.980421094800079e-01, -6.254556502819184e-02},
{9.978855936563085e-01, -6.499493805825848e-02},
{9.977230666441916e-01, -6.744391956366405e-02},
{9.975545294227081e-01, -6.989249479192657e-02},
- {9.973799830071135e-01, -7.234064899301137e-02},
+ {9.973799830071135e-01, -7.234064899301139e-02},
{9.971994284488623e-01, -7.478836741942015e-02},
- {9.970128668356021e-01, -7.723563532627951e-02},
- {9.968202992911657e-01, -7.968243797143013e-02},
+ {9.970128668356021e-01, -7.723563532627953e-02},
+ {9.968202992911657e-01, -7.968243797143011e-02},
{9.966217269755658e-01, -8.212876061551522e-02},
- {9.964171510849874e-01, -8.457458852206962e-02},
- {9.962065728517802e-01, -8.701990695760831e-02},
+ {9.964171510849874e-01, -8.457458852206960e-02},
+ {9.962065728517802e-01, -8.701990695760832e-02},
{9.959899935444517e-01, -8.946470119171543e-02},
{9.957674144676598e-01, -9.190895649713272e-02},
{9.955388369622040e-01, -9.435265814984850e-02},
{9.953042624050182e-01, -9.679579142918618e-02},
- {9.950636922091622e-01, -9.923834161789306e-02},
+ {9.950636922091622e-01, -9.923834161789305e-02},
{9.948171278238128e-01, -1.016802940022289e-01},
{9.945645707342554e-01, -1.041216338720546e-01},
{9.943060224618753e-01, -1.065623465209208e-01},
{9.940414845641478e-01, -1.090024172461564e-01},
- {9.937709586346295e-01, -1.114418313489574e-01},
+ {9.937709586346295e-01, -1.114418313489575e-01},
{9.934944463029486e-01, -1.138805741344751e-01},
{9.932119492347945e-01, -1.163186309119048e-01},
{9.929234691319088e-01, -1.187559869945741e-01},
@@ -615,20 +615,20 @@
{9.871057265058446e-01, -1.600696245368518e-01},
{9.867098838086088e-01, -1.624918619328416e-01},
{9.863080972445987e-01, -1.649131204899699e-01},
- {9.859003692341464e-01, -1.673333856227558e-01},
+ {9.859003692341464e-01, -1.673333856227557e-01},
{9.854867022333751e-01, -1.697526427517024e-01},
{9.850670987341841e-01, -1.721708773033852e-01},
{9.846415612642334e-01, -1.745880747105397e-01},
{9.842100923869290e-01, -1.770042204121487e-01},
{9.837726947014075e-01, -1.794192998535309e-01},
- {9.833293708425197e-01, -1.818332984864276e-01},
+ {9.833293708425197e-01, -1.818332984864275e-01},
{9.828801234808157e-01, -1.842462017690910e-01},
{9.824249553225278e-01, -1.866579951663718e-01},
{9.819638691095552e-01, -1.890686641498062e-01},
{9.814968676194470e-01, -1.914781941977041e-01},
{9.810239536653852e-01, -1.938865707952361e-01},
- {9.805451300961683e-01, -1.962937794345212e-01},
- {9.800603997961936e-01, -1.986998056147138e-01},
+ {9.805451300961683e-01, -1.962937794345211e-01},
+ {9.800603997961936e-01, -1.986998056147139e-01},
{9.795697656854405e-01, -2.011046348420919e-01},
{9.790732307194523e-01, -2.035082526301433e-01},
{9.785707978893183e-01, -2.059106444996538e-01},
@@ -646,14 +646,14 @@
{9.720827077212779e-01, -2.346384651954331e-01},
{9.715038909862518e-01, -2.370236059943672e-01},
{9.709192219842182e-01, -2.394073189807704e-01},
- {9.703287042371799e-01, -2.417895897953334e-01},
- {9.697323413023714e-01, -2.441704040874346e-01},
+ {9.703287042371798e-01, -2.417895897953334e-01},
+ {9.697323413023714e-01, -2.441704040874345e-01},
{9.691301367722388e-01, -2.465497475152259e-01},
- {9.685220942744174e-01, -2.489276057457201e-01},
+ {9.685220942744173e-01, -2.489276057457201e-01},
{9.679082174717095e-01, -2.513039644548766e-01},
{9.672885100620635e-01, -2.536788093276874e-01},
{9.666629757785506e-01, -2.560521260582643e-01},
- {9.660316183893426e-01, -2.584239003499241e-01},
+ {9.660316183893426e-01, -2.584239003499242e-01},
{9.653944416976894e-01, -2.607941179152755e-01},
{9.647514495418958e-01, -2.631627644763044e-01},
{9.641026457952987e-01, -2.655298257644607e-01},
@@ -663,41 +663,41 @@
{9.614493935924158e-01, -2.749819331533909e-01},
{9.607715912163253e-01, -2.773408543861692e-01},
{9.600880012238011e-01, -2.796981049383182e-01},
- {9.593986277327383e-01, -2.820536706099365e-01},
- {9.587034748958716e-01, -2.844075372112719e-01},
+ {9.593986277327383e-01, -2.820536706099364e-01},
+ {9.587034748958716e-01, -2.844075372112718e-01},
{9.580025469007496e-01, -2.867596905628075e-01},
{9.572958479697103e-01, -2.891101164953470e-01},
- {9.565833823598556e-01, -2.914588008500998e-01},
+ {9.565833823598557e-01, -2.914588008500998e-01},
{9.558651543630251e-01, -2.938057294787664e-01},
- {9.551411683057708e-01, -2.961508882436238e-01},
+ {9.551411683057707e-01, -2.961508882436238e-01},
{9.544114285493304e-01, -2.984942630176104e-01},
{9.536759394896021e-01, -3.008358396844112e-01},
- {9.529347055571170e-01, -3.031756041385431e-01},
- {9.521877312170133e-01, -3.055135422854393e-01},
+ {9.529347055571171e-01, -3.031756041385431e-01},
+ {9.521877312170133e-01, -3.055135422854394e-01},
{9.514350209690083e-01, -3.078496400415349e-01},
{9.506765793473728e-01, -3.101838833343510e-01},
{9.499124109209025e-01, -3.125162581025802e-01},
- {9.491425202928909e-01, -3.148467502961706e-01},
+ {9.491425202928909e-01, -3.148467502961707e-01},
{9.483669121011018e-01, -3.171753458764112e-01},
{9.475855910177411e-01, -3.195020308160157e-01},
{9.467985617494289e-01, -3.218267910992075e-01},
{9.460058290371707e-01, -3.241496127218040e-01},
{9.452073976563291e-01, -3.264704816913009e-01},
- {9.444032724165956e-01, -3.287893840269567e-01},
+ {9.444032724165956e-01, -3.287893840269566e-01},
{9.435934581619604e-01, -3.311063057598764e-01},
- {9.427779597706842e-01, -3.334212329330963e-01},
+ {9.427779597706842e-01, -3.334212329330964e-01},
{9.419567821552687e-01, -3.357341516016679e-01},
{9.411299302624264e-01, -3.380450478327413e-01},
- {9.402974090730516e-01, -3.403539077056500e-01},
+ {9.402974090730517e-01, -3.403539077056500e-01},
{9.394592236021899e-01, -3.426607173119944e-01},
{9.386153788990080e-01, -3.449654627557252e-01},
{9.377658800467635e-01, -3.472681301532278e-01},
{9.369107321627741e-01, -3.495687056334055e-01},
- {9.360499403983871e-01, -3.518671753377630e-01},
+ {9.360499403983871e-01, -3.518671753377631e-01},
{9.351835099389476e-01, -3.541635254204903e-01},
{9.343114460037683e-01, -3.564577420485457e-01},
{9.334337538460973e-01, -3.587498114017393e-01},
- {9.325504387530866e-01, -3.610397196728160e-01},
+ {9.325504387530866e-01, -3.610397196728161e-01},
{9.316615060457607e-01, -3.633274530675394e-01},
{9.307669610789837e-01, -3.656129978047739e-01},
{9.298668092414279e-01, -3.678963401165684e-01},
@@ -705,15 +705,15 @@
{9.280497066775131e-01, -3.724563624584523e-01},
{9.271327668972442e-01, -3.747330150193071e-01},
{9.262102421383114e-01, -3.770074102164183e-01},
- {9.252821379579349e-01, -3.792795343489985e-01},
+ {9.252821379579349e-01, -3.792795343489986e-01},
{9.243484599469451e-01, -3.815493737299417e-01},
{9.234092137297489e-01, -3.838169146859046e-01},
{9.224644049642953e-01, -3.860821435573893e-01},
- {9.215140393420420e-01, -3.883450466988262e-01},
+ {9.215140393420419e-01, -3.883450466988263e-01},
{9.205581225879205e-01, -3.906056104786556e-01},
{9.195966604603021e-01, -3.928638212794095e-01},
{9.186296587509630e-01, -3.951196654977946e-01},
- {9.176571232850496e-01, -3.973731295447735e-01},
+ {9.176571232850496e-01, -3.973731295447736e-01},
{9.166790599210427e-01, -3.996241998456468e-01},
{9.156954745507232e-01, -4.018728628401348e-01},
{9.147063730991362e-01, -4.041191049824593e-01},
@@ -721,7 +721,7 @@
{9.127116458184452e-01, -4.086042726005015e-01},
{9.117060320054299e-01, -4.108431710579039e-01},
{9.106949261432513e-01, -4.130795946266749e-01},
- {9.096783343227359e-01, -4.153135298347656e-01},
+ {9.096783343227359e-01, -4.153135298347657e-01},
{9.086562626677570e-01, -4.175449632251170e-01},
{9.076287173351980e-01, -4.197738813557405e-01},
{9.065957045149153e-01, -4.220002707997997e-01},
@@ -731,12 +731,12 @@
{9.024091033056408e-01, -4.308802737084970e-01},
{9.013488470460220e-01, -4.330938188531520e-01},
{9.002831611281501e-01, -4.353047550729321e-01},
- {8.992120519716374e-01, -4.375130690493225e-01},
+ {8.992120519716374e-01, -4.375130690493224e-01},
{8.981355260287659e-01, -4.397187474796043e-01},
- {8.970535897844474e-01, -4.419217770769352e-01},
+ {8.970535897844474e-01, -4.419217770769353e-01},
{8.959662497561852e-01, -4.441221445704292e-01},
{8.948735124940346e-01, -4.463198367052365e-01},
- {8.937753845805634e-01, -4.485148402426236e-01},
+ {8.937753845805634e-01, -4.485148402426235e-01},
{8.926718726308122e-01, -4.507071419600526e-01},
{8.915629832922548e-01, -4.528967286512617e-01},
{8.904487232447579e-01, -4.550835871263438e-01},
@@ -748,55 +748,55 @@
{8.836507562159172e-01, -4.681467088841250e-01},
{8.824990909546231e-01, -4.703141019194129e-01},
{8.813421095846011e-01, -4.724786618176158e-01},
- {8.801798190754208e-01, -4.746403755395864e-01},
+ {8.801798190754208e-01, -4.746403755395863e-01},
{8.790122264286335e-01, -4.767992300633221e-01},
{8.778393386777302e-01, -4.789552123840445e-01},
{8.766611628880995e-01, -4.811083095142767e-01},
- {8.754777061569843e-01, -4.832585084839222e-01},
+ {8.754777061569843e-01, -4.832585084839221e-01},
{8.742889756134398e-01, -4.854057963403425e-01},
- {8.730949784182901e-01, -4.875501601484360e-01},
+ {8.730949784182901e-01, -4.875501601484359e-01},
{8.718957217640854e-01, -4.896915869907146e-01},
{8.706912128750582e-01, -4.918300639673830e-01},
{8.694814590070804e-01, -4.939655781964152e-01},
{8.682664674476190e-01, -4.960981168136327e-01},
- {8.670462455156926e-01, -4.982276669727819e-01},
+ {8.670462455156926e-01, -4.982276669727818e-01},
{8.658208005618273e-01, -5.003542158456112e-01},
- {8.645901399680118e-01, -5.024777506219491e-01},
- {8.633542711476541e-01, -5.045982585097801e-01},
- {8.621132015455357e-01, -5.067157267353229e-01},
+ {8.645901399680119e-01, -5.024777506219491e-01},
+ {8.633542711476542e-01, -5.045982585097801e-01},
+ {8.621132015455357e-01, -5.067157267353231e-01},
{8.608669386377673e-01, -5.088301425431070e-01},
- {8.596154899317437e-01, -5.109414931960489e-01},
+ {8.596154899317437e-01, -5.109414931960490e-01},
{8.583588629660989e-01, -5.130497659755299e-01},
{8.570970653106597e-01, -5.151549481814718e-01},
{8.558301045664012e-01, -5.172570271324139e-01},
- {8.545579883654005e-01, -5.193559901655896e-01},
- {8.532807243707908e-01, -5.214518246370019e-01},
+ {8.545579883654005e-01, -5.193559901655895e-01},
+ {8.532807243707908e-01, -5.214518246370018e-01},
{8.519983202767152e-01, -5.235445179215000e-01},
- {8.507107838082801e-01, -5.256340574128560e-01},
+ {8.507107838082801e-01, -5.256340574128561e-01},
{8.494181227215095e-01, -5.277204305238395e-01},
{8.481203448032972e-01, -5.298036246862946e-01},
{8.468174578713608e-01, -5.318836273512150e-01},
{8.455094697741939e-01, -5.339604259888194e-01},
{8.441963883910193e-01, -5.360340080886280e-01},
- {8.428782216317413e-01, -5.381043611595366e-01},
+ {8.428782216317414e-01, -5.381043611595366e-01},
{8.415549774368984e-01, -5.401714727298929e-01},
{8.402266637776148e-01, -5.422353303475707e-01},
{8.388932886555529e-01, -5.442959215800456e-01},
{8.375548601028652e-01, -5.463532340144698e-01},
{8.362113861821453e-01, -5.484072552577465e-01},
- {8.348628749863800e-01, -5.504579729366048e-01},
+ {8.348628749863801e-01, -5.504579729366048e-01},
{8.335093346389004e-01, -5.525053746976744e-01},
{8.321507732933324e-01, -5.545494482075597e-01},
{8.307871991335484e-01, -5.565901811529141e-01},
- {8.294186203736174e-01, -5.586275612405148e-01},
+ {8.294186203736174e-01, -5.586275612405149e-01},
{8.280450452577558e-01, -5.606615761973360e-01},
{8.266664820602777e-01, -5.626922137706231e-01},
- {8.252829390855451e-01, -5.647194617279668e-01},
- {8.238944246679176e-01, -5.667433078573766e-01},
+ {8.252829390855451e-01, -5.647194617279667e-01},
+ {8.238944246679176e-01, -5.667433078573765e-01},
{8.225009471717026e-01, -5.687637399673542e-01},
{8.211025149911046e-01, -5.707807458869673e-01},
{8.196991365501750e-01, -5.727943134659226e-01},
- {8.182908203027607e-01, -5.748044305746390e-01},
+ {8.182908203027607e-01, -5.748044305746391e-01},
{8.168775747324537e-01, -5.768110851043212e-01},
{8.154594083525400e-01, -5.788142649670318e-01},
{8.140363297059484e-01, -5.808139580957645e-01},
@@ -805,11 +805,11 @@
{8.097377060389469e-01, -5.867919967235272e-01},
{8.082950643459751e-01, -5.887776226674516e-01},
{8.068475535437993e-01, -5.907597018588742e-01},
- {8.053951823521167e-01, -5.927382223578977e-01},
- {8.039379595199031e-01, -5.947131722460625e-01},
+ {8.053951823521167e-01, -5.927382223578979e-01},
+ {8.039379595199030e-01, -5.947131722460625e-01},
{8.024758938253601e-01, -5.966845396264172e-01},
{8.010089940758625e-01, -5.986523126235920e-01},
- {7.995372691079050e-01, -6.006164793838690e-01},
+ {7.995372691079050e-01, -6.006164793838689e-01},
{7.980607277870492e-01, -6.025770280752539e-01},
{7.965793790078698e-01, -6.045339468875478e-01},
{7.950932316939014e-01, -6.064872240324176e-01},
@@ -818,17 +818,17 @@
{7.906060882118751e-01, -6.123250879086344e-01},
{7.891008365714072e-01, -6.142636809402826e-01},
{7.875908314463325e-01, -6.161985736933142e-01},
- {7.860760819328091e-01, -6.181297545120795e-01},
- {7.845565971555752e-01, -6.200572117632891e-01},
- {7.830323862678940e-01, -6.219809338360844e-01},
+ {7.860760819328091e-01, -6.181297545120794e-01},
+ {7.845565971555752e-01, -6.200572117632892e-01},
+ {7.830323862678940e-01, -6.219809338360845e-01},
{7.815034584514979e-01, -6.239009091421072e-01},
{7.799698229165344e-01, -6.258171261155689e-01},
{7.784314889015095e-01, -6.277295732133219e-01},
{7.768884656732324e-01, -6.296382389149270e-01},
- {7.753407625267603e-01, -6.315431117227246e-01},
- {7.737883887853415e-01, -6.334441801619028e-01},
- {7.722313538003597e-01, -6.353414327805670e-01},
- {7.706696669512773e-01, -6.372348581498091e-01},
+ {7.753407625267604e-01, -6.315431117227246e-01},
+ {7.737883887853415e-01, -6.334441801619027e-01},
+ {7.722313538003596e-01, -6.353414327805671e-01},
+ {7.706696669512773e-01, -6.372348581498092e-01},
{7.691033376455797e-01, -6.391244448637757e-01},
{7.675323753187178e-01, -6.410101815397373e-01},
{7.659567894340514e-01, -6.428920568181569e-01},
@@ -836,21 +836,21 @@
{7.627917849839481e-01, -6.466441778605931e-01},
{7.612023854842618e-01, -6.485144010221124e-01},
{7.596084005581580e-01, -6.503807175812309e-01},
- {7.580098398076831e-01, -6.522431162953969e-01},
+ {7.580098398076830e-01, -6.522431162953969e-01},
{7.564067128624476e-01, -6.541015859456593e-01},
{7.547990293795690e-01, -6.559561153367355e-01},
{7.531867990436125e-01, -6.578066932970786e-01},
- {7.515700315665336e-01, -6.596533086789452e-01},
+ {7.515700315665336e-01, -6.596533086789451e-01},
{7.499487366876190e-01, -6.614959503584616e-01},
{7.483229241734281e-01, -6.633346072356920e-01},
- {7.466926038177344e-01, -6.651692682347043e-01},
- {7.450577854414661e-01, -6.669999223036375e-01},
+ {7.466926038177343e-01, -6.651692682347043e-01},
+ {7.450577854414659e-01, -6.669999223036375e-01},
{7.434184788926470e-01, -6.688265584147679e-01},
{7.417746940463380e-01, -6.706491655645758e-01},
{7.401264408045760e-01, -6.724677327738116e-01},
{7.384737290963160e-01, -6.742822490875620e-01},
{7.368165688773699e-01, -6.760927035753159e-01},
- {7.351549701303474e-01, -6.778990853310308e-01},
+ {7.351549701303474e-01, -6.778990853310307e-01},
{7.334889428645953e-01, -6.797013834731973e-01},
{7.318184971161379e-01, -6.814995871449060e-01},
{7.301436429476156e-01, -6.832936855139119e-01},
@@ -858,15 +858,15 @@
{7.267807497336585e-01, -6.868695231385515e-01},
{7.250927309460417e-01, -6.886512408536060e-01},
{7.234003442538740e-01, -6.904288101849290e-01},
- {7.217035998519666e-01, -6.922022204245754e-01},
+ {7.217035998519667e-01, -6.922022204245752e-01},
{7.200025079613817e-01, -6.939714608896540e-01},
{7.182970788293696e-01, -6.957365209223924e-01},
- {7.165873227293083e-01, -6.974973898902004e-01},
+ {7.165873227293083e-01, -6.974973898902005e-01},
{7.148732499606411e-01, -6.992540571857347e-01},
{7.131548708488146e-01, -7.010065122269625e-01},
{7.114321957452164e-01, -7.027547444572253e-01},
- {7.097052350271130e-01, -7.044987433453024e-01},
- {7.079739990975870e-01, -7.062384983854745e-01}
+ {7.097052350271131e-01, -7.044987433453024e-01},
+ {7.079739990975871e-01, -7.062384983854745e-01}
};
static const cos_msin_t cos_msin_640[640] =
@@ -897,53 +897,53 @@
{9.995841895075704e-01, -2.883484153751236e-02},
{9.995480511642375e-01, -3.006149387130874e-02},
{9.995104075196035e-01, -3.128810093303862e-02},
- {9.994712586303591e-01, -3.251466087545394e-02},
- {9.994306045554617e-01, -3.374117185137758e-02},
+ {9.994712586303591e-01, -3.251466087545393e-02},
+ {9.994306045554617e-01, -3.374117185137759e-02},
{9.993884453561358e-01, -3.496763201370620e-02},
{9.993447810958722e-01, -3.619403951541294e-02},
- {9.992996118404286e-01, -3.742039250955028e-02},
- {9.992529376578290e-01, -3.864668914925275e-02},
+ {9.992996118404286e-01, -3.742039250955027e-02},
+ {9.992529376578290e-01, -3.864668914925276e-02},
{9.992047586183639e-01, -3.987292758773981e-02},
{9.991550747945901e-01, -4.109910597831850e-02},
- {9.991038862613305e-01, -4.232522247438635e-02},
- {9.990511930956741e-01, -4.355127522943403e-02},
+ {9.991038862613305e-01, -4.232522247438634e-02},
+ {9.990511930956741e-01, -4.355127522943404e-02},
{9.989969953769761e-01, -4.477726239704831e-02},
- {9.989412931868569e-01, -4.600318213091462e-02},
- {9.988840866092031e-01, -4.722903258482004e-02},
- {9.988253757301669e-01, -4.845481191265589e-02},
+ {9.989412931868569e-01, -4.600318213091463e-02},
+ {9.988840866092031e-01, -4.722903258482003e-02},
+ {9.988253757301669e-01, -4.845481191265590e-02},
{9.987651606381658e-01, -4.968051826842070e-02},
{9.987034414238826e-01, -5.090614980622282e-02},
{9.986402181802653e-01, -5.213170468028332e-02},
{9.985754910025268e-01, -5.335718104493870e-02},
{9.985092599881454e-01, -5.458257705464371e-02},
{9.984415252368637e-01, -5.580789086397409e-02},
- {9.983722868506889e-01, -5.703312062762941e-02},
- {9.983015449338929e-01, -5.825826450043575e-02},
- {9.982292995930115e-01, -5.948332063734863e-02},
+ {9.983722868506889e-01, -5.703312062762940e-02},
+ {9.983015449338929e-01, -5.825826450043576e-02},
+ {9.982292995930115e-01, -5.948332063734862e-02},
{9.981555509368452e-01, -6.070828719345561e-02},
{9.980802990764579e-01, -6.193316232397920e-02},
{9.980035441251777e-01, -6.315794418427960e-02},
{9.979252861985960e-01, -6.438263092985747e-02},
{9.978455254145679e-01, -6.560722071635666e-02},
{9.977642618932119e-01, -6.683171169956714e-02},
- {9.976814957569091e-01, -6.805610203542757e-02},
+ {9.976814957569091e-01, -6.805610203542758e-02},
{9.975972271303040e-01, -6.928038988002828e-02},
{9.975114561403035e-01, -7.050457338961386e-02},
- {9.974241829160772e-01, -7.172865072058610e-02},
+ {9.974241829160772e-01, -7.172865072058608e-02},
{9.973354075890570e-01, -7.295262002950662e-02},
- {9.972451302929369e-01, -7.417647947309980e-02},
- {9.971533511636731e-01, -7.540022720825540e-02},
+ {9.972451302929369e-01, -7.417647947309979e-02},
+ {9.971533511636731e-01, -7.540022720825541e-02},
{9.970600703394830e-01, -7.662386139203149e-02},
{9.969652879608459e-01, -7.784738018165707e-02},
{9.968690041705026e-01, -7.907078173453497e-02},
- {9.967712191134545e-01, -8.029406420824454e-02},
+ {9.967712191134545e-01, -8.029406420824456e-02},
{9.966719329369642e-01, -8.151722576054453e-02},
{9.965711457905548e-01, -8.274026454937569e-02},
{9.964688578260101e-01, -8.396317873286374e-02},
{9.963650691973739e-01, -8.518596646932200e-02},
{9.962597800609497e-01, -8.640862591725426e-02},
- {9.961529905753015e-01, -8.763115523535747e-02},
- {9.960447009012520e-01, -8.885355258252460e-02},
+ {9.961529905753015e-01, -8.763115523535749e-02},
+ {9.960447009012520e-01, -8.885355258252459e-02},
{9.959349112018836e-01, -9.007581611784729e-02},
{9.958236216425376e-01, -9.129794400061877e-02},
{9.957108323908140e-01, -9.251993439033654e-02},
@@ -977,7 +977,7 @@
{9.919446097115779e-01, -1.266723776683190e-01},
{9.917884124303086e-01, -1.278895811587802e-01},
{9.916307215336136e-01, -1.291065920498434e-01},
- {9.914715372589731e-01, -1.303234085087122e-01},
+ {9.914715372589731e-01, -1.303234085087123e-01},
{9.913108598461154e-01, -1.315400287028831e-01},
{9.911486895370180e-01, -1.327564508001479e-01},
{9.909850265759061e-01, -1.339726729685971e-01},
@@ -986,9 +986,9 @@
{9.904850842564571e-01, -1.376201215864860e-01},
{9.903154531744962e-01, -1.388355257266385e-01},
{9.901443306953601e-01, -1.400507207829983e-01},
- {9.899717170767560e-01, -1.412657049255036e-01},
+ {9.899717170767559e-01, -1.412657049255036e-01},
{9.897976125786367e-01, -1.424804763244102e-01},
- {9.896220174632009e-01, -1.436950331502945e-01},
+ {9.896220174632009e-01, -1.436950331502944e-01},
{9.894449319948911e-01, -1.449093735740556e-01},
{9.892663564403953e-01, -1.461234957669190e-01},
{9.890862910686448e-01, -1.473373979004386e-01},
@@ -999,7 +999,7 @@
{9.881636265207087e-01, -1.534035437056180e-01},
{9.879746280186079e-01, -1.546160871044581e-01},
{9.877841416445722e-01, -1.558283976542652e-01},
- {9.875921676854704e-01, -1.570404735293217e-01},
+ {9.875921676854704e-01, -1.570404735293216e-01},
{9.873987064304122e-01, -1.582523129042630e-01},
{9.872037581707463e-01, -1.594639139540810e-01},
{9.870073232000616e-01, -1.606752748541265e-01},
@@ -1044,12 +1044,12 @@
{9.781901046127370e-01, -2.077116251867540e-01},
{9.779344675944409e-01, -2.089118883423760e-01},
{9.776773578245099e-01, -2.101118368804696e-01},
- {9.774187756901469e-01, -2.113114689939341e-01},
+ {9.774187756901469e-01, -2.113114689939340e-01},
{9.771587215807717e-01, -2.125107828761450e-01},
{9.768971958880210e-01, -2.137097767209575e-01},
{9.766341990057480e-01, -2.149084487227085e-01},
{9.763697313300211e-01, -2.161067970762195e-01},
- {9.761037932591240e-01, -2.173048199767996e-01},
+ {9.761037932591240e-01, -2.173048199767997e-01},
{9.758363851935545e-01, -2.185025156202481e-01},
{9.755675075360243e-01, -2.196998822028567e-01},
{9.752971606914583e-01, -2.208969179214133e-01},
@@ -1077,7 +1077,7 @@
{9.689786733147769e-01, -2.471443518697825e-01},
{9.686746520086348e-01, -2.483332812088429e-01},
{9.683691718959728e-01, -2.495218365624697e-01},
- {9.680622334368384e-01, -2.507100161407201e-01},
+ {9.680622334368384e-01, -2.507100161407200e-01},
{9.677538370934755e-01, -2.518978181542170e-01},
{9.674439833303232e-01, -2.530852408141520e-01},
{9.671326726140158e-01, -2.542722823322882e-01},
@@ -1095,17 +1095,17 @@
{9.632834745199362e-01, -2.684864013628985e-01},
{9.629532668736839e-01, -2.696683255729151e-01},
{9.626216090372143e-01, -2.708498436673069e-01},
- {9.622885015099981e-01, -2.720309538667289e-01},
+ {9.622885015099981e-01, -2.720309538667290e-01},
{9.619539447936892e-01, -2.732116543924507e-01},
{9.616179393921240e-01, -2.743919434663584e-01},
{9.612804858113206e-01, -2.755718193109581e-01},
{9.609415845594780e-01, -2.767512801493782e-01},
- {9.606012361469752e-01, -2.779303242053718e-01},
+ {9.606012361469752e-01, -2.779303242053717e-01},
{9.602594410863711e-01, -2.791089497033199e-01},
{9.599161998924024e-01, -2.802871548682339e-01},
- {9.595715130819845e-01, -2.814649379257579e-01},
+ {9.595715130819845e-01, -2.814649379257580e-01},
{9.592253811742094e-01, -2.826422971021723e-01},
- {9.588778046903456e-01, -2.838192306243950e-01},
+ {9.588778046903456e-01, -2.838192306243951e-01},
{9.585287841538368e-01, -2.849957367199857e-01},
{9.581783200903017e-01, -2.861718136171474e-01},
{9.578264130275329e-01, -2.873474595447295e-01},
@@ -1116,12 +1116,12 @@
{9.560452513499964e-01, -2.932191626942586e-01},
{9.556846974971080e-01, -2.943921856467341e-01},
{9.553227044003364e-01, -2.955647652498983e-01},
- {9.549592726048367e-01, -2.967368997378675e-01},
- {9.545944026579306e-01, -2.979085873454284e-01},
+ {9.549592726048367e-01, -2.967368997378674e-01},
+ {9.545944026579306e-01, -2.979085873454283e-01},
{9.542280951091057e-01, -2.990798263080405e-01},
{9.538603505100144e-01, -3.002506148618392e-01},
- {9.534911694144735e-01, -3.014209512436381e-01},
- {9.531205523784633e-01, -3.025908336909318e-01},
+ {9.534911694144735e-01, -3.014209512436382e-01},
+ {9.531205523784632e-01, -3.025908336909318e-01},
{9.527484999601259e-01, -3.037602604418984e-01},
{9.523750127197659e-01, -3.049292297354024e-01},
{9.520000912198481e-01, -3.060977398109971e-01},
@@ -1135,7 +1135,7 @@
{9.489491540846281e-01, -3.154290775468691e-01},
{9.485613499157303e-01, -3.165933755561658e-01},
{9.481721172305820e-01, -3.177571967815606e-01},
- {9.477814566153607e-01, -3.189205394703594e-01},
+ {9.477814566153607e-01, -3.189205394703595e-01},
{9.473893686583942e-01, -3.200834018705895e-01},
{9.469958539501598e-01, -3.212457822310009e-01},
{9.466009130832835e-01, -3.224076788010699e-01},
@@ -1152,23 +1152,23 @@
{9.421626087164466e-01, -3.351561109939961e-01},
{9.417506009515846e-01, -3.363120658069366e-01},
{9.413371749273369e-01, -3.374675141399838e-01},
- {9.409223312663159e-01, -3.386224542530535e-01},
+ {9.409223312663159e-01, -3.386224542530536e-01},
{9.405060705932683e-01, -3.397768844068269e-01},
{9.400883935350755e-01, -3.409308028627527e-01},
{9.396693007207513e-01, -3.420842078830508e-01},
- {9.392487927814420e-01, -3.432370977307140e-01},
- {9.388268703504251e-01, -3.443894706695110e-01},
- {9.384035340631081e-01, -3.455413249639891e-01},
+ {9.392487927814421e-01, -3.432370977307140e-01},
+ {9.388268703504252e-01, -3.443894706695110e-01},
+ {9.384035340631082e-01, -3.455413249639890e-01},
{9.379787845570278e-01, -3.466926588794764e-01},
- {9.375526224718491e-01, -3.478434706820849e-01},
+ {9.375526224718490e-01, -3.478434706820849e-01},
{9.371250484493645e-01, -3.489937586387129e-01},
{9.366960631334929e-01, -3.501435210170474e-01},
{9.362656671702783e-01, -3.512927560855671e-01},
{9.358338612078891e-01, -3.524414621135448e-01},
- {9.354006458966176e-01, -3.535896373710499e-01},
+ {9.354006458966176e-01, -3.535896373710498e-01},
{9.349660218888781e-01, -3.547372801289512e-01},
- {9.345299898392064e-01, -3.558843886589194e-01},
- {9.340925504042590e-01, -3.570309612334300e-01},
+ {9.345299898392063e-01, -3.558843886589195e-01},
+ {9.340925504042589e-01, -3.570309612334300e-01},
{9.336537042428116e-01, -3.581769961257653e-01},
{9.332134520157588e-01, -3.593224916100174e-01},
{9.327717943861125e-01, -3.604674459610909e-01},
@@ -1183,19 +1183,19 @@
{9.287337430464239e-01, -3.707473998924054e-01},
{9.282780683216301e-01, -3.718868482120106e-01},
{9.278209956268415e-01, -3.730257364767432e-01},
- {9.273625256504011e-01, -3.741640629714579e-01},
+ {9.273625256504011e-01, -3.741640629714580e-01},
{9.269026590827565e-01, -3.753018259818559e-01},
{9.264413966164585e-01, -3.764390237944864e-01},
{9.259787389461599e-01, -3.775756546967501e-01},
{9.255146867686148e-01, -3.787117169769015e-01},
{9.250492407826776e-01, -3.798472089240512e-01},
- {9.245824016893013e-01, -3.809821288281689e-01},
- {9.241141701915373e-01, -3.821164749800858e-01},
+ {9.245824016893013e-01, -3.809821288281688e-01},
+ {9.241141701915373e-01, -3.821164749800857e-01},
{9.236445469945337e-01, -3.832502456714969e-01},
{9.231735328055345e-01, -3.843834391949643e-01},
{9.227011283338786e-01, -3.855160538439188e-01},
{9.222273342909986e-01, -3.866480879126634e-01},
- {9.217521513904198e-01, -3.877795396963752e-01},
+ {9.217521513904198e-01, -3.877795396963751e-01},
{9.212755803477590e-01, -3.889104074911081e-01},
{9.207976218807237e-01, -3.900406895937958e-01},
{9.203182767091106e-01, -3.911703843022539e-01},
@@ -1204,10 +1204,10 @@
{9.188719281960914e-01, -3.945559270536903e-01},
{9.183870434458861e-01, -3.956832551811160e-01},
{9.179007756213905e-01, -3.968099874167103e-01},
- {9.174131254549152e-01, -3.979361220636348e-01},
+ {9.174131254549152e-01, -3.979361220636347e-01},
{9.169240936808526e-01, -3.990616574259509e-01},
- {9.164336810356757e-01, -4.001865918086229e-01},
- {9.159418882579371e-01, -4.013109235175197e-01},
+ {9.164336810356758e-01, -4.001865918086229e-01},
+ {9.159418882579371e-01, -4.013109235175198e-01},
{9.154487160882678e-01, -4.024346508594184e-01},
{9.149541652693762e-01, -4.035577721420057e-01},
{9.144582365460469e-01, -4.046802856738814e-01},
@@ -1218,19 +1218,19 @@
{9.119579505754890e-01, -4.102836779377824e-01},
{9.114537701821365e-01, -4.114025094974132e-01},
{9.109482171558779e-01, -4.125207214922996e-01},
- {9.104412922580672e-01, -4.136383122384345e-01},
+ {9.104412922580672e-01, -4.136383122384346e-01},
{9.099329962521239e-01, -4.147552800527466e-01},
{9.094233299035327e-01, -4.158716232531024e-01},
- {9.089122939798419e-01, -4.169873401583093e-01},
+ {9.089122939798419e-01, -4.169873401583092e-01},
{9.083998892506623e-01, -4.181024290881177e-01},
- {9.078861164876663e-01, -4.192168883632239e-01},
- {9.073709764645862e-01, -4.203307163052724e-01},
+ {9.078861164876663e-01, -4.192168883632240e-01},
+ {9.073709764645862e-01, -4.203307163052725e-01},
{9.068544699572136e-01, -4.214439112368585e-01},
{9.063365977433983e-01, -4.225564714815306e-01},
{9.058173606030460e-01, -4.236683953637931e-01},
{9.052967593181188e-01, -4.247796812091088e-01},
{9.047747946726327e-01, -4.258903273439013e-01},
- {9.042514674526569e-01, -4.270003320955576e-01},
+ {9.042514674526569e-01, -4.270003320955575e-01},
{9.037267784463131e-01, -4.281096937924305e-01},
{9.032007284437731e-01, -4.292184107638414e-01},
{9.026733182372588e-01, -4.303264813400826e-01},
@@ -1247,30 +1247,30 @@
{8.967822611268210e-01, -4.424721190405857e-01},
{8.962385910103452e-01, -4.435723029944398e-01},
{8.956935711747483e-01, -4.446718189364220e-01},
- {8.951472024408204e-01, -4.457706652106809e-01},
+ {8.951472024408204e-01, -4.457706652106810e-01},
{8.945994856313827e-01, -4.468688401623742e-01},
- {8.940504215712870e-01, -4.479663421376699e-01},
+ {8.940504215712870e-01, -4.479663421376700e-01},
{8.935000110874138e-01, -4.490631694837502e-01},
{8.929482550086714e-01, -4.501593205488127e-01},
- {8.923951541659944e-01, -4.512547936820739e-01},
- {8.918407093923427e-01, -4.523495872337709e-01},
- {8.912849215227001e-01, -4.534436995551644e-01},
- {8.907277913940732e-01, -4.545371289985410e-01},
+ {8.923951541659945e-01, -4.512547936820739e-01},
+ {8.918407093923427e-01, -4.523495872337708e-01},
+ {8.912849215227002e-01, -4.534436995551644e-01},
+ {8.907277913940732e-01, -4.545371289985411e-01},
{8.901693198454897e-01, -4.556298739172159e-01},
{8.896095077179980e-01, -4.567219326655349e-01},
{8.890483558546646e-01, -4.578133035988772e-01},
{8.884858651005743e-01, -4.589039850736579e-01},
{8.879220363028281e-01, -4.599939754473306e-01},
- {8.873568703105417e-01, -4.610832730783892e-01},
- {8.867903679748451e-01, -4.621718763263714e-01},
- {8.862225301488806e-01, -4.632597835518601e-01},
+ {8.873568703105418e-01, -4.610832730783892e-01},
+ {8.867903679748452e-01, -4.621718763263714e-01},
+ {8.862225301488806e-01, -4.632597835518602e-01},
{8.856533576878016e-01, -4.643469931164871e-01},
{8.850828514487716e-01, -4.654335033829341e-01},
{8.845110122909626e-01, -4.665193127149364e-01},
{8.839378410755541e-01, -4.676044194772847e-01},
{8.833633386657316e-01, -4.686888220358279e-01},
- {8.827875059266853e-01, -4.697725187574754e-01},
- {8.822103437256089e-01, -4.708555080101994e-01},
+ {8.827875059266853e-01, -4.697725187574753e-01},
+ {8.822103437256089e-01, -4.708555080101993e-01},
{8.816318529316984e-01, -4.719377881630376e-01},
{8.810520344161502e-01, -4.730193575860958e-01},
{8.804708890521608e-01, -4.741002146505500e-01},
@@ -1288,71 +1288,71 @@
{8.733939710728648e-01, -4.870143440326701e-01},
{8.727956570473698e-01, -4.880857927037520e-01},
{8.721960286073888e-01, -4.891565063264507e-01},
- {8.715950866559510e-01, -4.902264832882912e-01},
+ {8.715950866559511e-01, -4.902264832882912e-01},
{8.709928320980644e-01, -4.912957219779071e-01},
- {8.703892658407133e-01, -4.923642207850446e-01},
+ {8.703892658407133e-01, -4.923642207850445e-01},
{8.697843887928577e-01, -4.934319781005636e-01},
- {8.691782018654314e-01, -4.944989923164409e-01},
+ {8.691782018654314e-01, -4.944989923164410e-01},
{8.685707059713409e-01, -4.955652618257725e-01},
{8.679619020254642e-01, -4.966307850227757e-01},
- {8.673517909446490e-01, -4.976955603027919e-01},
- {8.667403736477115e-01, -4.987595860622885e-01},
- {8.661276510554351e-01, -4.998228606988624e-01},
+ {8.673517909446490e-01, -4.976955603027918e-01},
+ {8.667403736477115e-01, -4.987595860622886e-01},
+ {8.661276510554352e-01, -4.998228606988623e-01},
{8.655136240905691e-01, -5.008853826112407e-01},
- {8.648982936778269e-01, -5.019471501992850e-01},
- {8.642816607438848e-01, -5.030081618639924e-01},
- {8.636637262173812e-01, -5.040684160074983e-01},
- {8.630444910289141e-01, -5.051279110330795e-01},
- {8.624239561110406e-01, -5.061866453451552e-01},
+ {8.648982936778268e-01, -5.019471501992850e-01},
+ {8.642816607438848e-01, -5.030081618639923e-01},
+ {8.636637262173812e-01, -5.040684160074984e-01},
+ {8.630444910289141e-01, -5.051279110330794e-01},
+ {8.624239561110405e-01, -5.061866453451552e-01},
{8.618021223982749e-01, -5.072446173492910e-01},
{8.611789908270876e-01, -5.083018254522002e-01},
- {8.605545623359034e-01, -5.093582680617462e-01},
+ {8.605545623359034e-01, -5.093582680617461e-01},
{8.599288378651004e-01, -5.104139435869457e-01},
- {8.593018183570085e-01, -5.114688504379703e-01},
+ {8.593018183570084e-01, -5.114688504379704e-01},
{8.586735047559073e-01, -5.125229870261497e-01},
{8.580438980080262e-01, -5.135763517639729e-01},
- {8.574129990615412e-01, -5.146289430650919e-01},
+ {8.574129990615412e-01, -5.146289430650918e-01},
{8.567808088665750e-01, -5.156807593443229e-01},
{8.561473283751945e-01, -5.167317990176499e-01},
{8.555125585414098e-01, -5.177820605022260e-01},
- {8.548765003211730e-01, -5.188315422163763e-01},
+ {8.548765003211730e-01, -5.188315422163764e-01},
{8.542391546723761e-01, -5.198802425796005e-01},
{8.536005225548502e-01, -5.209281600125748e-01},
- {8.529606049303636e-01, -5.219752929371544e-01},
- {8.523194027626210e-01, -5.230216397763758e-01},
+ {8.529606049303636e-01, -5.219752929371543e-01},
+ {8.523194027626210e-01, -5.230216397763759e-01},
{8.516769170172609e-01, -5.240671989544601e-01},
{8.510331486618554e-01, -5.251119688968137e-01},
- {8.503880986659081e-01, -5.261559480300321e-01},
+ {8.503880986659081e-01, -5.261559480300320e-01},
{8.497417680008525e-01, -5.271991347819013e-01},
{8.490941576400509e-01, -5.282415275814013e-01},
{8.484452685587929e-01, -5.292831248587072e-01},
{8.477951017342936e-01, -5.303239250451923e-01},
{8.471436581456926e-01, -5.313639265734305e-01},
{8.464909387740521e-01, -5.324031278771979e-01},
- {8.458369446023557e-01, -5.334415273914767e-01},
+ {8.458369446023557e-01, -5.334415273914765e-01},
{8.451816766155068e-01, -5.344791235524554e-01},
{8.445251358003272e-01, -5.355159147975332e-01},
{8.438673231455553e-01, -5.365518995653215e-01},
- {8.432082396418454e-01, -5.375870762956454e-01},
+ {8.432082396418454e-01, -5.375870762956455e-01},
{8.425478862817651e-01, -5.386214434295480e-01},
{8.418862640597948e-01, -5.396549994092906e-01},
{8.412233739723254e-01, -5.406877426783570e-01},
{8.405592170176576e-01, -5.417196716814542e-01},
{8.398937941959995e-01, -5.427507848645159e-01},
{8.392271065094661e-01, -5.437810806747042e-01},
- {8.385591549620770e-01, -5.448105575604123e-01},
+ {8.385591549620769e-01, -5.448105575604124e-01},
{8.378899405597550e-01, -5.458392139712668e-01},
- {8.372194643103249e-01, -5.468670483581293e-01},
+ {8.372194643103249e-01, -5.468670483581294e-01},
{8.365477272235120e-01, -5.478940591731002e-01},
- {8.358747303109401e-01, -5.489202448695194e-01},
- {8.352004745861303e-01, -5.499456039019702e-01},
+ {8.358747303109401e-01, -5.489202448695195e-01},
+ {8.352004745861303e-01, -5.499456039019701e-01},
{8.345249610644997e-01, -5.509701347262801e-01},
- {8.338481907633595e-01, -5.519938357995242e-01},
+ {8.338481907633594e-01, -5.519938357995243e-01},
{8.331701647019132e-01, -5.530167055800275e-01},
{8.324908839012561e-01, -5.540387425273663e-01},
- {8.318103493843727e-01, -5.550599451023716e-01},
+ {8.318103493843728e-01, -5.550599451023716e-01},
{8.311285621761358e-01, -5.560803117671306e-01},
- {8.304455233033046e-01, -5.570998409849897e-01},
+ {8.304455233033046e-01, -5.570998409849895e-01},
{8.297612337945230e-01, -5.581185312205561e-01},
{8.290756946803191e-01, -5.591363809397010e-01},
{8.283889069931020e-01, -5.601533886095610e-01},
@@ -1361,46 +1361,46 @@
{8.263210628456635e-01, -5.631993440138341e-01},
{8.256292912280727e-01, -5.642129681833185e-01},
{8.249362762276903e-01, -5.652257426582692e-01},
- {8.242420188881840e-01, -5.662376659134664e-01},
+ {8.242420188881842e-01, -5.662376659134664e-01},
{8.235465202550933e-01, -5.672487364249718e-01},
- {8.228497813758264e-01, -5.682589526701315e-01},
+ {8.228497813758263e-01, -5.682589526701315e-01},
{8.221518032996592e-01, -5.692683131275782e-01},
- {8.214525870777344e-01, -5.702768162772331e-01},
+ {8.214525870777344e-01, -5.702768162772333e-01},
{8.207521337630588e-01, -5.712844606003090e-01},
- {8.200504444105025e-01, -5.722912445793115e-01},
- {8.193475200767969e-01, -5.732971666980422e-01},
+ {8.200504444105025e-01, -5.722912445793116e-01},
+ {8.193475200767970e-01, -5.732971666980422e-01},
{8.186433618205335e-01, -5.743022254416005e-01},
- {8.179379707021619e-01, -5.753064192963863e-01},
+ {8.179379707021619e-01, -5.753064192963862e-01},
{8.172313477839882e-01, -5.763097467501014e-01},
{8.165234941301740e-01, -5.773122062917532e-01},
{8.158144108067338e-01, -5.783137964116556e-01},
{8.151040988815345e-01, -5.793145156014319e-01},
{8.143925594242929e-01, -5.803143623540171e-01},
{8.136797935065747e-01, -5.813133351636602e-01},
- {8.129658022017924e-01, -5.823114325259262e-01},
+ {8.129658022017924e-01, -5.823114325259261e-01},
{8.122505865852039e-01, -5.833086529376983e-01},
{8.115341477339112e-01, -5.843049948971807e-01},
- {8.108164867268581e-01, -5.853004569039005e-01},
- {8.100976046448293e-01, -5.862950374587097e-01},
- {8.093775025704479e-01, -5.872887350637883e-01},
- {8.086561815881750e-01, -5.882815482226452e-01},
+ {8.108164867268581e-01, -5.853004569039004e-01},
+ {8.100976046448293e-01, -5.862950374587098e-01},
+ {8.093775025704479e-01, -5.872887350637882e-01},
+ {8.086561815881750e-01, -5.882815482226453e-01},
{8.079336427843067e-01, -5.892734754401222e-01},
{8.072098872469734e-01, -5.902645152223945e-01},
- {8.064849160661379e-01, -5.912546660769743e-01},
- {8.057587303335938e-01, -5.922439265127122e-01},
+ {8.064849160661380e-01, -5.912546660769743e-01},
+ {8.057587303335939e-01, -5.922439265127122e-01},
{8.050313311429637e-01, -5.932322950397998e-01},
{8.043027195896973e-01, -5.942197701697721e-01},
{8.035728967710708e-01, -5.952063504155093e-01},
{8.028418637861839e-01, -5.961920342912395e-01},
- {8.021096217359593e-01, -5.971768203125404e-01},
+ {8.021096217359593e-01, -5.971768203125405e-01},
{8.013761717231402e-01, -5.981607069963423e-01},
{8.006415148522891e-01, -5.991436928609294e-01},
- {7.999056522297859e-01, -6.001257764259429e-01},
+ {7.999056522297858e-01, -6.001257764259429e-01},
{7.991685849638264e-01, -6.011069562123827e-01},
- {7.984303141644207e-01, -6.020872307426096e-01},
+ {7.984303141644207e-01, -6.020872307426097e-01},
{7.976908409433912e-01, -6.030665985403482e-01},
{7.969501664143711e-01, -6.040450581306880e-01},
- {7.962082916928030e-01, -6.050226080400867e-01},
+ {7.962082916928030e-01, -6.050226080400866e-01},
{7.954652178959369e-01, -6.059992467963715e-01},
{7.947209461428283e-01, -6.069749729287426e-01},
{7.939754775543372e-01, -6.079497849677736e-01},
@@ -1411,56 +1411,56 @@
{7.902302214373100e-01, -6.128100824294097e-01},
{7.894775954753960e-01, -6.137793791277018e-01},
{7.887237805744907e-01, -6.147477514853411e-01},
- {7.879687778698258e-01, -6.157151980439765e-01},
+ {7.879687778698258e-01, -6.157151980439766e-01},
{7.872125884984216e-01, -6.166817173466510e-01},
{7.864552135990858e-01, -6.176473079378039e-01},
{7.856966543124112e-01, -6.186119683632733e-01},
{7.849369117807745e-01, -6.195756971702979e-01},
- {7.841759871483340e-01, -6.205384929075197e-01},
+ {7.841759871483340e-01, -6.205384929075196e-01},
{7.834138815610288e-01, -6.215003541249855e-01},
{7.826505961665757e-01, -6.224612793741500e-01},
{7.818861321144691e-01, -6.234212672078768e-01},
- {7.811204905559779e-01, -6.243803161804418e-01},
+ {7.811204905559779e-01, -6.243803161804419e-01},
{7.803536726441443e-01, -6.253384248475345e-01},
{7.795856795337824e-01, -6.262955917662607e-01},
{7.788165123814760e-01, -6.272518154951441e-01},
{7.780461723455767e-01, -6.282070945941292e-01},
{7.772746605862029e-01, -6.291614276245828e-01},
{7.765019782652373e-01, -6.301148131492967e-01},
- {7.757281265463254e-01, -6.310672497324895e-01},
- {7.749531065948739e-01, -6.320187359398091e-01},
+ {7.757281265463253e-01, -6.310672497324895e-01},
+ {7.749531065948739e-01, -6.320187359398090e-01},
{7.741769195780490e-01, -6.329692703383341e-01},
{7.733995666647743e-01, -6.339188514965771e-01},
{7.726210490257291e-01, -6.348674779844861e-01},
- {7.718413678333470e-01, -6.358151483734467e-01},
+ {7.718413678333470e-01, -6.358151483734465e-01},
{7.710605242618138e-01, -6.367618612362842e-01},
{7.702785194870657e-01, -6.377076151472665e-01},
{7.694953546867879e-01, -6.386524086821050e-01},
- {7.687110310404124e-01, -6.395962404179578e-01},
+ {7.687110310404124e-01, -6.395962404179579e-01},
{7.679255497291163e-01, -6.405391089334316e-01},
{7.671389119358204e-01, -6.414810128085832e-01},
{7.663511188451869e-01, -6.424219506249224e-01},
{7.655621716436182e-01, -6.433619209654138e-01},
{7.647720715192542e-01, -6.443009224144792e-01},
{7.639808196619715e-01, -6.452389535579994e-01},
- {7.631884172633813e-01, -6.461760129833163e-01},
+ {7.631884172633813e-01, -6.461760129833164e-01},
{7.623948655168271e-01, -6.471120992792355e-01},
- {7.616001656173835e-01, -6.480472110360278e-01},
- {7.608043187618542e-01, -6.489813468454321e-01},
- {7.600073261487703e-01, -6.499145053006563e-01},
+ {7.616001656173835e-01, -6.480472110360279e-01},
+ {7.608043187618542e-01, -6.489813468454320e-01},
+ {7.600073261487702e-01, -6.499145053006563e-01},
{7.592091889783881e-01, -6.508466849963809e-01},
{7.584099084526877e-01, -6.517778845287601e-01},
{7.576094857753715e-01, -6.527081024954242e-01},
{7.568079221518612e-01, -6.536373374954818e-01},
- {7.560052187892974e-01, -6.545655881295217e-01},
+ {7.560052187892973e-01, -6.545655881295217e-01},
{7.552013768965365e-01, -6.554928529996153e-01},
- {7.543963976841503e-01, -6.564191307093185e-01},
+ {7.543963976841502e-01, -6.564191307093186e-01},
{7.535902823644226e-01, -6.573444198636738e-01},
{7.527830321513488e-01, -6.582687190692122e-01},
- {7.519746482606328e-01, -6.591920269339562e-01},
+ {7.519746482606329e-01, -6.591920269339561e-01},
{7.511651319096865e-01, -6.601143420674205e-01},
- {7.503544843176265e-01, -6.610356630806152e-01},
- {7.495427067052737e-01, -6.619559885860479e-01},
+ {7.503544843176265e-01, -6.610356630806153e-01},
+ {7.495427067052738e-01, -6.619559885860479e-01},
{7.487298002951505e-01, -6.628753171977246e-01},
{7.479157663114792e-01, -6.637936475311532e-01},
{7.471006059801801e-01, -6.647109782033448e-01},
@@ -1482,32 +1482,32 @@
{7.339058643062745e-01, -6.792511923705841e-01},
{7.330717452676171e-01, -6.801513186712865e-01},
{7.322365222361595e-01, -6.810504206763948e-01},
- {7.314001964697324e-01, -6.819484970318775e-01},
+ {7.314001964697325e-01, -6.819484970318775e-01},
{7.305627692278276e-01, -6.828455463852481e-01},
{7.297242417715950e-01, -6.837415673855661e-01},
- {7.288846153638420e-01, -6.846365586834405e-01},
+ {7.288846153638421e-01, -6.846365586834405e-01},
{7.280438912690308e-01, -6.855305189310302e-01},
{7.272020707532766e-01, -6.864234467820476e-01},
{7.263591550843460e-01, -6.873153408917591e-01},
{7.255151455316546e-01, -6.882061999169885e-01},
{7.246700433662657e-01, -6.890960225161182e-01},
{7.238238498608879e-01, -6.899848073490914e-01},
- {7.229765662898732e-01, -6.908725530774144e-01},
+ {7.229765662898732e-01, -6.908725530774142e-01},
{7.221281939292153e-01, -6.917592583641577e-01},
{7.212787340565479e-01, -6.926449218739597e-01},
{7.204281879511419e-01, -6.935295422730269e-01},
- {7.195765568939045e-01, -6.944131182291369e-01},
+ {7.195765568939047e-01, -6.944131182291369e-01},
{7.187238421673769e-01, -6.952956484116404e-01},
- {7.178700450557317e-01, -6.961771314914630e-01},
+ {7.178700450557317e-01, -6.961771314914629e-01},
{7.170151668447722e-01, -6.970575661411068e-01},
{7.161592088219294e-01, -6.979369510346534e-01},
{7.153021722762606e-01, -6.988152848477649e-01},
- {7.144440584984474e-01, -6.996925662576865e-01},
+ {7.144440584984474e-01, -6.996925662576866e-01},
{7.135848687807936e-01, -7.005687939432483e-01},
- {7.127246044172235e-01, -7.014439665848672e-01},
- {7.118632667032795e-01, -7.023180828645491e-01},
+ {7.127246044172234e-01, -7.014439665848672e-01},
+ {7.118632667032795e-01, -7.023180828645490e-01},
{7.110008569361208e-01, -7.031911414658905e-01},
- {7.101373764145209e-01, -7.040631410740809e-01},
+ {7.101373764145208e-01, -7.040631410740810e-01},
{7.092728264388657e-01, -7.049340803759049e-01},
{7.084072083111520e-01, -7.058039580597435e-01},
{7.075405233349850e-01, -7.066727728155766e-01}
1
0
[commit] r11104 - in freeswitch/trunk/src: . include mod/applications/mod_conference mod/applications/mod_rss mod/endpoints/mod_loopback mod/endpoints/mod_sofia mod/event_handlers/mod_erlang_event mod/event_handlers/mod_event_socket mod/formats/mod_local_stream
by FreeSWITCH SVN 09 Jan '09
by FreeSWITCH SVN 09 Jan '09
09 Jan '09
Author: anthm
Date: Fri Jan 9 14:34:01 2009
New Revision: 11104
Log:
numerous fixes from regression testing
Modified:
freeswitch/trunk/src/include/switch_core.h
freeswitch/trunk/src/include/switch_module_interfaces.h
freeswitch/trunk/src/include/switch_types.h
freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c
freeswitch/trunk/src/mod/applications/mod_rss/mod_rss.c
freeswitch/trunk/src/mod/endpoints/mod_loopback/mod_loopback.c
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c
freeswitch/trunk/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c
freeswitch/trunk/src/mod/event_handlers/mod_event_socket/mod_event_socket.c
freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c
freeswitch/trunk/src/switch_core.c
freeswitch/trunk/src/switch_core_file.c
freeswitch/trunk/src/switch_core_io.c
freeswitch/trunk/src/switch_core_session.c
freeswitch/trunk/src/switch_core_state_machine.c
freeswitch/trunk/src/switch_ivr.c
freeswitch/trunk/src/switch_ivr_async.c
freeswitch/trunk/src/switch_ivr_bridge.c
freeswitch/trunk/src/switch_ivr_originate.c
freeswitch/trunk/src/switch_ivr_play_say.c
Modified: freeswitch/trunk/src/include/switch_core.h
==============================================================================
--- freeswitch/trunk/src/include/switch_core.h (original)
+++ freeswitch/trunk/src/include/switch_core.h Fri Jan 9 14:34:01 2009
@@ -330,7 +330,7 @@
\return success if it is safe to read from the session
*/
#ifdef SWITCH_DEBUG_RWLOCKS
-#define switch_core_session_read_lock(session) switch_core_session_perform_read_lock_hangup(session, __FILE__, __SWITCH_FUNC__, __LINE__)
+#define switch_core_session_read_lock_hangup(session) switch_core_session_perform_read_lock_hangup(session, __FILE__, __SWITCH_FUNC__, __LINE__)
#else
SWITCH_DECLARE(switch_status_t) switch_core_session_read_lock_hangup(_In_ switch_core_session_t *session);
#endif
@@ -901,7 +901,7 @@
\param session the session to reset
\param flush_dtmf flush all queued dtmf events too
*/
-SWITCH_DECLARE(void) switch_core_session_reset(_In_ switch_core_session_t *session, switch_bool_t flush_dtmf);
+SWITCH_DECLARE(void) switch_core_session_reset(_In_ switch_core_session_t *session, switch_bool_t flush_dtmf, switch_bool_t reset_read_codec);
/*!
\brief Write a frame to a session
Modified: freeswitch/trunk/src/include/switch_module_interfaces.h
==============================================================================
--- freeswitch/trunk/src/include/switch_module_interfaces.h (original)
+++ freeswitch/trunk/src/include/switch_module_interfaces.h Fri Jan 9 14:34:01 2009
@@ -320,6 +320,9 @@
switch_buffer_t *buffer;
switch_byte_t *dbuf;
switch_size_t dbuflen;
+ switch_buffer_t *pre_buffer;
+ unsigned char *pre_buffer_data;
+ switch_size_t pre_buffer_datalen;
const char *file;
const char *func;
int line;
Modified: freeswitch/trunk/src/include/switch_types.h
==============================================================================
--- freeswitch/trunk/src/include/switch_types.h (original)
+++ freeswitch/trunk/src/include/switch_types.h Fri Jan 9 14:34:01 2009
@@ -166,7 +166,9 @@
#define SWITCH_SPEECH_KEY "speech"
#define SWITCH_UUID_BRIDGE "uuid_bridge"
#define SWITCH_BITS_PER_BYTE 8
- typedef uint8_t switch_byte_t;
+#define SWITCH_DEFAULT_FILE_BUFFER_LEN 65536
+
+typedef uint8_t switch_byte_t;
typedef struct {
char digit;
@@ -1061,7 +1063,9 @@
SWITCH_FILE_NATIVE = (1 << 9),
SWITCH_FILE_SEEK = (1 << 10),
SWITCH_FILE_OPEN = (1 << 11),
- SWITCH_FILE_CALLBACK = (1 << 12)
+ SWITCH_FILE_CALLBACK = (1 << 12),
+ SWITCH_FILE_DONE = (1 << 13),
+ SWITCH_FILE_BUFFER_DONE = (1 << 14)
} switch_file_flag_enum_t;
typedef uint32_t switch_file_flag_t;
Modified: freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c
==============================================================================
--- freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c (original)
+++ freeswitch/trunk/src/mod/applications/mod_conference/mod_conference.c Fri Jan 9 14:34:01 2009
@@ -1,4 +1,4 @@
-/*
+/*
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
* Copyright (C) 2005/2006, Anthony Minessale II <anthmct(a)yahoo.com>
*
@@ -139,7 +139,8 @@
MFLAG_FLUSH_BUFFER = (1 << 8),
MFLAG_ENDCONF = (1 << 9),
MFLAG_HAS_AUDIO = (1 << 10),
- MFLAG_TALKING = (1 << 11)
+ MFLAG_TALKING = (1 << 11),
+ MFLAG_RESTART = (1 << 12)
} member_flag_t;
typedef enum {
@@ -337,6 +338,7 @@
} api_command_t;
/* Function Prototypes */
+static int setup_media(conference_member_t *member, conference_obj_t *conference);
static uint32_t next_member_id(void);
static conference_relationship_t *member_get_relationship(conference_member_t *member, conference_member_t *other_member);
static conference_member_t *conference_member_get(conference_obj_t *conference, uint32_t id);
@@ -1758,18 +1760,43 @@
/* NB. this starts the input thread after some initial setup for the call leg */
static void conference_loop_output(conference_member_t *member)
{
- switch_channel_t *channel = switch_core_session_get_channel(member->session);
+ switch_channel_t *channel;
switch_frame_t write_frame = { 0 };
- uint8_t *data;
+ uint8_t *data = NULL;
switch_timer_t timer = { 0 };
- switch_codec_t *read_codec = switch_core_session_get_read_codec(member->session);
- uint32_t interval = read_codec->implementation->microseconds_per_packet / 1000;
- uint32_t samples = switch_samples_per_packet(member->conference->rate, interval);
- uint32_t csamples = samples;
- uint32_t tsamples = member->orig_read_codec->implementation->samples_per_packet;
- uint32_t flush_len = 0;
- uint32_t low_count = 0, bytes = samples * 2;
- call_list_t *call_list = NULL, *cp = NULL;
+ switch_codec_t *read_codec;
+ uint32_t interval;
+ uint32_t samples;
+ uint32_t csamples;
+ uint32_t tsamples;
+ uint32_t flush_len;
+ uint32_t low_count, bytes;
+ call_list_t *call_list, *cp;
+ int restarting = -1;
+
+ top:
+
+ restarting++;
+
+ if (switch_test_flag(member, MFLAG_RESTART)) {
+ switch_clear_flag(member, MFLAG_RESTART);
+ switch_set_flag_locked(member, MFLAG_FLUSH_BUFFER);
+ switch_core_timer_destroy(&timer);
+ }
+
+ channel = switch_core_session_get_channel(member->session);
+ read_codec = switch_core_session_get_read_codec(member->session);
+ interval = read_codec->implementation->microseconds_per_packet / 1000;
+ samples = switch_samples_per_packet(member->conference->rate, interval);
+ csamples = samples;
+ tsamples = member->orig_read_codec->implementation->samples_per_packet;
+ flush_len = 0;
+ low_count = 0;
+ bytes = samples * 2;
+ call_list = NULL;
+ cp = NULL;
+
+
switch_assert(member->conference != NULL);
@@ -1783,62 +1810,72 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Setup timer %s success interval: %u samples: %u\n",
member->conference->timer_name, interval, tsamples);
- write_frame.data = data = switch_core_session_alloc(member->session, SWITCH_RECOMMENDED_BUFFER_SIZE);
- write_frame.buflen = SWITCH_RECOMMENDED_BUFFER_SIZE;
+ if (!restarting) {
+ write_frame.data = data = switch_core_session_alloc(member->session, SWITCH_RECOMMENDED_BUFFER_SIZE);
+ write_frame.buflen = SWITCH_RECOMMENDED_BUFFER_SIZE;
+ }
+
write_frame.codec = &member->write_codec;
if (!switch_test_flag(member->conference, CFLAG_ANSWERED)) {
switch_channel_answer(channel);
}
- /* Start the input thread */
- launch_conference_loop_input(member, switch_core_session_get_pool(member->session));
-
- /* build a digit stream object */
- if (member->conference->dtmf_parser != NULL
- && switch_ivr_digit_stream_new(member->conference->dtmf_parser, &member->digit_stream) != SWITCH_STATUS_SUCCESS) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Danger Will Robinson, there is no digit parser stream object\n");
- }
-
- if ((call_list = switch_channel_get_private(channel, "_conference_autocall_list_"))) {
- const char *cid_name = switch_channel_get_variable(channel, "conference_auto_outcall_caller_id_name");
- const char *cid_num = switch_channel_get_variable(channel, "conference_auto_outcall_caller_id_number");
- const char *toval = switch_channel_get_variable(channel, "conference_auto_outcall_timeout");
- const char *flags = switch_channel_get_variable(channel, "conference_auto_outcall_flags");
- const char *ann = switch_channel_get_variable(channel, "conference_auto_outcall_announce");
- const char *prefix = switch_channel_get_variable(channel, "conference_auto_outcall_prefix");
- int to = 60;
+ if (!restarting) {
+ /* Start the input thread */
+ launch_conference_loop_input(member, switch_core_session_get_pool(member->session));
- if (ann) {
- member->conference->special_announce = switch_core_strdup(member->conference->pool, ann);
+ /* build a digit stream object */
+ if (member->conference->dtmf_parser != NULL
+ && switch_ivr_digit_stream_new(member->conference->dtmf_parser, &member->digit_stream) != SWITCH_STATUS_SUCCESS) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Danger Will Robinson, there is no digit parser stream object\n");
}
- switch_channel_set_private(channel, "_conference_autocall_list_", NULL);
+ if ((call_list = switch_channel_get_private(channel, "_conference_autocall_list_"))) {
+ const char *cid_name = switch_channel_get_variable(channel, "conference_auto_outcall_caller_id_name");
+ const char *cid_num = switch_channel_get_variable(channel, "conference_auto_outcall_caller_id_number");
+ const char *toval = switch_channel_get_variable(channel, "conference_auto_outcall_timeout");
+ const char *flags = switch_channel_get_variable(channel, "conference_auto_outcall_flags");
+ const char *ann = switch_channel_get_variable(channel, "conference_auto_outcall_announce");
+ const char *prefix = switch_channel_get_variable(channel, "conference_auto_outcall_prefix");
+ int to = 60;
+
+ if (ann) {
+ member->conference->special_announce = switch_core_strdup(member->conference->pool, ann);
+ }
+
+ switch_channel_set_private(channel, "_conference_autocall_list_", NULL);
- if (toval) {
- to = atoi(toval);
- if (to < 10 || to > 500) {
- to = 60;
+ if (toval) {
+ to = atoi(toval);
+ if (to < 10 || to > 500) {
+ to = 60;
+ }
}
- }
- for (cp = call_list; cp; cp = cp->next) {
- int argc;
- char *argv[512] = { 0 };
- char *cpstr = strdup(cp->string);
- int x = 0;
+ for (cp = call_list; cp; cp = cp->next) {
+ int argc;
+ char *argv[512] = { 0 };
+ char *cpstr = strdup(cp->string);
+ int x = 0;
- switch_assert(cpstr);
- argc = switch_separate_string(cpstr, ',', argv, (sizeof(argv) / sizeof(argv[0])));
- for (x = 0; x < argc; x++) {
- char *dial_str = switch_mprintf("%s%s", switch_str_nil(prefix), argv[x]);
- switch_assert(dial_str);
- conference_outcall_bg(member->conference, NULL, NULL, dial_str, to, switch_str_nil(flags), cid_name, cid_num);
- switch_safe_free(dial_str);
+ switch_assert(cpstr);
+ argc = switch_separate_string(cpstr, ',', argv, (sizeof(argv) / sizeof(argv[0])));
+ for (x = 0; x < argc; x++) {
+ char *dial_str = switch_mprintf("%s%s", switch_str_nil(prefix), argv[x]);
+ switch_assert(dial_str);
+ conference_outcall_bg(member->conference, NULL, NULL, dial_str, to, switch_str_nil(flags), cid_name, cid_num);
+ switch_safe_free(dial_str);
+ }
+ switch_safe_free(cpstr);
}
- switch_safe_free(cpstr);
}
}
+
+ if (restarting) {
+ switch_channel_clear_flag(channel, CF_SERVICE);
+ }
+
/* Fair WARNING, If you expect the caller to hear anything or for digit handling to be processed, */
/* you better not block this thread loop for more than the duration of member->conference->timer_name! */
while (switch_test_flag(member, MFLAG_RUNNING) && switch_test_flag(member, MFLAG_ITHREAD)
@@ -1852,6 +1889,10 @@
switch_size_t file_sample_len = csamples;
switch_size_t file_data_len = file_sample_len * 2;
+ if (switch_test_flag(member, MFLAG_RESTART)) {
+ goto top;
+ }
+
switch_mutex_lock(member->flag_mutex);
if (switch_core_session_dequeue_event(member->session, &event) == SWITCH_STATUS_SUCCESS) {
@@ -2145,6 +2186,8 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error Joining Conference\n");
goto end;
}
+
+ fh.pre_buffer_datalen = SWITCH_DEFAULT_FILE_BUFFER_LEN;
if (switch_core_file_open(&fh,
rec->path, (uint8_t) 1, conference->rate, SWITCH_FILE_FLAG_WRITE | SWITCH_FILE_DATA_SHORT,
@@ -2371,6 +2414,7 @@
fnode->leadin = leadin;
/* Open the file */
+ fnode->fh.pre_buffer_datalen = SWITCH_DEFAULT_FILE_BUFFER_LEN;
if (switch_core_file_open(&fnode->fh, file, (uint8_t) 1, conference->rate, SWITCH_FILE_FLAG_READ | SWITCH_FILE_DATA_SHORT, pool) !=
SWITCH_STATUS_SUCCESS) {
switch_core_destroy_memory_pool(&pool);
@@ -2465,6 +2509,7 @@
fnode->type = NODE_TYPE_FILE;
fnode->leadin = leadin;
/* Open the file */
+ fnode->fh.pre_buffer_datalen = SWITCH_DEFAULT_FILE_BUFFER_LEN;
if (switch_core_file_open(&fnode->fh,
file, (uint8_t) 1, member->conference->rate, SWITCH_FILE_FLAG_READ | SWITCH_FILE_DATA_SHORT,
pool) != SWITCH_STATUS_SUCCESS) {
@@ -3631,9 +3676,21 @@
switch_mutex_lock(member->flag_mutex);
conference_del_member(conference, member);
conference_add_member(new_conference, member);
+
+ if (conference->rate != new_conference->rate) {
+ if(setup_media(member, new_conference)) {
+ switch_clear_flag_locked(member, MFLAG_RUNNING);
+ } else {
+ switch_channel_set_flag(channel, CF_SERVICE);
+ switch_set_flag(member, MFLAG_RESTART);
+ }
+ }
+
switch_mutex_unlock(new_conference->mutex);
switch_mutex_unlock(member->flag_mutex);
- stream->write_function(stream, "OK Members sent to conference %s.\n", argv[2]);
+
+
+ stream->write_function(stream, "OK Member '%d' sent to conference %s.\n", member->id, argv[2]);
/* tell them what happened */
if (test_eflag(conference, EFLAG_TRANSFER) &&
@@ -4349,6 +4406,111 @@
switch_channel_set_private(channel, "_conference_autocall_list_", call_list);
}
+
+static int setup_media(conference_member_t *member, conference_obj_t *conference)
+{
+ switch_codec_t *read_codec;
+
+
+ switch_core_session_reset(member->session, SWITCH_TRUE, SWITCH_FALSE);
+
+ if (member->read_codec.implementation) {
+ switch_core_codec_destroy(&member->read_codec);
+ }
+
+ if (member->read_resampler) {
+ switch_resample_destroy(&member->read_resampler);
+ }
+
+ read_codec = switch_core_session_get_read_codec(member->session);
+ member->orig_read_codec = read_codec;
+ member->native_rate = read_codec->implementation->samples_per_second;
+
+ /* Setup a Signed Linear codec for reading audio. */
+ if (switch_core_codec_init(&member->read_codec,
+ "L16",
+ NULL, read_codec->implementation->actual_samples_per_second, read_codec->implementation->microseconds_per_packet / 1000,
+ 1, SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE, NULL, member->pool) == SWITCH_STATUS_SUCCESS) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,
+ "Raw Codec Activation Success L16@%uhz 1 channel %dms\n",
+ read_codec->implementation->actual_samples_per_second, read_codec->implementation->microseconds_per_packet / 1000);
+
+ } else {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Raw Codec Activation Failed L16@%uhz 1 channel %dms\n",
+ read_codec->implementation->actual_samples_per_second, read_codec->implementation->microseconds_per_packet / 1000);
+
+ goto done;
+ }
+
+ if (!member->frame_size) {
+ member->frame_size = SWITCH_RECOMMENDED_BUFFER_SIZE;
+ member->frame = switch_core_alloc(member->pool, member->frame_size);
+ member->mux_frame = switch_core_alloc(member->pool, member->frame_size);
+ }
+
+ if (read_codec->implementation->actual_samples_per_second != conference->rate) {
+ if (switch_resample_create(&member->read_resampler,
+ read_codec->implementation->actual_samples_per_second,
+ member->frame_size, conference->rate, member->frame_size, member->pool) != SWITCH_STATUS_SUCCESS) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Unable to create resampler!\n");
+ goto done;
+ }
+
+
+ member->resample_out = switch_core_alloc(member->pool, member->frame_size);
+ member->resample_out_len = member->frame_size;
+
+ /* Setup an audio buffer for the resampled audio */
+ if (switch_buffer_create_dynamic(&member->resample_buffer, CONF_DBLOCK_SIZE, CONF_DBUFFER_SIZE, CONF_DBUFFER_MAX)
+ != SWITCH_STATUS_SUCCESS) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Memory Error Creating Audio Buffer!\n");
+ goto done;
+ }
+ }
+
+
+ /* Setup a Signed Linear codec for writing audio. */
+ if (switch_core_codec_init(&member->write_codec,
+ "L16",
+ NULL,
+ conference->rate,
+ read_codec->implementation->microseconds_per_packet / 1000,
+ 1, SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE, NULL, member->pool) == SWITCH_STATUS_SUCCESS) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,
+ "Raw Codec Activation Success L16@%uhz 1 channel %dms\n",
+ conference->rate, read_codec->implementation->microseconds_per_packet / 1000);
+ } else {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Raw Codec Activation Failed L16@%uhz 1 channel %dms\n",
+ conference->rate, read_codec->implementation->microseconds_per_packet / 1000);
+ goto codec_done2;
+ }
+
+ /* Setup an audio buffer for the incoming audio */
+ if (switch_buffer_create_dynamic(&member->audio_buffer, CONF_DBLOCK_SIZE, CONF_DBUFFER_SIZE, CONF_DBUFFER_MAX) != SWITCH_STATUS_SUCCESS) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Memory Error Creating Audio Buffer!\n");
+ goto codec_done1;
+ }
+
+ /* Setup an audio buffer for the outgoing audio */
+ if (switch_buffer_create_dynamic(&member->mux_buffer, CONF_DBLOCK_SIZE, CONF_DBUFFER_SIZE, CONF_DBUFFER_MAX) != SWITCH_STATUS_SUCCESS) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Memory Error Creating Audio Buffer!\n");
+ goto codec_done1;
+ }
+
+ return 0;
+
+ codec_done1:
+ switch_core_codec_destroy(&member->read_codec);
+ codec_done2:
+ switch_core_codec_destroy(&member->write_codec);
+ done:
+
+ return -1;
+
+
+}
+
+
/* Application interface function that is called from the dialplan to join the channel to a conference */
SWITCH_STANDARD_APP(conference_function)
{
@@ -4632,84 +4794,16 @@
switch_set_flag(conference, CFLAG_ANSWERED);
}
- member.orig_read_codec = read_codec;
- member.native_rate = read_codec->implementation->samples_per_second;
+ member.session = session;
member.pool = switch_core_session_get_pool(session);
- /* Setup a Signed Linear codec for reading audio. */
- if (switch_core_codec_init(&member.read_codec,
- "L16",
- NULL, read_codec->implementation->actual_samples_per_second, read_codec->implementation->microseconds_per_packet / 1000,
- 1, SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE, NULL, member.pool) == SWITCH_STATUS_SUCCESS) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,
- "Raw Codec Activation Success L16@%uhz 1 channel %dms\n",
- read_codec->implementation->actual_samples_per_second, read_codec->implementation->microseconds_per_packet / 1000);
-
- } else {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Raw Codec Activation Failed L16@%uhz 1 channel %dms\n",
- read_codec->implementation->actual_samples_per_second, read_codec->implementation->microseconds_per_packet / 1000);
-
+ if (setup_media(&member, conference)) {
flags = 0;
goto done;
}
- member.frame_size = SWITCH_RECOMMENDED_BUFFER_SIZE;
- member.frame = switch_core_alloc(member.pool, member.frame_size);
- member.mux_frame = switch_core_alloc(member.pool, member.frame_size);
-
- if (read_codec->implementation->actual_samples_per_second != conference->rate) {
- if (switch_resample_create(&member.read_resampler,
- read_codec->implementation->actual_samples_per_second,
- member.frame_size, conference->rate, member.frame_size, member.pool) != SWITCH_STATUS_SUCCESS) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Unable to create resampler!\n");
- goto done;
- }
-
-
- member.resample_out = switch_core_alloc(member.pool, member.frame_size);
- member.resample_out_len = member.frame_size;
-
- /* Setup an audio buffer for the resampled audio */
- if (switch_buffer_create_dynamic(&member.resample_buffer, CONF_DBLOCK_SIZE, CONF_DBUFFER_SIZE, CONF_DBUFFER_MAX)
- != SWITCH_STATUS_SUCCESS) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Memory Error Creating Audio Buffer!\n");
- goto done;
- }
- }
-
-
- /* Setup a Signed Linear codec for writing audio. */
- if (switch_core_codec_init(&member.write_codec,
- "L16",
- NULL,
- conference->rate,
- read_codec->implementation->microseconds_per_packet / 1000,
- 1, SWITCH_CODEC_FLAG_ENCODE | SWITCH_CODEC_FLAG_DECODE, NULL, member.pool) == SWITCH_STATUS_SUCCESS) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,
- "Raw Codec Activation Success L16@%uhz 1 channel %dms\n",
- conference->rate, read_codec->implementation->microseconds_per_packet / 1000);
- } else {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Raw Codec Activation Failed L16@%uhz 1 channel %dms\n",
- conference->rate, read_codec->implementation->microseconds_per_packet / 1000);
- flags = 0;
- goto codec_done2;
- }
-
- /* Setup an audio buffer for the incoming audio */
- if (switch_buffer_create_dynamic(&member.audio_buffer, CONF_DBLOCK_SIZE, CONF_DBUFFER_SIZE, CONF_DBUFFER_MAX) != SWITCH_STATUS_SUCCESS) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Memory Error Creating Audio Buffer!\n");
- goto codec_done1;
- }
-
- /* Setup an audio buffer for the outgoing audio */
- if (switch_buffer_create_dynamic(&member.mux_buffer, CONF_DBLOCK_SIZE, CONF_DBUFFER_SIZE, CONF_DBUFFER_MAX) != SWITCH_STATUS_SUCCESS) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Memory Error Creating Audio Buffer!\n");
- goto codec_done1;
- }
-
/* Prepare MUTEXS */
member.id = next_member_id();
- member.session = session;
switch_mutex_init(&member.flag_mutex, SWITCH_MUTEX_NESTED, member.pool);
switch_mutex_init(&member.audio_in_mutex, SWITCH_MUTEX_NESTED, member.pool);
switch_mutex_init(&member.audio_out_mutex, SWITCH_MUTEX_NESTED, member.pool);
@@ -4724,7 +4818,8 @@
/* Add the caller to the conference */
if (conference_add_member(conference, &member) != SWITCH_STATUS_SUCCESS) {
- goto codec_done1;
+ switch_core_codec_destroy(&member.read_codec);
+ goto done;
}
msg.from = __FILE__;
@@ -4747,12 +4842,14 @@
/* Put the original codec back */
switch_core_session_set_read_codec(member.session, NULL);
- /* Clean Up. codec_done(X): is for error situations after the codecs were setup and done: is for situations before */
- codec_done1:
- switch_core_codec_destroy(&member.read_codec);
- codec_done2:
- switch_core_codec_destroy(&member.write_codec);
+ /* Clean Up. */
+
done:
+
+ if (member.read_resampler) {
+ switch_resample_destroy(&member.read_resampler);
+ }
+
switch_event_destroy(¶ms);
switch_buffer_destroy(&member.resample_buffer);
switch_buffer_destroy(&member.audio_buffer);
@@ -4796,7 +4893,7 @@
}
}
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
/* release the readlock */
if (rl) {
Modified: freeswitch/trunk/src/mod/applications/mod_rss/mod_rss.c
==============================================================================
--- freeswitch/trunk/src/mod/applications/mod_rss/mod_rss.c (original)
+++ freeswitch/trunk/src/mod/applications/mod_rss/mod_rss.c Fri Jan 9 14:34:01 2009
@@ -619,7 +619,7 @@
}
switch_xml_free(xml);
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
}
Modified: freeswitch/trunk/src/mod/endpoints/mod_loopback/mod_loopback.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_loopback/mod_loopback.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_loopback/mod_loopback.c Fri Jan 9 14:34:01 2009
@@ -264,7 +264,10 @@
}
if (tech_pvt->other_session) {
- switch_core_session_read_lock(tech_pvt->other_session);
+ if (switch_core_session_read_lock(tech_pvt->other_session) != SWITCH_STATUS_SUCCESS) {
+ switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+ goto end;
+ }
} else {
switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
goto end;
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c Fri Jan 9 14:34:01 2009
@@ -1623,7 +1623,7 @@
resetting = 1;
switch_core_codec_destroy(&tech_pvt->read_codec);
switch_core_codec_destroy(&tech_pvt->write_codec);
- switch_core_session_reset(tech_pvt->session, SWITCH_TRUE);
+ switch_core_session_reset(tech_pvt->session, SWITCH_TRUE, SWITCH_TRUE);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Already using %s\n", tech_pvt->read_codec.implementation->iananame);
switch_goto_status(SWITCH_STATUS_SUCCESS, end);
Modified: freeswitch/trunk/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c
==============================================================================
--- freeswitch/trunk/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c (original)
+++ freeswitch/trunk/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c Fri Jan 9 14:34:01 2009
@@ -1202,7 +1202,9 @@
if ((session = listener->session)) {
channel = switch_core_session_get_channel(session);
- switch_core_session_read_lock(session);
+ if (switch_core_session_read_lock(session) != SWITCH_STATUS_SUCCESS) {
+ goto done;
+ }
}
if (switch_strlen_zero(listener->remote_ip)) {
Modified: freeswitch/trunk/src/mod/event_handlers/mod_event_socket/mod_event_socket.c
==============================================================================
--- freeswitch/trunk/src/mod/event_handlers/mod_event_socket/mod_event_socket.c (original)
+++ freeswitch/trunk/src/mod/event_handlers/mod_event_socket/mod_event_socket.c Fri Jan 9 14:34:01 2009
@@ -1770,7 +1770,9 @@
if ((session = listener->session)) {
channel = switch_core_session_get_channel(session);
- switch_core_session_read_lock(session);
+ if (switch_core_session_read_lock(session) != SWITCH_STATUS_SUCCESS) {
+ goto done;
+ }
}
if (prefs.acl_count && listener->sa && !switch_strlen_zero(listener->remote_ip)) {
Modified: freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c
==============================================================================
--- freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c (original)
+++ freeswitch/trunk/src/mod/formats/mod_local_stream/mod_local_stream.c Fri Jan 9 14:34:01 2009
@@ -183,6 +183,7 @@
fname = path_buf;
fh.prebuf = source->prebuf;
+ fh.pre_buffer_datalen = 65536;
if (switch_core_file_open(&fh,
(char *) fname,
Modified: freeswitch/trunk/src/switch_core.c
==============================================================================
--- freeswitch/trunk/src/switch_core.c (original)
+++ freeswitch/trunk/src/switch_core.c Fri Jan 9 14:34:01 2009
@@ -277,7 +277,10 @@
switch_assert(thread != NULL);
switch_assert(session != NULL);
- switch_core_session_read_lock(session);
+ if (switch_core_session_read_lock(session) != SWITCH_STATUS_SUCCESS) {
+ return NULL;
+ }
+
channel = switch_core_session_get_channel(session);
switch_channel_set_flag(channel, CF_SERVICE);
Modified: freeswitch/trunk/src/switch_core_file.c
==============================================================================
--- freeswitch/trunk/src/switch_core_file.c (original)
+++ freeswitch/trunk/src/switch_core_file.c Fri Jan 9 14:34:01 2009
@@ -117,6 +117,12 @@
}
}
+ if (fh->pre_buffer_datalen) {
+ //switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Prebuffering %d bytes\n", (int)fh->pre_buffer_datalen);
+ switch_buffer_create_dynamic(&fh->pre_buffer, fh->pre_buffer_datalen, fh->pre_buffer_datalen / 2, 0);
+ fh->pre_buffer_data = switch_core_alloc(fh->memory_pool, fh->pre_buffer_datalen);
+ }
+
switch_set_flag(fh, SWITCH_FILE_OPEN);
return status;
@@ -124,26 +130,61 @@
SWITCH_DECLARE(switch_status_t) switch_core_file_read(switch_file_handle_t *fh, void *data, switch_size_t *len)
{
- switch_status_t status;
+ switch_status_t status = SWITCH_STATUS_FALSE;
switch_size_t want, got, orig_len = *len;
switch_assert(fh != NULL);
switch_assert(fh->file_interface != NULL);
+ top:
+
if (fh->buffer && switch_buffer_inuse(fh->buffer) >= *len * 2) {
*len = switch_buffer_read(fh->buffer, data, orig_len * 2) / 2;
return SWITCH_STATUS_SUCCESS;
}
-
+
+ if (switch_test_flag(fh, SWITCH_FILE_DONE)) {
+ switch_clear_flag(fh, SWITCH_FILE_DONE);
+ *len = 0;
+ return SWITCH_STATUS_FALSE;
+ }
+
want = *len;
more:
- if ((status = fh->file_interface->file_read(fh, data, len)) != SWITCH_STATUS_SUCCESS || !*len) {
- *len = 0;
- goto done;
+ if (fh->pre_buffer) {
+ switch_size_t rlen;
+ if (!switch_test_flag(fh, SWITCH_FILE_BUFFER_DONE)) {
+ if (!switch_buffer_inuse(fh->pre_buffer)) {
+ rlen = fh->pre_buffer_datalen / 2;
+ if ((status = fh->file_interface->file_read(fh, fh->pre_buffer_data, &rlen)) != SWITCH_STATUS_SUCCESS || !rlen) {
+ switch_set_flag(fh, SWITCH_FILE_BUFFER_DONE);
+ } else {
+ switch_buffer_write(fh->pre_buffer, fh->pre_buffer_data, rlen * 2);
+ }
+ }
+ }
+
+ rlen = switch_buffer_read(fh->pre_buffer, data, *len * 2);
+ *len = rlen / 2;
+
+ if (*len == 0) {
+ switch_set_flag(fh, SWITCH_FILE_DONE);
+ goto top;
+ } else {
+ status = SWITCH_STATUS_SUCCESS;
+ }
+
+ } else {
+
+ if ((status = fh->file_interface->file_read(fh, data, len)) != SWITCH_STATUS_SUCCESS || !*len) {
+ switch_set_flag(fh, SWITCH_FILE_DONE);
+ goto top;
+ }
}
+
got = *len;
if (!switch_test_flag(fh, SWITCH_FILE_NATIVE) && fh->native_rate != fh->samplerate) {
@@ -186,8 +227,6 @@
}
- done:
-
return status;
}
@@ -234,7 +273,26 @@
return SWITCH_STATUS_SUCCESS;
}
- return fh->file_interface->file_write(fh, data, len);
+
+ if (fh->pre_buffer) {
+ switch_size_t rlen, blen;
+ switch_status_t status = SWITCH_STATUS_SUCCESS;
+
+ switch_buffer_write(fh->pre_buffer, data, *len * 2);
+
+ rlen = switch_buffer_inuse(fh->pre_buffer);
+ if (rlen >= fh->pre_buffer_datalen) {
+ blen = switch_buffer_read(fh->pre_buffer, fh->pre_buffer_data, fh->pre_buffer_datalen);
+ blen /= 2;
+ if ((status = fh->file_interface->file_write(fh, fh->pre_buffer_data, &blen)) != SWITCH_STATUS_SUCCESS) {
+ *len = 0;
+ }
+ }
+
+ return status;
+ } else {
+ return fh->file_interface->file_write(fh, data, len);
+ }
}
SWITCH_DECLARE(switch_status_t) switch_core_file_seek(switch_file_handle_t *fh, unsigned int *cur_pos, int64_t samples, int whence)
@@ -294,6 +352,21 @@
switch_buffer_destroy(&fh->buffer);
}
+ if (fh->pre_buffer) {
+ if (switch_test_flag(fh, SWITCH_FILE_FLAG_WRITE)) {
+ switch_size_t rlen, blen;
+ while((rlen = switch_buffer_inuse(fh->pre_buffer))) {
+ blen = switch_buffer_read(fh->pre_buffer, fh->pre_buffer_data, fh->pre_buffer_datalen);
+ blen /= 2;
+ if (fh->file_interface->file_write(fh, fh->pre_buffer_data, &blen) != SWITCH_STATUS_SUCCESS) {
+ break;
+ }
+ }
+ }
+
+ switch_buffer_destroy(&fh->pre_buffer);
+ }
+
switch_resample_destroy(&fh->resampler);
UNPROTECT_INTERFACE(fh->file_interface);
Modified: freeswitch/trunk/src/switch_core_io.c
==============================================================================
--- freeswitch/trunk/src/switch_core_io.c (original)
+++ freeswitch/trunk/src/switch_core_io.c Fri Jan 9 14:34:01 2009
@@ -805,7 +805,7 @@
}
if (session->write_codec) {
- if (write_frame->datalen == session->write_codec->implementation->decoded_bytes_per_packet) {
+ if (write_frame->codec->implementation->decoded_bytes_per_packet == session->write_codec->implementation->decoded_bytes_per_packet) {
perfect = TRUE;
} else {
if (!session->raw_write_buffer) {
@@ -828,6 +828,12 @@
}
if (perfect) {
+
+ if (write_frame->datalen < session->write_codec->implementation->decoded_bytes_per_packet) {
+ memset(write_frame->data, 255, session->write_codec->implementation->decoded_bytes_per_packet - write_frame->datalen);
+ write_frame->datalen = session->write_codec->implementation->decoded_bytes_per_packet;
+ }
+
enc_frame = write_frame;
session->enc_write_frame.datalen = session->enc_write_frame.buflen;
Modified: freeswitch/trunk/src/switch_core_session.c
==============================================================================
--- freeswitch/trunk/src/switch_core_session.c (original)
+++ freeswitch/trunk/src/switch_core_session.c Fri Jan 9 14:34:01 2009
@@ -110,11 +110,12 @@
switch_hash_this(hi, NULL, NULL, &val);
if (val) {
session = (switch_core_session_t *) val;
- switch_core_session_read_lock(session);
- if (session->endpoint_interface == endpoint_interface) {
- switch_channel_hangup(switch_core_session_get_channel(session), cause);
+ if (switch_core_session_read_lock(session) == SWITCH_STATUS_SUCCESS) {
+ if (session->endpoint_interface == endpoint_interface) {
+ switch_channel_hangup(switch_core_session_get_channel(session), cause);
+ }
+ switch_core_session_rwunlock(session);
}
- switch_core_session_rwunlock(session);
}
}
switch_mutex_unlock(runtime.throttle_mutex);
@@ -132,9 +133,10 @@
switch_hash_this(hi, NULL, NULL, &val);
if (val) {
session = (switch_core_session_t *) val;
- switch_core_session_read_lock(session);
- switch_channel_hangup(switch_core_session_get_channel(session), cause);
- switch_core_session_rwunlock(session);
+ if (switch_core_session_read_lock(session) == SWITCH_STATUS_SUCCESS) {
+ switch_channel_hangup(switch_core_session_get_channel(session), cause);
+ switch_core_session_rwunlock(session);
+ }
}
}
switch_mutex_unlock(runtime.throttle_mutex);
@@ -744,13 +746,14 @@
return x;
}
-SWITCH_DECLARE(void) switch_core_session_reset(switch_core_session_t *session, switch_bool_t flush_dtmf)
+SWITCH_DECLARE(void) switch_core_session_reset(switch_core_session_t *session, switch_bool_t flush_dtmf, switch_bool_t reset_read_codec)
{
switch_channel_t *channel = switch_core_session_get_channel(session);
switch_size_t has;
-
- switch_core_session_set_read_codec(session, NULL);
+ if (reset_read_codec) {
+ switch_core_session_set_read_codec(session, NULL);
+ }
/* clear resamplers */
switch_mutex_lock(session->resample_mutex);
@@ -824,7 +827,7 @@
switch_channel_get_name((*session)->channel), switch_channel_state_name(switch_channel_get_state((*session)->channel)));
- switch_core_session_reset(*session, TRUE);
+ switch_core_session_reset(*session, TRUE, SWITCH_TRUE);
switch_core_media_bug_remove_all(*session);
switch_ivr_deactivate_unicast(*session);
Modified: freeswitch/trunk/src/switch_core_state_machine.c
==============================================================================
--- freeswitch/trunk/src/switch_core_state_machine.c (original)
+++ freeswitch/trunk/src/switch_core_state_machine.c Fri Jan 9 14:34:01 2009
@@ -185,7 +185,7 @@
{
switch_assert(session != NULL);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s Standard PARK\n", switch_channel_get_name(session->channel));
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
switch_ivr_park(session, NULL);
}
Modified: freeswitch/trunk/src/switch_ivr.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr.c (original)
+++ freeswitch/trunk/src/switch_ivr.c Fri Jan 9 14:34:01 2009
@@ -1163,7 +1163,7 @@
max_forwards = switch_core_session_sprintf(session, "%d", forwardval);
switch_channel_set_variable(channel, SWITCH_MAX_FORWARDS_VARIABLE, max_forwards);
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
switch_channel_clear_flag(channel, CF_ORIGINATING);
/* clear all state handlers */
Modified: freeswitch/trunk/src/switch_ivr_async.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr_async.c (original)
+++ freeswitch/trunk/src/switch_ivr_async.c Fri Jan 9 14:34:01 2009
@@ -371,7 +371,7 @@
read_codec->implementation->actual_samples_per_second,
SWITCH_FILE_FLAG_READ | SWITCH_FILE_DATA_SHORT, NULL) != SWITCH_STATUS_SUCCESS) {
switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
return SWITCH_STATUS_GENERR;
}
@@ -794,7 +794,7 @@
switch_core_session_rwunlock(tsession);
status = SWITCH_STATUS_SUCCESS;
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
}
return status;
@@ -842,6 +842,7 @@
fh->channels = channels;
fh->samplerate = read_codec->implementation->actual_samples_per_second;
+ fh->pre_buffer_datalen = SWITCH_DEFAULT_FILE_BUFFER_LEN;
if (switch_core_file_open(fh,
file,
@@ -850,7 +851,7 @@
SWITCH_FILE_FLAG_WRITE | SWITCH_FILE_DATA_SHORT, NULL) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error opening %s\n", file);
switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
return SWITCH_STATUS_GENERR;
}
@@ -1678,7 +1679,11 @@
switch_thread_cond_create(&sth->cond, sth->pool);
switch_mutex_init(&sth->mutex, SWITCH_MUTEX_NESTED, sth->pool);
- switch_core_session_read_lock(sth->session);
+ if (switch_core_session_read_lock(sth->session) != SWITCH_STATUS_SUCCESS) {
+ sth->ready = 0;
+ return NULL;
+ }
+
switch_mutex_lock(sth->mutex);
sth->ready = 1;
Modified: freeswitch/trunk/src/switch_ivr_bridge.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr_bridge.c (original)
+++ freeswitch/trunk/src/switch_ivr_bridge.c Fri Jan 9 14:34:01 2009
@@ -430,7 +430,7 @@
end:
- switch_core_session_reset(session_a, SWITCH_TRUE);
+ switch_core_session_reset(session_a, SWITCH_TRUE, SWITCH_TRUE);
switch_channel_set_variable(chan_a, SWITCH_BRIDGE_VARIABLE, NULL);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "BRIDGE THREAD DONE [%s]\n", switch_channel_get_name(chan_a));
if (!inner_bridge) {
@@ -451,7 +451,7 @@
switch_channel_set_private(channel, "_bridge_", NULL);
if (bd->session == session && *bd->b_uuid) {
audio_bridge_thread(NULL, (void *) bd);
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
} else {
switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
}
@@ -581,7 +581,7 @@
switch_channel_wait_for_state(channel, other_channel, CS_SOFT_EXECUTE);
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
ready_a = switch_channel_ready(channel);
Modified: freeswitch/trunk/src/switch_ivr_originate.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr_originate.c (original)
+++ freeswitch/trunk/src/switch_ivr_originate.c Fri Jan 9 14:34:01 2009
@@ -501,9 +501,9 @@
}
olen = mlen;
- if (ringback.fh->resampler && ringback.fh->resampler->rfactor > 1) {
- olen = (switch_size_t) (olen * ringback.fh->resampler->rfactor);
- }
+ //if (ringback.fh->resampler && ringback.fh->resampler->rfactor > 1) {
+ //olen = (switch_size_t) (olen * ringback.fh->resampler->rfactor);
+ //}
switch_core_file_read(ringback.fh, write_frame.data, &olen);
if (olen == 0) {
@@ -547,7 +547,7 @@
switch_buffer_destroy(&ringback.audio_buffer);
}
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
if (write_codec.implementation) {
switch_core_codec_destroy(&write_codec);
@@ -1128,7 +1128,10 @@
continue;
}
- switch_core_session_read_lock(new_session);
+ if (switch_core_session_read_lock(new_session) != SWITCH_STATUS_SUCCESS) {
+ status = SWITCH_STATUS_FALSE;
+ goto done;
+ }
pool = NULL;
caller_profiles[i] = new_profile;
@@ -1473,9 +1476,10 @@
}
olen = mlen;
- if (ringback.fh->resampler && ringback.fh->resampler->rfactor > 1) {
- olen = (switch_size_t) (olen * ringback.fh->resampler->rfactor);
- }
+
+ //if (ringback.fh->resampler && ringback.fh->resampler->rfactor > 1) {
+ //olen = (switch_size_t) (olen * ringback.fh->resampler->rfactor);
+ //}
switch_core_file_read(ringback.fh, write_frame.data, &olen);
@@ -1527,7 +1531,7 @@
if (session && (ringback_data || !(switch_channel_test_flag(caller_channel, CF_PROXY_MODE) &&
switch_channel_test_flag(caller_channel, CF_PROXY_MEDIA)))) {
- switch_core_session_reset(session, SWITCH_FALSE);
+ switch_core_session_reset(session, SWITCH_FALSE, SWITCH_TRUE);
}
for (i = 0; i < and_argc; i++) {
@@ -1716,7 +1720,7 @@
}
if (session) {
- switch_core_session_reset(session, SWITCH_FALSE);
+ switch_core_session_reset(session, SWITCH_FALSE, SWITCH_TRUE);
}
if (write_codec.implementation) {
Modified: freeswitch/trunk/src/switch_ivr_play_say.c
==============================================================================
--- freeswitch/trunk/src/switch_ivr_play_say.c (original)
+++ freeswitch/trunk/src/switch_ivr_play_say.c Fri Jan 9 14:34:01 2009
@@ -402,7 +402,7 @@
read_codec->implementation->actual_samples_per_second,
SWITCH_FILE_FLAG_WRITE | SWITCH_FILE_DATA_SHORT, NULL) != SWITCH_STATUS_SUCCESS) {
switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
return SWITCH_STATUS_GENERR;
}
@@ -460,7 +460,7 @@
"Raw Codec Activation Failed %s@%uhz %u channels %dms\n", codec_name, fh->samplerate,
fh->channels, read_codec->implementation->microseconds_per_packet / 1000);
switch_core_file_close(fh);
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
return SWITCH_STATUS_GENERR;
}
@@ -580,7 +580,7 @@
}
switch_core_file_close(fh);
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
return status;
}
@@ -853,7 +853,7 @@
read_codec->implementation->number_of_channels,
read_codec->implementation->actual_samples_per_second,
SWITCH_FILE_FLAG_READ | SWITCH_FILE_DATA_SHORT, NULL) != SWITCH_STATUS_SUCCESS) {
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
status = SWITCH_STATUS_NOTFOUND;
goto end;
}
@@ -910,7 +910,7 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Setup buffer failed\n");
switch_core_file_close(fh);
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
status = SWITCH_STATUS_GENERR;
goto end;
@@ -937,7 +937,7 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG,
"Raw Codec Activation Failed %s@%uhz %u channels %dms\n", codec_name, fh->samplerate, fh->channels, interval);
switch_core_file_close(fh);
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
status = SWITCH_STATUS_GENERR;
goto end;
}
@@ -953,7 +953,7 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Setup timer failed!\n");
switch_core_codec_destroy(&codec);
switch_core_file_close(fh);
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
status = SWITCH_STATUS_GENERR;
goto end;
}
@@ -1238,7 +1238,7 @@
end:
switch_safe_free(abuf);
- switch_core_session_reset(session, SWITCH_FALSE);
+ switch_core_session_reset(session, SWITCH_FALSE, SWITCH_TRUE);
return status;
}
@@ -1275,7 +1275,7 @@
read_codec->implementation->number_of_channels,
read_codec->implementation->actual_samples_per_second,
SWITCH_FILE_FLAG_READ | SWITCH_FILE_DATA_SHORT, NULL) != SWITCH_STATUS_SUCCESS) {
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
return SWITCH_STATUS_NOTFOUND;
}
switch_zmalloc(abuf, SWITCH_RECOMMENDED_BUFFER_SIZE);
@@ -1362,7 +1362,7 @@
}
}
- switch_core_session_reset(session, SWITCH_FALSE);
+ switch_core_session_reset(session, SWITCH_FALSE, SWITCH_TRUE);
switch_core_codec_destroy(&raw_codec);
end:
@@ -1835,7 +1835,7 @@
timer_name = switch_channel_get_variable(channel, "timer_name");
- switch_core_session_reset(session, SWITCH_FALSE);
+ switch_core_session_reset(session, SWITCH_FALSE, SWITCH_TRUE);
read_codec = switch_core_session_get_read_codec(session);
rate = read_codec->implementation->actual_samples_per_second;
@@ -1846,7 +1846,7 @@
if (switch_core_speech_open(sh, tts_name, voice_name, (uint32_t) rate, interval,
&flags, switch_core_session_get_pool(session)) != SWITCH_STATUS_SUCCESS) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid TTS module!\n");
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
if (cache_obj) {
switch_channel_set_private(channel, SWITCH_CACHE_SPEECH_HANDLES_OBJ_NAME, NULL);
}
@@ -1872,7 +1872,7 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Raw Codec Activation Failed %s@%uhz 1 channel %dms\n", codec_name, rate, interval);
flags = 0;
switch_core_speech_close(sh, &flags);
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
if (cache_obj) {
switch_channel_set_private(channel, SWITCH_CACHE_SPEECH_HANDLES_OBJ_NAME, NULL);
}
@@ -1889,7 +1889,7 @@
switch_core_codec_destroy(write_frame.codec);
flags = 0;
switch_core_speech_close(sh, &flags);
- switch_core_session_reset(session, SWITCH_TRUE);
+ switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
if (cache_obj) {
switch_channel_set_private(channel, SWITCH_CACHE_SPEECH_HANDLES_OBJ_NAME, NULL);
}
@@ -1918,7 +1918,7 @@
}
}
- switch_core_session_reset(session, SWITCH_FALSE);
+ switch_core_session_reset(session, SWITCH_FALSE, SWITCH_TRUE);
return status;
}
1
0
09 Jan '09
Author: anthm
Date: Fri Jan 9 09:34:34 2009
New Revision: 11103
Log:
MODENDP-166
Modified:
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c Fri Jan 9 09:34:34 2009
@@ -2252,7 +2252,7 @@
sdp_media_t *m;
sdp_attribute_t *attr;
int first = 0, last = 0;
- int ptime = 0, dptime = 0;
+ int ptime = 0, dptime = 0, maxptime = 0, dmaxptime = 0;
int sendonly = 0;
int greedy = 0, x = 0, skip = 0, mine = 0;
switch_channel_t *channel = switch_core_session_get_channel(session);
@@ -2302,6 +2302,8 @@
sendonly = 0;
} else if (!strcasecmp(attr->a_name, "ptime")) {
dptime = atoi(attr->a_value);
+ } else if (!strcasecmp(attr->a_name, "maxptime")) {
+ dmaxptime = atoi(attr->a_value);
}
}
@@ -2314,6 +2316,7 @@
sdp_connection_t *connection;
ptime = dptime;
+ maxptime = dmaxptime;
if (m->m_proto == sdp_proto_srtp) {
got_savp++;
@@ -2360,6 +2363,8 @@
for (attr = m->m_attributes; attr; attr = attr->a_next) {
if (!strcasecmp(attr->a_name, "ptime") && attr->a_value) {
ptime = atoi(attr->a_value);
+ } else if (!strcasecmp(attr->a_name, "maxptime") && attr->a_value) {
+ maxptime = atoi(attr->a_value);
} else if (!got_crypto && !strcasecmp(attr->a_name, "crypto") && !switch_strlen_zero(attr->a_value)) {
int crypto_tag;
@@ -2498,6 +2503,10 @@
first = 0;
last = tech_pvt->num_codecs;
}
+
+ if (maxptime && (!ptime || ptime > maxptime)) {
+ ptime = maxptime;
+ }
for (i = first; i < last && i < tech_pvt->num_codecs; i++) {
const switch_codec_implementation_t *imp = tech_pvt->codecs[i];
@@ -2515,7 +2524,8 @@
}
if (match) {
- if ((ptime && ptime * 1000 != imp->microseconds_per_packet) || map->rm_rate != codec_rate) {
+ if ((ptime && ptime * 1000 != imp->microseconds_per_packet) ||
+ map->rm_rate != codec_rate) {
near_rate = map->rm_rate;
near_match = imp;
match = 0;
@@ -2545,9 +2555,14 @@
mimp = near_match;
}
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Substituting codec %s@%ui@%uh\n",
- mimp->iananame, mimp->microseconds_per_packet / 1000, mimp->samples_per_second);
- match = 1;
+ if (!maxptime || mimp->microseconds_per_packet / 1000 <= maxptime) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Substituting codec %s@%ui@%uh\n",
+ mimp->iananame, mimp->microseconds_per_packet / 1000, mimp->samples_per_second);
+ match = 1;
+ } else {
+ mimp = NULL;
+ match = 0;
+ }
}
if (!match && greedy) {
1
0
Author: brian
Date: Thu Jan 8 21:30:25 2009
New Revision: 11102
Log:
doh this is wrong
Modified:
freeswitch/trunk/conf/dialplan/public.xml
Modified: freeswitch/trunk/conf/dialplan/public.xml
==============================================================================
--- freeswitch/trunk/conf/dialplan/public.xml (original)
+++ freeswitch/trunk/conf/dialplan/public.xml Thu Jan 8 21:30:25 2009
@@ -31,7 +31,7 @@
</extension>
<extension name="call_debug" continue="true">
- <condition field="$${call_debug}" expression="^true$" break="never">
+ <condition field="${call_debug}" expression="^true$" break="never">
<action application="info"/>
</condition>
</extension>
1
0