mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-22 20:56:39 +00:00
format_cap: Perform codec lookups by pointer instead of name
ASTERISK-28416 #close Change-Id: I069420875ebdbcaada52d92599a5f7de3cb2cdf4
This commit is contained in:
committed by
George Joseph
parent
cc71be0078
commit
4964302984
@@ -555,3 +555,24 @@ int ast_format_cache_is_slinear(struct ast_format *format)
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct ast_format *ast_format_cache_get_by_codec(const struct ast_codec *codec)
|
||||
{
|
||||
struct ast_format *format;
|
||||
struct ao2_iterator it;
|
||||
|
||||
for (it = ao2_iterator_init(formats, 0);
|
||||
(format = ao2_iterator_next(&it));
|
||||
ao2_ref(format, -1)) {
|
||||
struct ast_codec *candidate = ast_format_get_codec(format);
|
||||
if (codec == candidate) {
|
||||
ao2_cleanup(candidate);
|
||||
ao2_iterator_destroy(&it);
|
||||
return format;
|
||||
}
|
||||
ao2_cleanup(candidate);
|
||||
}
|
||||
|
||||
ao2_iterator_destroy(&it);
|
||||
return NULL;
|
||||
}
|
||||
|
@@ -232,7 +232,7 @@ int ast_format_cap_append_by_type(struct ast_format_cap *cap, enum ast_media_typ
|
||||
continue;
|
||||
}
|
||||
|
||||
format = ast_format_cache_get(codec->name);
|
||||
format = ast_format_cache_get_by_codec(codec);
|
||||
|
||||
if (format == ast_format_none) {
|
||||
ao2_ref(format, -1);
|
||||
|
Reference in New Issue
Block a user