Add support for parsing SDP attributes, generating SDP attributes, and passing it through.

This support includes codecs such as H.263, H.264, SILK, and CELT. You are able to set up a call and have attribute information pass. This should help considerably with video calls.

Review: https://reviewboard.asterisk.org/r/2005/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@370055 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Joshua Colp
2012-07-13 16:49:40 +00:00
parent 2603707f30
commit a693fd1d87
6 changed files with 180 additions and 41 deletions

View File

@@ -1286,12 +1286,22 @@ unsigned int ast_translate_path_steps(struct ast_format *dst_format, struct ast_
void ast_translate_available_formats(struct ast_format_cap *dest, struct ast_format_cap *src, struct ast_format_cap *result)
{
struct ast_format tmp_fmt;
struct ast_format cur_src;
struct ast_format cur_dest, cur_src;
int src_audio = 0;
int src_video = 0;
int index;
ast_format_cap_copy(result, dest);
ast_format_cap_iter_start(dest);
while (!ast_format_cap_iter_next(dest, &cur_dest)) {
/* We give preference to a joint format structure if possible */
if (ast_format_cap_get_compatible_format(src, &cur_dest, &tmp_fmt)) {
ast_format_cap_add(result, &tmp_fmt);
} else {
/* Otherwise we just use the destination format */
ast_format_cap_add(result, &cur_dest);
}
}
ast_format_cap_iter_end(dest);
/* if we don't have a source format, we just have to try all
possible destination formats */