streams: Add string metadata capability

Replaces the never used opaque data array.

Updated stream tests to include get/set metadata and
stream clone with metadata.

Added stream metadata dump to "core show channel"

Change-Id: Id7473aa4b374d7ab53046c20e321037ba9a56863
This commit is contained in:
George Joseph
2018-04-13 14:14:47 -06:00
parent f7e7ce6ba2
commit f79a372941
6 changed files with 293 additions and 61 deletions

View File

@@ -1614,19 +1614,29 @@ static char *handle_showchan(struct ast_cli_entry *e, int cmd, struct ast_cli_ar
ast_str_append(&output, 0, " -- Streams --\n");
for (stream_num = 0; stream_num < ast_stream_topology_get_count(ast_channel_get_stream_topology(chan)); stream_num++) {
struct ast_stream *stream = ast_stream_topology_get_stream(ast_channel_get_stream_topology(chan), stream_num);
struct ast_variable *metadata = ast_stream_get_metadata_list(stream);
ast_str_append(&output, 0,
"Name: %s\n"
" Type: %s\n"
" State: %s\n"
" Group: %d\n"
" Formats: %s\n",
" Formats: %s\n"
" Metadata:\n",
ast_stream_get_name(stream),
ast_codec_media_type2str(ast_stream_get_type(stream)),
ast_stream_state2str(ast_stream_get_state(stream)),
ast_stream_get_group(stream),
ast_format_cap_get_names(ast_stream_get_formats(stream), &codec_buf)
);
if (metadata) {
struct ast_variable *v;
for(v = metadata; v; v = v->next) {
ast_str_append(&output, 0, " %s: %s\n", v->name, v->value);
}
ast_variables_destroy(metadata);
}
}
ast_channel_unlock(chan);