Asterisk - The Open Source Telephony Project GIT-master-f36a736
Macros | Functions | Variables
format_cache.h File Reference

Media Format Cache API. More...

Go to the source code of this file.

Macros

#define ast_format_cache_get(name)    __ast_format_cache_get((name), "ast_format_cache_get", __FILE__, __LINE__, __PRETTY_FUNCTION__)
 Retrieve a named format from the cache. More...
 
#define ast_t_format_cache_get(name, tag)    __ast_format_cache_get((name), (tag), __FILE__, __LINE__, __PRETTY_FUNCTION__)
 

Functions

struct ast_format__ast_format_cache_get (const char *name, const char *tag, const char *file, int line, const char *func)
 
struct ast_formatast_format_cache_get_by_codec (const struct ast_codec *codec)
 Retrieve a format from the cache by its codec. More...
 
struct ast_formatast_format_cache_get_slin_by_rate (unsigned int rate)
 Retrieve the best signed linear format given a sample rate. More...
 
int ast_format_cache_init (void)
 Initialize format cache support within the core. More...
 
int ast_format_cache_is_slinear (struct ast_format *format)
 Determines if a format is one of the cached slin formats. More...
 
int ast_format_cache_set (struct ast_format *format)
 Set a named format cache entry. More...
 

Variables

struct ast_formatast_format_adpcm
 Built-in cached adpcm format. More...
 
struct ast_formatast_format_alaw
 Built-in cached alaw format. More...
 
struct ast_formatast_format_codec2
 Built-in cached Codec 2 format. More...
 
struct ast_formatast_format_g719
 Built-in cached g719 format. More...
 
struct ast_formatast_format_g722
 Built-in cached g722 format. More...
 
struct ast_formatast_format_g723
 Built-in cached g723.1 format. More...
 
struct ast_formatast_format_g726
 Built-in cached g726 format. More...
 
struct ast_formatast_format_g726_aal2
 Built-in cached g726 aal2 format. More...
 
struct ast_formatast_format_g729
 Built-in cached g729 format. More...
 
struct ast_formatast_format_gsm
 Built-in cached gsm format. More...
 
struct ast_formatast_format_h261
 Built-in cached h261 format. More...
 
struct ast_formatast_format_h263
 Built-in cached h263 format. More...
 
struct ast_formatast_format_h263p
 Built-in cached h263 plus format. More...
 
struct ast_formatast_format_h264
 Built-in cached h264 format. More...
 
struct ast_formatast_format_h265
 Built-in cached h265 format. More...
 
struct ast_formatast_format_ilbc
 Built-in cached ilbc format. More...
 
struct ast_formatast_format_jpeg
 Built-in cached jpeg format. More...
 
struct ast_formatast_format_lpc10
 Built-in cached ilbc format. More...
 
struct ast_formatast_format_mp4
 Built-in cached mp4 format. More...
 
struct ast_formatast_format_none
 Built-in "null" format. More...
 
struct ast_formatast_format_opus
 Built-in cached opus format. More...
 
struct ast_formatast_format_png
 Built-in cached png format. More...
 
struct ast_formatast_format_silk12
 
struct ast_formatast_format_silk16
 
struct ast_formatast_format_silk24
 
struct ast_formatast_format_silk8
 Built-in SILK format. More...
 
struct ast_formatast_format_siren14
 Built-in cached siren14 format. More...
 
struct ast_formatast_format_siren7
 Built-in cached siren7 format. More...
 
struct ast_formatast_format_slin
 Built-in cached signed linear 8kHz format. More...
 
struct ast_formatast_format_slin12
 Built-in cached signed linear 12kHz format. More...
 
struct ast_formatast_format_slin16
 Built-in cached signed linear 16kHz format. More...
 
struct ast_formatast_format_slin192
 Built-in cached signed linear 192kHz format. More...
 
struct ast_formatast_format_slin24
 Built-in cached signed linear 24kHz format. More...
 
struct ast_formatast_format_slin32
 Built-in cached signed linear 32kHz format. More...
 
struct ast_formatast_format_slin44
 Built-in cached signed linear 44kHz format. More...
 
struct ast_formatast_format_slin48
 Built-in cached signed linear 48kHz format. More...
 
struct ast_formatast_format_slin96
 Built-in cached signed linear 96kHz format. More...
 
