Asterisk - The Open Source Telephony Project  21.4.1
Macros | Enumerations | Functions | Variables
codec_builtin.c File Reference

Built-in supported codecs. More...

#include "asterisk.h"
#include "asterisk/ilbc.h"
#include "asterisk/logger.h"
#include "asterisk/astobj2.h"
#include "asterisk/codec.h"
#include "asterisk/format.h"
#include "asterisk/format_cache.h"
#include "asterisk/frame.h"
#include "asterisk/smoother.h"

Go to the source code of this file.

Macros

#define CODEC_REGISTER_AND_CACHE(codec)
 
#define CODEC_REGISTER_AND_CACHE_NAMED(fmt_name, codec)
 
#define TYPE_MASK   0x3
 

Enumerations

enum  frame_type { TYPE_HIGH, TYPE_LOW, TYPE_SILENCE, TYPE_DONTSEND }
 

Functions

int __ast_codec_register_with_format (struct ast_codec *codec, const char *format_name, struct ast_module *mod)
 
int ast_codec_builtin_init (void)
 Initialize built-in codecs within the core. More...
 
static int codec2_length (unsigned int samples)
 
static int codec2_samples (struct ast_frame *frame)
 
static int g719_length (unsigned int samples)
 
static int g719_samples (struct ast_frame *frame)
 
static int g723_len (unsigned char buf)
 
static int g723_length (unsigned int samples)
 
static int g723_samples (struct ast_frame *frame)
 
static int g726_length (unsigned int samples)
 
static int g726_samples (struct ast_frame *frame)
 
static int g729_length (unsigned int samples)
 
static int g729_samples (struct ast_frame *frame)
 
static unsigned char get_n_bits_at (unsigned char *data, int n, int bit)
 
static int gsm_length (unsigned int samples)
 
static int gsm_samples (struct ast_frame *frame)
 
static int ilbc_samples (struct ast_frame *frame)
 
static int lpc10_samples (struct ast_frame *frame)
 
static int none_length (unsigned int samples)
 
static int none_samples (struct ast_frame *frame)
 
static int opus_samples (struct ast_frame *frame)
 
static int silk_samples (struct ast_frame *frame)
 
static int siren14_length (unsigned int samples)
 
static int siren14_samples (struct ast_frame *frame)
 
static int siren7_length (unsigned int samples)
 
static int siren7_samples (struct ast_frame *frame)
 
static int slin_length (unsigned int samples)
 
static int slin_samples (struct ast_frame *frame)
 
static int speex16_samples (struct ast_frame *frame)
 
static int speex32_samples (struct ast_frame *frame)
 
static int speex8_samples (struct ast_frame *frame)
 
static int speex_get_wb_sz_at (unsigned char *data, int len, int bit)
 
static int speex_samples (unsigned char *data, int len)
 
static int ulaw_length (unsigned int samples)
 
static int ulaw_samples (struct ast_frame *frame)
 

Variables

static struct ast_codec adpcm
 
static struct ast_codec alaw
 
static struct ast_codec codec2
 
static struct ast_codec g719
 
static struct ast_codec g722
 
static struct ast_codec g723
 
static struct ast_codec g726aal2
 
static struct ast_codec g726rfc3551
 
static struct ast_codec g729a
 
static struct ast_codec gsm
 
static struct ast_codec h261
 
static struct ast_codec h263
 
static struct ast_codec h263p
 
static struct ast_codec h264
 
static struct ast_codec h265
 
static struct ast_codec ilbc
 
static struct ast_codec jpeg
 
static struct ast_codec lpc10
 
static struct ast_codec mpeg4
 
static struct ast_codec none
 
static struct ast_codec opus
 
static struct ast_codec png
 
static struct ast_codec silk12
 
static struct ast_codec silk16
 
static struct ast_codec silk24
 
static struct ast_codec silk8
 
static struct ast_codec siren14
 
static struct ast_codec siren7
 
static struct ast_codec slin12
 
static struct ast_codec slin16
 
static struct ast_codec slin192
 
static struct ast_codec slin24
 
static struct ast_codec slin32
 
static struct ast_codec slin44
 
static struct ast_codec slin48
 
static struct ast_codec slin8
 
static struct ast_codec slin96
 
static struct ast_codec speex16
 
static struct ast_codec speex32
 
static struct ast_codec speex8
 
static struct ast_codec t140
 
static struct ast_codec t140red
 
static struct ast_codec t38
 
static struct ast_codec ulaw
 
static struct ast_codec vp8
 
static struct ast_codec vp9
 

Detailed Description

Built-in supported codecs.

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

Definition in file codec_builtin.c.

Function Documentation

int ast_codec_builtin_init ( void  )

Initialize built-in codecs within the core.

Return values
0success
-1failure

Definition at line 956 of file codec_builtin.c.

