summaryrefslogtreecommitdiff
path: root/main/channel_internal_api.c
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2017-02-22 11:00:57 +0000
committerJoshua Colp <jcolp@digium.com>2017-02-23 18:31:15 +0000
commit6cc890b880a6d50b3236860c3ab89e26ba59a7d3 (patch)
tree2e3c881e0f076ed443d8d47230e1597a3dbb4df5 /main/channel_internal_api.c
parent911252d7b54f8ee7af30f71e26e7a26ef881d316 (diff)
channel: Add support for writing to a specific stream.
This change adds an ast_write_stream function which allows writing a frame to a specific media stream. It also moves ast_write() to using this underneath by writing media frames provided to it to the default streams of the channel. Existing functionality (such as audiohooks, framehooks, etc) are limited to being applied to the default stream only. Unit tests have also been added which test the behavior of both non-multistream and multistream channels to confirm that the write() and write_stream() callbacks are invoked appropriately. ASTERISK-26793 Change-Id: I4df20d1b65bd4d787fce0b4b478e19d2dfea245c
Diffstat (limited to 'main/channel_internal_api.c')
-rw-r--r--main/channel_internal_api.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/main/channel_internal_api.c b/main/channel_internal_api.c
index 1934eb9a4..362bd1a3d 100644
--- a/main/channel_internal_api.c
+++ b/main/channel_internal_api.c
@@ -1816,6 +1816,15 @@ struct ast_stream_topology *ast_channel_set_stream_topology(struct ast_channel *
return new_topology;
}
+struct ast_stream *ast_channel_get_default_stream(struct ast_channel *chan,
+ enum ast_media_type type)
+{
+ ast_assert(chan != NULL);
+ ast_assert(type < AST_MEDIA_TYPE_END);
+
+ return chan->default_streams[type];
+}
+
void ast_channel_internal_swap_stream_topology(struct ast_channel *chan1,
struct ast_channel *chan2)
{