struct ast_formatast_format_speex
 Built-in cached speex format. More...
 
struct ast_formatast_format_speex16
 Built-in cached speex at 16kHz format. More...
 
struct ast_formatast_format_speex32
 Built-in cached speex at 32kHz format. More...
 
struct ast_formatast_format_t140
 Built-in cached t140 format. More...
 
struct ast_formatast_format_t140_red
 Built-in cached t140 red format. More...
 
struct ast_formatast_format_t38
 Built-in cached T.38 format. More...
 
struct ast_formatast_format_ulaw
 Built-in cached ulaw format. More...
 
struct ast_formatast_format_vp8
 Built-in cached vp8 format. More...
 
struct ast_formatast_format_vp9
 Built-in cached vp9 format. More...
 

Detailed Description

Media Format Cache API.

Author
Joshua Colp jcolp.nosp@m.@dig.nosp@m.ium.c.nosp@m.om

Definition in file format_cache.h.

Macro Definition Documentation

◆ ast_format_cache_get

#define ast_format_cache_get (   name)     __ast_format_cache_get((name), "ast_format_cache_get", __FILE__, __LINE__, __PRETTY_FUNCTION__)

Retrieve a named format from the cache.

Parameters
nameName of the cached format
Return values
non-NULLif found
NULLif not found
Note
The returned format has its reference count incremented. It must be dropped using ao2_ref or ao2_cleanup.

Definition at line 278 of file format_cache.h.

◆ ast_t_format_cache_get

#define ast_t_format_cache_get (   name,
  tag 
)     __ast_format_cache_get((name), (tag), __FILE__, __LINE__, __PRETTY_FUNCTION__)

Definition at line 280 of file format_cache.h.

Function Documentation

◆ __ast_format_cache_get()

struct ast_format * __ast_format_cache_get ( const char *  name,
const char *  tag,
const char *  file,
int  line,
const char *  func 
)

Definition at line 502 of file format_cache.c.

504{
505 if (ast_strlen_zero(name)) {
506 return NULL;
507 }
508
509 return __ao2_find(formats, name, OBJ_SEARCH_KEY, tag, file, line, func);
510}
void * __ao2_find(struct ao2_container *c, const void *arg, enum search_flags flags, const char *tag, const char *file, int line, const char *func)
@ OBJ_SEARCH_KEY
The arg parameter is a search key, but is not an object.
Definition: astobj2.h:1101
static const char name[]
Definition: format_mp3.c:68
#define NULL
Definition: resample.c:96
static force_inline int attribute_pure ast_strlen_zero(const char *s)
Definition: strings.h:65
Definition: file.c:69

References __ao2_find(), ast_strlen_zero(), make_ari_stubs::file, name, NULL, and OBJ_SEARCH_KEY.

◆ ast_format_cache_get_by_codec()

struct ast_format * ast_format_cache_get_by_codec ( const struct ast_codec codec)

Retrieve a format from the cache by its codec.

Parameters
codecThe codec to search by
Return values
non-NULLif found
NULLif not found
Note
The returned format has its reference count incremented. It must be dropped using ao2_ref or ao2_cleanup.

Definition at line 551 of file format_cache.c.

552{
553 struct ast_format *format;
554 struct ao2_iterator it;
555
556 for (it = ao2_iterator_init(formats, 0);
557 (format = ao2_iterator_next(&it));
558 ao2_ref(format, -1)) {
559 struct ast_codec *candidate = ast_format_get_codec(format);
560 if (codec == candidate) {
561 ao2_cleanup(candidate);
563 return format;
564 }
565 ao2_cleanup(candidate);
566 }
567
569 return NULL;
570}
#define ao2_iterator_next(iter)
Definition: astobj2.h:1911
#define ao2_cleanup(obj)
Definition: astobj2.h:1934
struct ao2_iterator ao2_iterator_init(struct ao2_container *c, int flags) attribute_warn_unused_result
Create an iterator for a container.
#define ao2_ref(o, delta)
Reference/unreference an object and return the old refcount.
Definition: astobj2.h:459
void ao2_iterator_destroy(struct ao2_iterator *iter)
Destroy a container iterator.
struct ast_codec * ast_format_get_codec(const struct ast_format *format)
Get the codec associated with a format.
Definition: format.c:324
When we need to walk through a container, we use an ao2_iterator to keep track of the current positio...
Definition: astobj2.h:1821
Represents a media codec within Asterisk.
Definition: codec.h:42
Definition of a media format.
Definition: format.c:43

