summaryrefslogtreecommitdiff
path: root/main/format_cap.c
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 08:48:42 -0500
commita159747660932ff442ba737a8addd3268b835147 (patch)
tree328ccbceadf07cf6e089cb5e66fcc3daea251889 /main/format_cap.c
parent2954354404e915aa4d20f1ee400c8a3a835fac7b (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/format_cap.c')
-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 2221c5339..9e16aa3e1 100644
--- a/main/format_cap.c
+++ b/main/format_cap.c
@@ -231,7 +231,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);