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

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@104 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 e59b65ef
......@@ -42,8 +42,8 @@ static const char modname[] = "mod_portaudio";
static switch_memory_pool *module_pool;
static int running = 1;
#define SAMPLE_TYPE paInt16
typedef short SAMPLE;
#define SAMPLE_TYPE paInt16
typedef short SAMPLE;
typedef enum {
TFLAG_IO = (1 << 0),
......@@ -80,9 +80,9 @@ struct private_object {
unsigned char databuf[1024];
switch_core_session *session;
switch_caller_profile *caller_profile;
char call_id[50];
PaError err;
PABLIO_Stream *audio_in;
char call_id[50];
PaError err;
PABLIO_Stream *audio_in;
PABLIO_Stream *audio_out;
int indev;
int outdev;
......@@ -189,8 +189,8 @@ static switch_status channel_on_hangup(switch_core_session *session)
switch_core_codec_destroy(&tech_pvt->read_codec);
switch_core_codec_destroy(&tech_pvt->write_codec);
CloseAudioStream(tech_pvt->audio_in);
CloseAudioStream(tech_pvt->audio_out);
CloseAudioStream(tech_pvt->audio_in);
CloseAudioStream(tech_pvt->audio_out);
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "%s CHANNEL HANGUP\n", switch_channel_get_name(channel));
......@@ -328,13 +328,13 @@ static switch_status channel_read_frame(switch_core_session *session, switch_fra
tech_pvt = switch_core_session_get_private(session);
assert(tech_pvt != NULL);
if ((t = ReadAudioStream(tech_pvt->audio_in, tech_pvt->read_frame.data, tech_pvt->read_codec.implementation->samples_per_frame))) {
tech_pvt->read_frame.datalen = t * 2;
tech_pvt->read_frame.samples = t;
*frame = &tech_pvt->read_frame;
return SWITCH_STATUS_SUCCESS;
}
if ((t = ReadAudioStream(tech_pvt->audio_in, tech_pvt->read_frame.data, tech_pvt->read_codec.implementation->samples_per_frame))) {
tech_pvt->read_frame.datalen = t * 2;
tech_pvt->read_frame.samples = t;
*frame = &tech_pvt->read_frame;
return SWITCH_STATUS_SUCCESS;
}
return SWITCH_STATUS_FALSE;
......
......@@ -178,10 +178,13 @@ SWITCH_DECLARE(switch_status) switch_core_codec_init(switch_codec *codec, char *
}
if (implementation) {
switch_status status;
codec->codec_interface = codec_interface;
codec->implementation = implementation;
codec->flags = flags;
switch_core_new_memory_pool(&codec->memory_pool);
if ((status = switch_core_new_memory_pool(&codec->memory_pool)) != SWITCH_STATUS_SUCCESS) {
return status;
}
implementation->init(codec, flags, codec_settings);
return SWITCH_STATUS_SUCCESS;
......@@ -258,7 +261,7 @@ SWITCH_DECLARE(switch_status) switch_core_codec_destroy(switch_codec *codec)
SWITCH_DECLARE(switch_status) switch_core_timer_init(switch_timer *timer, char *timer_name, int interval, int samples)
{
switch_timer_interface *timer_interface;
switch_status status;
memset(timer, 0, sizeof(*timer));
if (!(timer_interface = loadable_module_get_timer_interface(timer_name))) {
switch_console_printf(SWITCH_CHANNEL_CONSOLE, "invalid timer %s!\n", timer_name);
......@@ -269,7 +272,9 @@ SWITCH_DECLARE(switch_status) switch_core_timer_init(switch_timer *timer, char *
timer->samples = samples;
timer->samplecount = 0;
timer->timer_interface = timer_interface;
switch_core_new_memory_pool(&timer->memory_pool);
if ((status = switch_core_new_memory_pool(&timer->memory_pool)) != SWITCH_STATUS_SUCCESS) {
return status;
}
timer->timer_interface->timer_init(timer);
return SWITCH_STATUS_SUCCESS;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论