References ao2_cleanup, ao2_iterator_destroy(), ao2_iterator_init(), ao2_iterator_next, ao2_ref, ast_format_get_codec(), and NULL.

Referenced by ast_format_cap_append_by_type().

◆ ast_format_cache_get_slin_by_rate()

struct ast_format * ast_format_cache_get_slin_by_rate ( unsigned int  rate)

Retrieve the best signed linear format given a sample rate.

Parameters
rateThe sample rate

This is a convenience function that returns one of the global ast_format_slinxxx formats.

Returns
pointer to the signed linear format
Note
The returned format has NOT had its reference count incremented.

Definition at line 512 of file format_cache.c.

513{
514 if (rate >= 192000) {
515 return ast_format_slin192;
516 } else if (rate >= 96000) {
517 return ast_format_slin96;
518 } else if (rate >= 48000) {
519 return ast_format_slin48;
520 } else if (rate >= 44100) {
521 return ast_format_slin44;
522 } else if (rate >= 32000) {
523 return ast_format_slin32;
524 } else if (rate >= 24000) {
525 return ast_format_slin24;
526 } else if (rate >= 16000) {
527 return ast_format_slin16;
528 } else if (rate >= 12000) {
529 return ast_format_slin12;
530 }
531 return ast_format_slin;
532}
struct ast_format * ast_format_slin44
Built-in cached signed linear 44kHz format.
Definition: format_cache.c:66
struct ast_format * ast_format_slin24
Built-in cached signed linear 24kHz format.
Definition: format_cache.c:56
struct ast_format * ast_format_slin32
Built-in cached signed linear 32kHz format.
Definition: format_cache.c:61
struct ast_format * ast_format_slin192
Built-in cached signed linear 192kHz format.
Definition: format_cache.c:81
struct ast_format * ast_format_slin16
Built-in cached signed linear 16kHz format.
Definition: format_cache.c:51
struct ast_format * ast_format_slin96
Built-in cached signed linear 96kHz format.
Definition: format_cache.c:76
struct ast_format * ast_format_slin48
Built-in cached signed linear 48kHz format.
Definition: format_cache.c:71
struct ast_format * ast_format_slin
Built-in cached signed linear 8kHz format.
Definition: format_cache.c:41
struct ast_format * ast_format_slin12
Built-in cached signed linear 12kHz format.
Definition: format_cache.c:46

References ast_format_slin, ast_format_slin12, ast_format_slin16, ast_format_slin192, ast_format_slin24, ast_format_slin32, ast_format_slin44, ast_format_slin48, and ast_format_slin96.

Referenced by ast_channel_make_compatible_helper(), audiohook_list_translate_to_slin(), audiohook_read_frame_both(), audiohook_read_frame_helper(), audiohook_read_frame_single(), audiohook_set_internal_rate(), generate_interpolated_slin(), init_jack_data(), mixmonitor_thread(), mp3_exec(), resamp_new(), set_softmix_bridge_data(), snoop_determine_format(), softmix_bridge_unsuspend(), softmix_mixing_loop(), softmix_translate_helper_change_rate(), softmix_translate_helper_init(), and spy_generate().

◆ ast_format_cache_init()

int ast_format_cache_init ( void  )

Initialize format cache support within the core.

Return values
0success
-1failure

Definition at line 364 of file format_cache.c.

365{
368 if (!formats) {
369 return -1;
370 }
371
373
374 return 0;
375}
int ast_register_cleanup(void(*func)(void))
Register a function to be executed before Asterisk gracefully exits.
Definition: clicompat.c:19
@ AO2_ALLOC_OPT_LOCK_RWLOCK
Definition: astobj2.h:365
#define ao2_container_alloc_hash(ao2_options, container_options, n_buckets, hash_fn, sort_fn, cmp_fn)
Allocate and initialize a hash container with the desired number of buckets.
Definition: astobj2.h:1303
#define CACHE_BUCKETS
Number of buckets to use for the media format cache (should be prime for performance reasons)
Definition: format_cache.c:257
static int format_cmp_cb(void *obj, void *arg, int flags)
Definition: format_cache.c:281
static void format_cache_shutdown(void)
Function called when the process is shutting down.
Definition: format_cache.c:311
static int format_hash_cb(const void *obj, int flags)
Definition: format_cache.c:262

