summaryrefslogtreecommitdiff
path: root/main/stream.c
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2017-06-14 13:07:17 -0500
committerRichard Mudgett <rmudgett@digium.com>2017-06-15 09:42:15 -0500
commit4797a8bb810c7b7c5445f49f367e3f054797fd7c (patch)
tree08fc0b4e726e74ed43f238fcb127f2b0f181783a /main/stream.c
parent06265b8c8a7e38707c76b5ca257882223797e612 (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.c12
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;
}
}