]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add adjustable buffering to mod_shout (see example in config file)
authorAnthony Minessale <anthony.minessale@gmail.com>
Sat, 9 Jun 2007 23:07:00 +0000 (23:07 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Sat, 9 Jun 2007 23:07:00 +0000 (23:07 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5303 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/languages/mod_python/freeswitch_python.cpp
src/mod/languages/mod_spidermonkey/mod_spidermonkey.c

index 4fc9f004f78ff6726c73798c1de5aefe6f8a9bd7..324842bd5a374ca9d39da5960eefb5e336b5a707 100644 (file)
@@ -9,6 +9,7 @@ int PySession::streamfile(char *file, PyObject *pyfunc, char *funcargs, int star
     switch_input_args_t args = { 0 }, *ap = NULL;
     struct input_callback_state cb_state = { 0 };
     switch_file_handle_t fh = { 0 };
+       char *prebuf;
 
     sanity_check(-1);
     cb_state.funcargs = funcargs;
@@ -31,6 +32,13 @@ int PySession::streamfile(char *file, PyObject *pyfunc, char *funcargs, int star
        ap = &args;
     }
 
+       if ((prebuf = switch_channel_get_variable(this->channel, "stream_prebuffer"))) {
+        int maybe = atoi(prebuf);
+        if (maybe > 0) {
+            fh.prebuf = maybe;
+        }
+    }
+
 
     this->begin_allow_threads();
     cb_state.threadState = threadState;  // pass threadState so the dtmfhandler can pick it up
index e247db0d5540e80e58b5c12d2cf03abbea185f3a..3c869489006d0a7ee71ff613fb227a0fa98f90f5 100644 (file)
@@ -1357,6 +1357,7 @@ static JSBool session_streamfile(JSContext * cx, JSObject * obj, uintN argc, jsv
        switch_file_handle_t fh = { 0 };
        JSFunction *function;
        switch_input_args_t args = { 0 };
+       char *prebuf;
 
        if (!jss || !jss->session) {
                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "You must call the session.originate method before calling this method!\n");
@@ -1404,6 +1405,14 @@ static JSBool session_streamfile(JSContext * cx, JSObject * obj, uintN argc, jsv
                JS_ValueToInt32(cx, argv[3], &samps);
                fh.samples = samps;
        }
+       
+    if ((prebuf = switch_channel_get_variable(channel, "stream_prebuffer"))) {
+        int maybe = atoi(prebuf);
+        if (maybe > 0) {
+            fh.prebuf = maybe;
+        }
+    }
+
 
        cb_state.extra = &fh;
        cb_state.ret = BOOLEAN_TO_JSVAL(JS_FALSE);