References AO2_ALLOC_OPT_LOCK_RWLOCK, ao2_container_alloc_hash, ast_register_cleanup(), CACHE_BUCKETS, format_cache_shutdown(), format_cmp_cb(), format_hash_cb(), and NULL.

Referenced by asterisk_daemon().

◆ ast_format_cache_is_slinear()

int ast_format_cache_is_slinear ( struct ast_format format)

Determines if a format is one of the cached slin formats.

Parameters
formatThe format to check
Return values
0if the format is not an SLIN format
1if the format is an SLIN format

Definition at line 534 of file format_cache.c.

535{
545 return 1;
546 }
547
548 return 0;
549}
enum ast_format_cmp_res ast_format_cmp(const struct ast_format *format1, const struct ast_format *format2)
Compare two formats.
Definition: format.c:201
@ AST_FORMAT_CMP_EQUAL
Definition: format.h:36

References ast_format_cmp(), AST_FORMAT_CMP_EQUAL, ast_format_slin, ast_format_slin12, ast_format_slin16, ast_format_slin192, ast_format_slin24, ast_format_slin32, ast_format_slin44, ast_format_slin48, and ast_format_slin96.

Referenced by __ast_read(), ast_channel_make_compatible_helper(), ast_dsp_call_progress(), ast_dsp_process(), ast_dsp_silence_noise_with_energy(), ast_frame_adjust_volume(), ast_frame_adjust_volume_float(), ast_rtp_interpret(), ast_slinfactory_init_with_format(), and ast_write_stream().

◆ ast_format_cache_set()

int ast_format_cache_set ( struct ast_format format)

Set a named format cache entry.

Parameters
formatA pointer to the format to cache
Return values
0success
-1failure

Definition at line 474 of file format_cache.c.

475{
477 struct ast_format *old_format;
478
479 ast_assert(format != NULL);
480
482 return -1;
483 }
484
486 if (old_format) {
487 ao2_unlink_flags(formats, old_format, OBJ_NOLOCK);
488 }
490
491 set_cached_format(ast_format_get_name(format), format);
492
493 ast_verb(5, "%s cached format with name '%s'\n",
494 old_format ? "Updated" : "Created",
495 ast_format_get_name(format));
496
497 ao2_cleanup(old_format);
498
499 return 0;
500}
ast_mutex_t lock
Definition: app_sla.c:331
#define ao2_unlink_flags(container, obj, flags)
Remove an object from a container.
Definition: astobj2.h:1600
#define ao2_link_flags(container, obj, flags)
Add an object to a container.
Definition: astobj2.h:1554
#define ao2_find(container, arg, flags)
Definition: astobj2.h:1736
@ OBJ_NOLOCK
Assume that the ao2_container is already locked.
Definition: astobj2.h:1063
const char * ast_format_get_name(const struct ast_format *format)
Get the name associated with a format.
Definition: format.c:334
static void set_cached_format(const char *name, struct ast_format *format)
Definition: format_cache.c:377
#define ast_verb(level,...)
#define SCOPED_AO2WRLOCK(varname, obj)
scoped lock specialization for ao2 write locks.
Definition: lock.h:614
#define ast_assert(a)
Definition: utils.h:739

References ao2_cleanup, ao2_find, ao2_link_flags, ao2_unlink_flags, ast_assert, ast_format_get_name(), ast_strlen_zero(), ast_verb, lock, NULL, OBJ_NOLOCK, OBJ_SEARCH_KEY, SCOPED_AO2WRLOCK, and set_cached_format().

Referenced by AST_TEST_DEFINE().

Variable Documentation

◆ ast_format_adpcm

struct ast_format* ast_format_adpcm
extern

◆ ast_format_alaw

struct ast_format* ast_format_alaw
extern

◆ ast_format_codec2

struct ast_format* ast_format_codec2
extern

Built-in cached Codec 2 format.

Built-in cached Codec 2 format.

Definition at line 226 of file format_cache.c.

Referenced by codec2_sample(), format_cache_shutdown(), load_module(), set_cached_format(), and unload_module().

◆ ast_format_g719

struct ast_format* ast_format_g719
extern

◆ ast_format_g722

struct ast_format* ast_format_g722
extern