957 {
958  int res = 0;
959 
960  res |= CODEC_REGISTER_AND_CACHE(codec2);
961  res |= CODEC_REGISTER_AND_CACHE(g723);
962  res |= CODEC_REGISTER_AND_CACHE(ulaw);
963  res |= CODEC_REGISTER_AND_CACHE(alaw);
964  res |= CODEC_REGISTER_AND_CACHE(gsm);
965  res |= CODEC_REGISTER_AND_CACHE(g726rfc3551);
966  res |= CODEC_REGISTER_AND_CACHE(g726aal2);
967  res |= CODEC_REGISTER_AND_CACHE(adpcm);
968  res |= CODEC_REGISTER_AND_CACHE(slin8);
969  res |= CODEC_REGISTER_AND_CACHE_NAMED("slin12", slin12);
970  res |= CODEC_REGISTER_AND_CACHE_NAMED("slin16", slin16);
971  res |= CODEC_REGISTER_AND_CACHE_NAMED("slin24", slin24);
972  res |= CODEC_REGISTER_AND_CACHE_NAMED("slin32", slin32);
973  res |= CODEC_REGISTER_AND_CACHE_NAMED("slin44", slin44);
974  res |= CODEC_REGISTER_AND_CACHE_NAMED("slin48", slin48);
975  res |= CODEC_REGISTER_AND_CACHE_NAMED("slin96", slin96);
976  res |= CODEC_REGISTER_AND_CACHE_NAMED("slin192", slin192);
977  res |= CODEC_REGISTER_AND_CACHE(lpc10);
978  res |= CODEC_REGISTER_AND_CACHE(g729a);
979  res |= CODEC_REGISTER_AND_CACHE(speex8);
980  res |= CODEC_REGISTER_AND_CACHE_NAMED("speex16", speex16);
981  res |= CODEC_REGISTER_AND_CACHE_NAMED("speex32", speex32);
982  res |= CODEC_REGISTER_AND_CACHE(ilbc);
983  res |= CODEC_REGISTER_AND_CACHE(g722);
984  res |= CODEC_REGISTER_AND_CACHE(siren7);
985  res |= CODEC_REGISTER_AND_CACHE(siren14);
986  res |= CODEC_REGISTER_AND_CACHE(g719);
987  res |= CODEC_REGISTER_AND_CACHE(opus);
988  res |= CODEC_REGISTER_AND_CACHE(jpeg);
989  res |= CODEC_REGISTER_AND_CACHE(png);
990  res |= CODEC_REGISTER_AND_CACHE(h261);
991  res |= CODEC_REGISTER_AND_CACHE(h263);
992  res |= CODEC_REGISTER_AND_CACHE(h263p);
993  res |= CODEC_REGISTER_AND_CACHE(h264);
994  res |= CODEC_REGISTER_AND_CACHE(h265);
995  res |= CODEC_REGISTER_AND_CACHE(mpeg4);
996  res |= CODEC_REGISTER_AND_CACHE(vp8);
997  res |= CODEC_REGISTER_AND_CACHE(vp9);
998  res |= CODEC_REGISTER_AND_CACHE(t140red);
999  res |= CODEC_REGISTER_AND_CACHE(t140);
1000  res |= CODEC_REGISTER_AND_CACHE(t38);
1001  res |= CODEC_REGISTER_AND_CACHE(none);
1002  res |= CODEC_REGISTER_AND_CACHE_NAMED("silk8", silk8);
1003  res |= CODEC_REGISTER_AND_CACHE_NAMED("silk12", silk12);
1004  res |= CODEC_REGISTER_AND_CACHE_NAMED("silk16", silk16);
1005  res |= CODEC_REGISTER_AND_CACHE_NAMED("silk24", silk24);
1006 
1007  return res;
1008 }

Variable Documentation

struct ast_codec jpeg
static
Initial value:
= {
.name = "jpeg",
.description = "JPEG image",
.type = AST_MEDIA_TYPE_IMAGE,
}

Definition at line 783 of file codec_builtin.c.

struct ast_codec png
static
Initial value:
= {
.name = "png",
.description = "PNG Image",
.type = AST_MEDIA_TYPE_IMAGE,
}

Definition at line 789 of file codec_builtin.c.

struct ast_codec t140
static
Initial value:
= {
.name = "t140",
.description = "Passthrough T.140 Realtime Text",
.type = AST_MEDIA_TYPE_TEXT,
}

Definition at line 857 of file codec_builtin.c.

struct ast_codec t140red
static
Initial value:
= {
.name = "red",
.description = "T.140 Realtime Text with redundancy",
.type = AST_MEDIA_TYPE_TEXT,
}

Definition at line 851 of file codec_builtin.c.

struct ast_codec t38
static
Initial value:
= {
.name = "t38",
.description = "T.38 UDPTL Fax",
.type = AST_MEDIA_TYPE_IMAGE,
}

Definition at line 863 of file codec_builtin.c.