add adjustable buffering to mod_shout (see example in config file)

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5303 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2007-06-09 23:07:00 +00:00
parent 5ce66989b6
commit 1b5daa6b59
2 changed files with 17 additions and 0 deletions

View 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

View 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);