diff options
author | Richard Mudgett <rmudgett@digium.com> | 2017-06-14 13:07:17 -0500 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2017-06-15 09:42:15 -0500 |
commit | 4797a8bb810c7b7c5445f49f367e3f054797fd7c (patch) | |
tree | 08fc0b4e726e74ed43f238fcb127f2b0f181783a /main/stream.c | |
parent | 06265b8c8a7e38707c76b5ca257882223797e612 (diff) |
stream: Ignore declined streams for some topology calls.
* Made ast_format_cap_from_stream_topology() not include any formats from
declined streams.
* Made ast_stream_topology_get_first_stream_by_type() ignore declined
streams to return the first active stream of the type.
* Updated unit tests to check these changes have the expected effect.
Change-Id: Iabbc6a3e8edf263a25fd3056c3c614407c7897df
Diffstat (limited to 'main/stream.c')
-rw-r--r-- | main/stream.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/main/stream.c b/main/stream.c index b61774474..20179f331 100644 --- a/main/stream.c +++ b/main/stream.c @@ -437,9 +437,11 @@ struct ast_format_cap *ast_format_cap_from_stream_topology( } for (i = 0; i < AST_VECTOR_SIZE(&topology->streams); i++) { - struct ast_stream *stream = AST_VECTOR_GET(&topology->streams, i); + struct ast_stream *stream; - if (!stream->formats) { + stream = AST_VECTOR_GET(&topology->streams, i); + if (!stream->formats + || stream->state == AST_STREAM_STATE_REMOVED) { continue; } @@ -458,9 +460,11 @@ struct ast_stream *ast_stream_topology_get_first_stream_by_type( ast_assert(topology != NULL); for (i = 0; i < AST_VECTOR_SIZE(&topology->streams); i++) { - struct ast_stream *stream = AST_VECTOR_GET(&topology->streams, i); + struct ast_stream *stream; - if (stream->type == type) { + stream = AST_VECTOR_GET(&topology->streams, i); + if (stream->type == type + && stream->state != AST_STREAM_STATE_REMOVED) { return stream; } } |