From eed1180192bbe7d23d7c755fc39ead85a64b9a83 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 8 Sep 2006 19:17:23 +0000 Subject: [PATCH] add dynamic buffers git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2585 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/include/switch_types.h | 6 +++++- src/switch_core.c | 16 ++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/include/switch_types.h b/src/include/switch_types.h index 44e3146c1e..9b4dd87bfd 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -739,7 +739,9 @@ typedef struct switch_file_interface switch_file_interface_t; typedef struct switch_speech_interface switch_speech_interface_t; typedef struct switch_directory_interface switch_directory_interface_t; typedef struct switch_core_port_allocator switch_core_port_allocator_t; - +typedef struct switch_audio_bug switch_audio_bug_t; +typedef void (*switch_audio_bug_read_callback_t)(switch_audio_bug_t *); +typedef void (*switch_audio_bug_write_callback_t)(switch_audio_bug_t *); typedef void (*switch_application_function_t)(switch_core_session_t *, char *); typedef void (*switch_event_callback_t)(switch_event_t *); typedef switch_caller_extension_t *(*switch_dialplan_hunt_function_t)(switch_core_session_t *); @@ -784,6 +786,8 @@ typedef switch_xml_t (*switch_xml_search_function_t)(char *section, struct switch_channel; /*! \brief A core session representing a call and all of it's resources */ struct switch_core_session; +/*! \brief An audio bug */ +struct switch_audio_bug; SWITCH_END_EXTERN_C diff --git a/src/switch_core.c b/src/switch_core.c index 7418ad4cff..95ff1364bd 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -49,6 +49,18 @@ #define SWITCH_EVENT_QUEUE_LEN 256 #define SWITCH_SQL_QUEUE_LEN 2000 + +struct switch_audio_bug { + switch_codec_t *read_codec; + switch_codec_t *write_codec; + switch_buffer_t *raw_write_buffer; + switch_buffer_t *raw_read_buffer; + uint8_t data[SWITCH_RECCOMMENDED_BUFFER_SIZE]; + switch_audio_bug_read_callback_t read_callback; + switch_audio_bug_read_callback_t write_callback; + struct switch_audio_bug *next; +}; + struct switch_core_session { uint32_t id; char name[80]; @@ -1565,8 +1577,8 @@ SWITCH_DECLARE(void) switch_core_session_reset(switch_core_session_t *session) session->write_resampler = NULL; /* wipe theese, they will be recreated if need be */ - switch_buffer_destroy(&(*session)->raw_read_buffer); - switch_buffer_destroy(&(*session)->raw_write_buffer); + switch_buffer_destroy(&session->raw_read_buffer); + switch_buffer_destroy(&session->raw_write_buffer); } SWITCH_DECLARE(switch_status_t) switch_core_session_write_frame(switch_core_session_t *session, switch_frame_t *frame,