diff options
author | Joshua Colp <jcolp@digium.com> | 2017-05-02 05:19:12 -0500 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2017-05-02 05:19:12 -0500 |
commit | 090c6b702ee7b92a48d9bdc1dad46526fca1403f (patch) | |
tree | 6d88824de91257a190d62b7cfd7608404f0e2f5b | |
parent | 9af53d3563047f9849cdaf3883a6b00340242236 (diff) | |
parent | 5c1851cbc0e31cc1fee108983b1937212002860c (diff) |
Merge "stream: Make ast_stream_topology_create_from_format_cap() allow NULL cap."
-rw-r--r-- | include/asterisk/stream.h | 2 | ||||
-rw-r--r-- | main/channel_internal_api.c | 8 | ||||
-rw-r--r-- | main/stream.c | 6 |
3 files changed, 5 insertions, 11 deletions
diff --git a/include/asterisk/stream.h b/include/asterisk/stream.h index 924bfb65c..1e07407a9 100644 --- a/include/asterisk/stream.h +++ b/include/asterisk/stream.h @@ -356,7 +356,7 @@ int ast_stream_topology_set_stream(struct ast_stream_topology *topology, * creates a topology and separates the media types in format_cap into * separate streams. * - * \param caps The format capabilities structure + * \param caps The format capabilities structure (NULL creates an empty topology) * * \retval non-NULL success * \retval NULL failure diff --git a/main/channel_internal_api.c b/main/channel_internal_api.c index d838ea80c..7f32b2196 100644 --- a/main/channel_internal_api.c +++ b/main/channel_internal_api.c @@ -852,14 +852,10 @@ void ast_channel_nativeformats_set(struct ast_channel *chan, return; } - if ((!ast_channel_is_multistream(chan)) || !value) { + if (!ast_channel_is_multistream(chan) || !value) { struct ast_stream_topology *new_topology; - if (!value) { - new_topology = ast_stream_topology_alloc(); - } else { - new_topology = ast_stream_topology_create_from_format_cap(value); - } + new_topology = ast_stream_topology_create_from_format_cap(value); ast_channel_internal_set_stream_topology(chan, new_topology); } } diff --git a/main/stream.c b/main/stream.c index cf2633e1b..39b6b1b13 100644 --- a/main/stream.c +++ b/main/stream.c @@ -345,11 +345,9 @@ struct ast_stream_topology *ast_stream_topology_create_from_format_cap( struct ast_stream_topology *topology; enum ast_media_type type; - ast_assert(cap != NULL); - topology = ast_stream_topology_alloc(); - if (!topology) { - return NULL; + if (!topology || !cap || !ast_format_cap_count(cap)) { + return topology; } for (type = AST_MEDIA_TYPE_UNKNOWN + 1; type < AST_MEDIA_TYPE_END; type++) { |