◆ ast_format_g723

struct ast_format* ast_format_g723
extern

◆ ast_format_g726

struct ast_format* ast_format_g726
extern

◆ ast_format_g726_aal2

struct ast_format* ast_format_g726_aal2
extern

◆ ast_format_g729

struct ast_format* ast_format_g729
extern

◆ ast_format_gsm

struct ast_format* ast_format_gsm
extern

◆ ast_format_h261

struct ast_format* ast_format_h261
extern

◆ ast_format_h263

struct ast_format* ast_format_h263
extern

◆ ast_format_h263p

struct ast_format* ast_format_h263p
extern

◆ ast_format_h264

struct ast_format* ast_format_h264
extern

◆ ast_format_h265

struct ast_format* ast_format_h265
extern

Built-in cached h265 format.

Definition at line 181 of file format_cache.c.

Referenced by ast_rtp_engine_init(), chan_pjsip_indicate(), format_cache_shutdown(), and set_cached_format().

◆ ast_format_ilbc

struct ast_format* ast_format_ilbc
extern

◆ ast_format_jpeg

struct ast_format* ast_format_jpeg
extern

◆ ast_format_lpc10

struct ast_format* ast_format_lpc10
extern

◆ ast_format_mp4

struct ast_format* ast_format_mp4
extern

◆ ast_format_none

struct ast_format* ast_format_none
extern

◆ ast_format_opus

struct ast_format* ast_format_opus
extern

◆ ast_format_png

struct ast_format* ast_format_png
extern

◆ ast_format_silk12

struct ast_format* ast_format_silk12
extern

Definition at line 252 of file format_cache.c.

Referenced by format_cache_shutdown(), and set_cached_format().

◆ ast_format_silk16

struct ast_format* ast_format_silk16
extern

Definition at line 253 of file format_cache.c.

Referenced by format_cache_shutdown(), and set_cached_format().

◆ ast_format_silk24

struct ast_format* ast_format_silk24
extern

Definition at line 254 of file format_cache.c.

Referenced by format_cache_shutdown(), and set_cached_format().

◆ ast_format_silk8

struct ast_format* ast_format_silk8
extern

Built-in SILK format.

Built-in SILK format.

Definition at line 251 of file format_cache.c.

Referenced by format_cache_shutdown(), and set_cached_format().

◆ ast_format_siren14

struct ast_format* ast_format_siren14
extern

◆ ast_format_siren7

struct ast_format* ast_format_siren7
extern

◆ ast_format_slin

struct ast_format* ast_format_slin
extern

Built-in cached signed linear 8kHz format.

Definition at line 41 of file format_cache.c.

Referenced by _moh_class_malloc(), action_originate(), alloc_playback_chan(), announce_to_dial(), ast_audiosocket_receive_frame(), ast_channel_start_silence_generator(), ast_format_cache_get_slin_by_rate(), ast_format_cache_is_slinear(), ast_format_compatibility_bitfield2format(), ast_format_compatibility_codec2bitfield(), ast_format_compatibility_format2bitfield(), ast_frame_slinear_sum(), ast_rtp_engine_init(), ast_slinfactory_init(), ast_speech_new(), ast_write_stream(), audiosocket_exec(), background_detect_exec(), broadcast_exec(), build_conf(), chanspy_exec(), conf_run(), conf_start_record(), create_test_frame(), dahdi_format_to_cached(), dahdi_read(), dahdi_write(), dahdiscan_exec(), derive_format_from_cap(), dictate_exec(), do_notify(), do_waiting(), eagi_exec(), extenspy_exec(), fax_detect_framehook(), fax_gateway_framehook(), format_cache_shutdown(), g722_sample(), generate_interpolated_slin(), generic_fax_exec(), generic_recall(), handle_exec(), handle_participant_join(), handle_recordfile(), handle_speechcreate(), handle_speechrecognize(), holding_bridge_join(), iax_frame_wrap(), isAnsweringMachine(), linear_alloc(), linear_generator(), load_module(), make_silence(), measurenoise(), meetme_menu_admin_extended(), moh_parse_options(), new_outgoing(), ooh323_rtp_read(), orig_app(), orig_exten(), originate_exec(), participant_reaction_announcer_join(), playtones_alloc(), playtones_generator(), prepare_bridge_media_channel(), prepare_bridge_moh_channel(), rec_request(), recalling_enter(), record_exec(), retransfer_enter(), send_waveform_to_channel(), set_cached_format(), set_read_to_slin(), silence_generator_generate(), slin8_sample(), socket_process_helper(), spandsp_fax_gateway_process(), spandsp_fax_gw_t30_gen(), spandsp_fax_read(), spandsp_v21_detect(), spy_generate(), tonepair_alloc(), and tonepair_generator().

