diff options
author | Joshua Colp <jcolp@digium.com> | 2015-11-12 08:24:06 -0400 |
---|---|---|
committer | Joshua Colp <jcolp@digium.com> | 2015-11-12 08:48:42 -0500 |
commit | a159747660932ff442ba737a8addd3268b835147 (patch) | |
tree | 328ccbceadf07cf6e089cb5e66fcc3daea251889 /main/format_cap.c | |
parent | 2954354404e915aa4d20f1ee400c8a3a835fac7b (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.c | 8 |
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); |