diff options
Diffstat (limited to 'bridges')
-rw-r--r-- | bridges/bridge_holding.c | 14 | ||||
-rw-r--r-- | bridges/bridge_native_rtp.c | 13 | ||||
-rw-r--r-- | bridges/bridge_simple.c | 14 | ||||
-rw-r--r-- | bridges/bridge_softmix.c | 11 |
4 files changed, 20 insertions, 32 deletions
diff --git a/bridges/bridge_holding.c b/bridges/bridge_holding.c index c343cc624..2fd79d09a 100644 --- a/bridges/bridge_holding.c +++ b/bridges/bridge_holding.c @@ -428,21 +428,17 @@ static void deferred_action(struct ast_bridge_channel *bridge_channel, const voi static int unload_module(void) { - ao2_cleanup(holding_bridge.format_capabilities); - holding_bridge.format_capabilities = NULL; - return ast_bridge_technology_unregister(&holding_bridge); + ast_bridge_technology_unregister(&holding_bridge); + return 0; } static int load_module(void) { - if (!(holding_bridge.format_capabilities = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT))) { + if (ast_bridge_technology_register(&holding_bridge)) { + unload_module(); return AST_MODULE_LOAD_DECLINE; } - ast_format_cap_append_by_type(holding_bridge.format_capabilities, AST_MEDIA_TYPE_AUDIO); - ast_format_cap_append_by_type(holding_bridge.format_capabilities, AST_MEDIA_TYPE_VIDEO); - ast_format_cap_append_by_type(holding_bridge.format_capabilities, AST_MEDIA_TYPE_TEXT); - - return ast_bridge_technology_register(&holding_bridge); + return AST_MODULE_LOAD_SUCCESS; } AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Holding bridge module"); diff --git a/bridges/bridge_native_rtp.c b/bridges/bridge_native_rtp.c index a69a97f63..980f46716 100644 --- a/bridges/bridge_native_rtp.c +++ b/bridges/bridge_native_rtp.c @@ -474,20 +474,17 @@ static struct ast_bridge_technology native_rtp_bridge = { static int unload_module(void) { - ao2_t_ref(native_rtp_bridge.format_capabilities, -1, "Dispose of capabilities in module unload"); - return ast_bridge_technology_unregister(&native_rtp_bridge); + ast_bridge_technology_unregister(&native_rtp_bridge); + return 0; } static int load_module(void) { - if (!(native_rtp_bridge.format_capabilities = ast_format_cap_alloc(0))) { + if (ast_bridge_technology_register(&native_rtp_bridge)) { + unload_module(); return AST_MODULE_LOAD_DECLINE; } - ast_format_cap_append_by_type(native_rtp_bridge.format_capabilities, AST_MEDIA_TYPE_AUDIO); - ast_format_cap_append_by_type(native_rtp_bridge.format_capabilities, AST_MEDIA_TYPE_VIDEO); - ast_format_cap_append_by_type(native_rtp_bridge.format_capabilities, AST_MEDIA_TYPE_TEXT); - - return ast_bridge_technology_register(&native_rtp_bridge); + return AST_MODULE_LOAD_SUCCESS; } AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Native RTP bridging module"); diff --git a/bridges/bridge_simple.c b/bridges/bridge_simple.c index 1626a3993..570453500 100644 --- a/bridges/bridge_simple.c +++ b/bridges/bridge_simple.c @@ -76,21 +76,17 @@ static struct ast_bridge_technology simple_bridge = { static int unload_module(void) { - ao2_cleanup(simple_bridge.format_capabilities); - simple_bridge.format_capabilities = NULL; - return ast_bridge_technology_unregister(&simple_bridge); + ast_bridge_technology_unregister(&simple_bridge); + return 0; } static int load_module(void) { - if (!(simple_bridge.format_capabilities = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT))) { + if (ast_bridge_technology_register(&simple_bridge)) { + unload_module(); return AST_MODULE_LOAD_DECLINE; } - ast_format_cap_append_by_type(simple_bridge.format_capabilities, AST_MEDIA_TYPE_AUDIO); - ast_format_cap_append_by_type(simple_bridge.format_capabilities, AST_MEDIA_TYPE_VIDEO); - ast_format_cap_append_by_type(simple_bridge.format_capabilities, AST_MEDIA_TYPE_TEXT); - - return ast_bridge_technology_register(&simple_bridge); + return AST_MODULE_LOAD_SUCCESS; } AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Simple two channel bridging module"); diff --git a/bridges/bridge_softmix.c b/bridges/bridge_softmix.c index 53be7d975..72299209c 100644 --- a/bridges/bridge_softmix.c +++ b/bridges/bridge_softmix.c @@ -1194,18 +1194,17 @@ static struct ast_bridge_technology softmix_bridge = { static int unload_module(void) { - ao2_cleanup(softmix_bridge.format_capabilities); - softmix_bridge.format_capabilities = NULL; - return ast_bridge_technology_unregister(&softmix_bridge); + ast_bridge_technology_unregister(&softmix_bridge); + return 0; } static int load_module(void) { - if (!(softmix_bridge.format_capabilities = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT))) { + if (ast_bridge_technology_register(&softmix_bridge)) { + unload_module(); return AST_MODULE_LOAD_DECLINE; } - ast_format_cap_append(softmix_bridge.format_capabilities, ast_format_slin, 0); - return ast_bridge_technology_register(&softmix_bridge); + return AST_MODULE_LOAD_SUCCESS; } AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Multi-party software based channel mixing"); |