◆ ast_format_slin12

struct ast_format* ast_format_slin12
extern

Built-in cached signed linear 12kHz format.

Definition at line 46 of file format_cache.c.

Referenced by ast_format_cache_get_slin_by_rate(), ast_format_cache_is_slinear(), ast_rtp_engine_init(), format_cache_shutdown(), load_module(), and set_cached_format().

◆ ast_format_slin16

struct ast_format* ast_format_slin16
extern

◆ ast_format_slin192

struct ast_format* ast_format_slin192
extern

Built-in cached signed linear 192kHz format.

Definition at line 81 of file format_cache.c.

Referenced by ast_format_cache_get_slin_by_rate(), ast_format_cache_is_slinear(), ast_rtp_engine_init(), format_cache_shutdown(), load_module(), and set_cached_format().

◆ ast_format_slin24

struct ast_format* ast_format_slin24
extern

Built-in cached signed linear 24kHz format.

Definition at line 56 of file format_cache.c.

Referenced by ast_format_cache_get_slin_by_rate(), ast_format_cache_is_slinear(), ast_rtp_engine_init(), format_cache_shutdown(), load_module(), and set_cached_format().

◆ ast_format_slin32

struct ast_format* ast_format_slin32
extern

Built-in cached signed linear 32kHz format.

Definition at line 61 of file format_cache.c.

Referenced by ast_format_cache_get_slin_by_rate(), ast_format_cache_is_slinear(), ast_rtp_engine_init(), format_cache_shutdown(), load_module(), and set_cached_format().

◆ ast_format_slin44

struct ast_format* ast_format_slin44
extern

Built-in cached signed linear 44kHz format.

Definition at line 66 of file format_cache.c.

Referenced by ast_format_cache_get_slin_by_rate(), ast_format_cache_is_slinear(), ast_rtp_engine_init(), format_cache_shutdown(), load_module(), and set_cached_format().

◆ ast_format_slin48

struct ast_format* ast_format_slin48
extern

Built-in cached signed linear 48kHz format.

Definition at line 71 of file format_cache.c.

Referenced by ast_format_cache_get_slin_by_rate(), ast_format_cache_is_slinear(), ast_rtp_engine_init(), format_cache_shutdown(), load_module(), and set_cached_format().

◆ ast_format_slin96

struct ast_format* ast_format_slin96
extern

Built-in cached signed linear 96kHz format.

Definition at line 76 of file format_cache.c.

Referenced by ast_format_cache_get_slin_by_rate(), ast_format_cache_is_slinear(), ast_rtp_engine_init(), format_cache_shutdown(), load_module(), and set_cached_format().

◆ ast_format_speex

struct ast_format* ast_format_speex
extern

◆ ast_format_speex16

struct ast_format* ast_format_speex16
extern

◆ ast_format_speex32

struct ast_format* ast_format_speex32
extern

Built-in cached speex at 32kHz format.

Definition at line 141 of file format_cache.c.

Referenced by ast_rtp_engine_init(), format_cache_shutdown(), load_module(), and set_cached_format().

◆ ast_format_t140

struct ast_format* ast_format_t140
extern

◆ ast_format_t140_red

struct ast_format* ast_format_t140_red
extern

◆ ast_format_t38

struct ast_format* ast_format_t38
extern

Built-in cached T.38 format.

Definition at line 241 of file format_cache.c.

Referenced by format_cache_shutdown(), set_cached_format(), and t38_create_media_state().

◆ ast_format_ulaw

struct ast_format* ast_format_ulaw
extern

◆ ast_format_vp8

struct ast_format* ast_format_vp8
extern

◆ ast_format_vp9

struct ast_format* ast_format_vp9
extern

Built-in cached vp9 format.

Definition at line 196 of file format_cache.c.

Referenced by ast_rtp_engine_init(), chan_pjsip_indicate(), format_cache_shutdown(), and set_cached_format().