1.【unimrcpclient源码分析】mrcp components
【unimrcpclient源码分析】mrcp components
配置样例包含六个部分。
函数unimrcp_client_components_load主要负责这六个组件的加载,下面详细解析各个组件的加载过程。
加载resource组件时,其结构体mrcp_resource_t定义在mrcp_resource.h,kama源码字符串使用apt_str_table_item_t(定义在mrcp_resource_loader.c),五域论湛源码mrcp_resource_loader_t和mrcp_resource_factory_t分别位于mrcp_resource_loader.c和mrcp_resource_factory.c。构造mrcp_resource_loader内部是mrcp_resource_factory_t *factory,factory通过mrcp_resource_factory_create构建,参数为MRCP_RESOURCE_TYPE_COUNT的第5个值,整型值为4。
加载sip-uac组件时,mrcp_sofia_client_config_t结构体(mrcp_sofiasip_client_agent.c)应用于sofia sip协议栈。智跑ecu源码默认端口和名称设定如下:config->local_port = DEFAULT_SIP_PORT; 默认端口为,config->user_agent_name = DEFAULT_SOFIASIP_UA_NAME; 默认agent name为UniMRCP SofiaSIP,config->origin = DEFAULT_SDP_ORIGIN; 默认sdp origin为UniMRCPClient。IP地址配置通过unimrcp_client_ip_address_get(unimrcp_client.c)实现,红包码字源码可配置为“auto”或“iface”。然后使用mrcp_sofiasip_client_agent_create(mrcp_sofiasip_client_agent.c)创建sofiasip_client。
加载rtsp-uac组件时,指代MRCPv1版本的石子游戏的源码uac组件。rtsp_client_config_t结构体(mrcp_unirtsp_client_agent.h)用于配置。组件加载通过unimrcp_client_rtsp_uac_load函数完成。
加载media-engine组件时,配置项仅包含realtime_rate。unimrcp_client_media_engine_load函数负责加载此组件。mpf_engine_t结构体(mpf_engine.c)用于创建mpf_engine,使用mpf_engine_create函数。
加载rtp-factory组件时,mpf_rtp_config_t结构体(mpf_rtp_descriptor.h)包含可配置项。unimrcp_client_rtp_factory_load函数用于加载此组件,并通过mpf_rtp_termination_factory_create(mpf_rtp_termination_factory.c)创建相应的工厂。