freeswitch结构之switch_core_session_t

struct switch_core_session {
 switch_memory_pool_t *pool;
 switch_thread_t *thread;
 switch_thread_id_t thread_id;
 switch_endpoint_interface_t *endpoint_interface;
 switch_size_t id;
 switch_session_flag_t flags;
 switch_channel_t *channel;

 switch_io_event_hooks_t event_hooks;
 switch_codec_t *read_codec;
 switch_codec_t *real_read_codec;
 switch_codec_t *write_codec;
 switch_codec_t *real_write_codec;
 switch_codec_t *video_read_codec;
 switch_codec_t *video_write_codec;

 switch_codec_implementation_t read_impl;
 switch_codec_implementation_t real_read_impl;
 switch_codec_implementation_t write_impl;
 switch_codec_implementation_t video_read_impl;
 switch_codec_implementation_t video_write_impl;

 switch_audio_resampler_t *read_resampler;
 switch_audio_resampler_t *write_resampler;

 switch_mutex_t *mutex;
 switch_mutex_t *resample_mutex;
 switch_mutex_t *codec_read_mutex;
 switch_mutex_t *codec_write_mutex;
 switch_thread_cond_t *cond;
 switch_mutex_t *frame_read_mutex;

 switch_thread_rwlock_t *rwlock;
 switch_thread_rwlock_t *io_rwlock;

 void *streams[SWITCH_MAX_STREAMS];
 int stream_count;

 char uuid_str[SWITCH_UUID_FORMATTED_LENGTH + 1];
 void *private_info[SWITCH_CORE_SESSION_MAX_PRIVATES];
 switch_queue_t *event_queue;
 switch_queue_t *message_queue;
 switch_queue_t *signal_data_queue;
 switch_queue_t *private_event_queue;
 switch_queue_t *private_event_queue_pri;
 switch_thread_rwlock_t *bug_rwlock;
 switch_media_bug_t *bugs;
 switch_app_log_t *app_log;
 uint32_t stack_count;

 switch_buffer_t *raw_write_buffer;
 switch_frame_t raw_write_frame;
 switch_frame_t enc_write_frame;
 uint8_t raw_write_buf[SWITCH_RECOMMENDED_BUFFER_SIZE];
 uint8_t enc_write_buf[SWITCH_RECOMMENDED_BUFFER_SIZE];

 switch_buffer_t *raw_read_buffer;
 switch_frame_t raw_read_frame;
 switch_frame_t enc_read_frame;
 uint8_t raw_read_buf[SWITCH_RECOMMENDED_BUFFER_SIZE];
 uint8_t enc_read_buf[SWITCH_RECOMMENDED_BUFFER_SIZE];
 switch_codec_t bug_codec;
 uint32_t read_frame_count;
 uint32_t track_duration;
 uint32_t track_id;
 switch_log_level_t loglevel;
 uint32_t soft_lock;
 switch_ivr_dmachine_t *dmachine[2];
 plc_state_t *plc;

 switch_media_handle_t *media_handle;
 uint32_t decoder_errors;
};

#0 0x0000725215894a24 in pthread_mutex_lock () from /lib64/libpthread.so.0 #1 0x000072521831bb19 in fspr_thread_mutex_lock (mutex=<optimized out>) at locks/unix/thread_mutex.c:92 #2 0x0000725217f9d795 in switch_mutex_lock (lock=<optimized out>) at src/switch_apr.c:301 #3 0x0000725188977cec in conference_floor_control_state_set (conference=conference@entry=0x7250f0066538, new_state=new_state@entry=SWITCH_FLOOR_STATE_IDLE, revoke_cause=revoke_cause@entry=0) at mod_conference.c:9751 #4 0x0000725188978ea6 in conference_member_floor_control_deinit (member=member@entry=0x7251180dfa90) at mod_conference.c:10964 #5 0x00007251889a16a8 in conference_member_del (conference=0x7250f0066538, member=member@entry=0x7251180dfa90) at conference_member.c:1208 #6 0x000072518897554e in conference_function (session=<optimized out>, data=<optimized out>) at mod_conference.c:7058 #7 0x0000725217fd40ef in switch_core_session_exec (session=session@entry=0x72520c01b2f8, application_interface=application_interface@entry=0x13e7d1e8, arg=arg@entry=0x7250f0025eb0 "$1@ultrawideband") at src/switch_core_session.c:2965 #8 0x0000725217fd488f in switch_core_session_execute_application_get_flags (session=session@entry=0x72520c01b2f8, app=0x7250f0025ea0 "conference", arg=0x7250f0025eb0 "$1@ultrawideband", flags=flags@entry=0x0) at src/switch_core_session.c:2825 #9 0x0000725217fd8bf2 in switch_core_standard_on_execute (session=0x72520c01b2f8) at src/switch_core_state_machine.c:350 #10 switch_core_session_run (session=0x72520c01b2f8) at src/switch_core_state_machine.c:647 #11 0x0000725217fd1a6e in switch_core_session_thread (thread=<optimized out>, obj=0x72520c01b2f8) at src/switch_core_session.c:1727 #12 0x0000725217fcd15b in switch_core_session_thread_pool_worker (thread=0x72520c0455b0, obj=<optimized out>) at src/switch_core_session.c:1791 #13 0x0000725218321a3c in dummy_worker (opaque=0x72520c0455b0) at threadproc/unix/thread.c:151 #14 0x000072521589217a in start_thread () from /lib64/libpthread.so.0 #15 0x0000725214e44dc3 in clone () from /lib64/libc.so.6 分析以上FreeSWITCH gdb调试输出
最新发布
06-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值