summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2015-11-12 08:24:06 -0400
committerJoshua Colp <jcolp@digium.com>2015-11-12 09:46:54 -0400
commit4e5bf12b33de8db9c53f571e4c4d5cb094a0d008 (patch)
treeccd3c2dcfdac69b034aa0fab01f2176347726c94 /main
parentb818d70533916aa80af7607f225e0b1e98f41648 (diff)
format_cap: Don't append the 'none' format when appending all.
When appending all formats of a type all the codecs are iterated and added. This operation was incorrectly adding the ast_format_none format which is special in that it is supposed to be used when no format is present. It shouldn't be appended. ASTERISK-25535 Change-Id: I7b00f3bdf4a5f3022e483d6ece602b1e8b12827c
Diffstat (limited to 'main')
-rw-r--r--main/format_cap.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/main/format_cap.c b/main/format_cap.c
index 4739efa0a..8d6046ab2 100644
--- a/main/format_cap.c
+++ b/main/format_cap.c
@@ -265,7 +265,15 @@ int ast_format_cap_append_by_type(struct ast_format_cap *cap, enum ast_media_typ
}
format = ast_format_cache_get(codec->name);
+
+ if (format == ast_format_none) {
+ ao2_ref(format, -1);
+ ao2_ref(codec, -1);
+ continue;
+ }
+
if (!format || (codec != ast_format_get_codec(format))) {
+ ao2_cleanup(format);
format = ast_format_create(codec);
}
ao2_ref(codec, -1);