mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-18 10:44:28 +00:00
merge new_loader_completion branch, including (at least):
- restructured build tree and makefiles to eliminate recursion problems - support for embedded modules - support for static builds - simpler cross-compilation support - simpler module/loader interface (no exported symbols) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@40722 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
# the GNU General Public License
|
||||
#
|
||||
|
||||
ifneq ($(wildcard ../menuselect.makeopts),)
|
||||
ifneq ($(wildcard $(ASTTOPDIR)/menuselect.makeopts),)
|
||||
include ../menuselect.makeopts
|
||||
include ../menuselect.makedeps
|
||||
endif
|
||||
@@ -17,7 +17,12 @@ endif
|
||||
C_MODS:=$(filter-out $(MENUSELECT_FORMATS),$(patsubst %.c,%,$(wildcard format_*.c)))
|
||||
CC_MODS:=$(filter-out $(MENUSELECT_FORMATS),$(patsubst %.cc,%,$(wildcard format_*.cc)))
|
||||
|
||||
SELECTED_MODS:=$(C_MODS) $(CC_MODS)
|
||||
LOADABLE_MODS:=$(C_MODS) $(CC_MODS)
|
||||
|
||||
ifneq ($(findstring formats,$(MENUSELECT_EMBED)),)
|
||||
EMBEDDED_MODS:=$(LOADABLE_MODS)
|
||||
LOADABLE_MODS:=
|
||||
endif
|
||||
|
||||
all: _all
|
||||
|
||||
|
@@ -148,27 +148,16 @@ static const struct ast_format g723_1_f = {
|
||||
.tell = g723_tell,
|
||||
.read = g723_read,
|
||||
.buf_size = G723_MAX_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.module = &mod_data, /* XXX */
|
||||
};
|
||||
|
||||
static int load_module(void *mod)
|
||||
static int load_module(void)
|
||||
{
|
||||
return ast_format_register(&g723_1_f);
|
||||
}
|
||||
|
||||
static int unload_module(void *mod)
|
||||
static int unload_module(void)
|
||||
{
|
||||
return ast_format_unregister(g723_1_f.name);
|
||||
}
|
||||
|
||||
static const char *description(void)
|
||||
{
|
||||
return "G.723.1 Simple Timestamp File Format";
|
||||
}
|
||||
|
||||
static const char *key(void)
|
||||
{
|
||||
return ASTERISK_GPL_KEY;
|
||||
}
|
||||
|
||||
STD_MOD1;
|
||||
AST_MODULE_INFO_STANDARD("G.723.1 Simple Timestamp File Format", ASTERISK_GPL_KEY);
|
||||
|
@@ -204,7 +204,6 @@ static const struct ast_format f[] = {
|
||||
.read = g726_read,
|
||||
.buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.desc_size = sizeof(struct g726_desc),
|
||||
.module = &mod_data, /* XXX */
|
||||
},
|
||||
{
|
||||
.name = "g726-32",
|
||||
@@ -219,7 +218,6 @@ static const struct ast_format f[] = {
|
||||
.read = g726_read,
|
||||
.buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.desc_size = sizeof(struct g726_desc),
|
||||
.module = &mod_data, /* XXX */
|
||||
},
|
||||
{
|
||||
.name = "g726-24",
|
||||
@@ -234,7 +232,6 @@ static const struct ast_format f[] = {
|
||||
.read = g726_read,
|
||||
.buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.desc_size = sizeof(struct g726_desc),
|
||||
.module = &mod_data, /* XXX */
|
||||
},
|
||||
{
|
||||
.name = "g726-16",
|
||||
@@ -249,15 +246,11 @@ static const struct ast_format f[] = {
|
||||
.read = g726_read,
|
||||
.buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.desc_size = sizeof(struct g726_desc),
|
||||
.module = &mod_data, /* XXX */
|
||||
},
|
||||
{ .format = 0 } /* terminator */
|
||||
};
|
||||
|
||||
/*
|
||||
* Module interface (load_module, unload_module, usecount, description, key)
|
||||
*/
|
||||
static int load_module(void *mod)
|
||||
static int load_module(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -270,7 +263,7 @@ static int load_module(void *mod)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int unload_module(void *mod)
|
||||
static int unload_module(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
@@ -281,14 +274,4 @@ static int unload_module(void *mod)
|
||||
return(0);
|
||||
}
|
||||
|
||||
static const char *description(void)
|
||||
{
|
||||
return "Raw G.726 (16/24/32/40kbps) data";
|
||||
}
|
||||
|
||||
static const char *key(void)
|
||||
{
|
||||
return ASTERISK_GPL_KEY;
|
||||
}
|
||||
|
||||
STD_MOD1;
|
||||
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw G.726 (16/24/32/40kbps) data");
|
||||
|
@@ -144,27 +144,16 @@ static const struct ast_format g729_f = {
|
||||
.tell = g729_tell,
|
||||
.read = g729_read,
|
||||
.buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.module = &mod_data, /* XXX */
|
||||
};
|
||||
|
||||
static int load_module(void *mod)
|
||||
static int load_module(void)
|
||||
{
|
||||
return ast_format_register(&g729_f);
|
||||
}
|
||||
|
||||
static int unload_module(void *mod)
|
||||
static int unload_module(void)
|
||||
{
|
||||
return ast_format_unregister(g729_f.name);
|
||||
}
|
||||
|
||||
static const char *description(void)
|
||||
{
|
||||
return "Raw G729 data";
|
||||
}
|
||||
|
||||
static const char *key(void)
|
||||
{
|
||||
return ASTERISK_GPL_KEY;
|
||||
}
|
||||
|
||||
STD_MOD1;
|
||||
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw G729 data");
|
||||
|
@@ -166,27 +166,16 @@ static const struct ast_format gsm_f = {
|
||||
.tell = gsm_tell,
|
||||
.read = gsm_read,
|
||||
.buf_size = 2*GSM_FRAME_SIZE + AST_FRIENDLY_OFFSET, /* 2 gsm frames */
|
||||
.module = &mod_data, /* XXX */
|
||||
};
|
||||
|
||||
static int load_module(void *mod)
|
||||
static int load_module(void)
|
||||
{
|
||||
return ast_format_register(&gsm_f);
|
||||
}
|
||||
|
||||
static int unload_module(void *mod)
|
||||
static int unload_module(void)
|
||||
{
|
||||
return ast_format_unregister(gsm_f.name);
|
||||
}
|
||||
|
||||
static const char *description(void)
|
||||
{
|
||||
return "Raw GSM data";
|
||||
}
|
||||
|
||||
static const char *key(void)
|
||||
{
|
||||
return ASTERISK_GPL_KEY;
|
||||
}
|
||||
|
||||
STD_MOD1;
|
||||
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw GSM data");
|
||||
|
@@ -182,27 +182,16 @@ static const struct ast_format h263_f = {
|
||||
.read = h263_read,
|
||||
.buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.desc_size = sizeof(struct h263_desc),
|
||||
.module = &mod_data, /* XXX */
|
||||
};
|
||||
|
||||
static int load_module(void *mod)
|
||||
static int load_module(void)
|
||||
{
|
||||
return ast_format_register(&h263_f);
|
||||
}
|
||||
|
||||
static int unload_module(void *mod)
|
||||
static int unload_module(void)
|
||||
{
|
||||
return ast_format_unregister(h263_f.name);
|
||||
}
|
||||
|
||||
static const char *description(void)
|
||||
{
|
||||
return "Raw h263 data";
|
||||
}
|
||||
|
||||
static const char *key(void)
|
||||
{
|
||||
return ASTERISK_GPL_KEY;
|
||||
}
|
||||
|
||||
STD_MOD1;
|
||||
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw H.263 data");
|
||||
|
@@ -171,27 +171,16 @@ static const struct ast_format h264_f = {
|
||||
.read = h264_read,
|
||||
.buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.desc_size = sizeof(struct h264_desc),
|
||||
.module = &mod_data, /* XXX */
|
||||
};
|
||||
|
||||
static int load_module(void *mod)
|
||||
static int load_module(void)
|
||||
{
|
||||
return ast_format_register(&h264_f);
|
||||
}
|
||||
|
||||
static int unload_module(void *mod)
|
||||
static int unload_module(void)
|
||||
{
|
||||
return ast_format_unregister(h264_f.name);
|
||||
}
|
||||
|
||||
static const char *description(void)
|
||||
{
|
||||
return "Raw h264 data";
|
||||
}
|
||||
|
||||
static const char *key(void)
|
||||
{
|
||||
return ASTERISK_GPL_KEY;
|
||||
}
|
||||
|
||||
STD_MOD1;
|
||||
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw H.264 data");
|
||||
|
@@ -142,27 +142,16 @@ static const struct ast_format ilbc_f = {
|
||||
.tell = ilbc_tell,
|
||||
.read = ilbc_read,
|
||||
.buf_size = ILBC_BUF_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.module = &mod_data, /* XXX */
|
||||
};
|
||||
|
||||
static int load_module(void *mod)
|
||||
static int load_module(void)
|
||||
{
|
||||
return ast_format_register(&ilbc_f);
|
||||
}
|
||||
|
||||
static int unload_module(void *mod)
|
||||
static int unload_module(void)
|
||||
{
|
||||
return ast_format_unregister(ilbc_f.name);
|
||||
}
|
||||
|
||||
static const char *description(void)
|
||||
{
|
||||
return "Raw iLBC data";
|
||||
}
|
||||
|
||||
static const char *key(void)
|
||||
{
|
||||
return ASTERISK_GPL_KEY;
|
||||
}
|
||||
|
||||
STD_MOD1;
|
||||
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw iLBC data");
|
||||
|
@@ -47,9 +47,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
|
||||
#include "asterisk/lock.h"
|
||||
#include "asterisk/endian.h"
|
||||
|
||||
static char *desc = "JPEG (Joint Picture Experts Group) Image Format";
|
||||
|
||||
|
||||
static struct ast_frame *jpeg_read_image(int fd, int len)
|
||||
{
|
||||
struct ast_frame fr;
|
||||
@@ -115,25 +112,16 @@ static struct ast_imager jpeg_format = {
|
||||
jpeg_write_image,
|
||||
};
|
||||
|
||||
static int load_module(void *mod)
|
||||
static int load_module(void)
|
||||
{
|
||||
return ast_image_register(&jpeg_format);
|
||||
}
|
||||
|
||||
static int unload_module(void *mod)
|
||||
static int unload_module(void)
|
||||
{
|
||||
ast_image_unregister(&jpeg_format);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const char *description(void)
|
||||
{
|
||||
return desc;
|
||||
}
|
||||
|
||||
static const char *key(void)
|
||||
{
|
||||
return ASTERISK_GPL_KEY;
|
||||
}
|
||||
|
||||
STD_MOD(MOD_1 | NO_USECOUNT, NULL, NULL, NULL);
|
||||
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "JPEG (Joint Picture Experts Group) Image Format");
|
||||
|
@@ -21,6 +21,10 @@
|
||||
* \ingroup formats
|
||||
*/
|
||||
|
||||
/* the order of these dependencies is important... it also specifies
|
||||
the link order of the libraries during linking
|
||||
*/
|
||||
|
||||
/*** MODULEINFO
|
||||
<depend>vorbis</depend>
|
||||
<depend>ogg</depend>
|
||||
@@ -542,28 +546,17 @@ static const struct ast_format vorbis_f = {
|
||||
.close = ogg_vorbis_close,
|
||||
.buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.desc_size = sizeof(struct vorbis_desc),
|
||||
.module = &mod_data, /* XXX */
|
||||
};
|
||||
|
||||
static int load_module(void *mod)
|
||||
static int load_module(void)
|
||||
{
|
||||
return ast_format_register(&vorbis_f);
|
||||
}
|
||||
|
||||
static int unload_module(void *mod)
|
||||
static int unload_module(void)
|
||||
{
|
||||
return ast_format_unregister(vorbis_f.name);
|
||||
}
|
||||
|
||||
static const char *description(void)
|
||||
{
|
||||
return "OGG/Vorbis audio";
|
||||
}
|
||||
|
||||
static const char *key(void)
|
||||
{
|
||||
return ASTERISK_GPL_KEY;
|
||||
}
|
||||
|
||||
STD_MOD1;
|
||||
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "OGG/Vorbis audio");
|
||||
|
||||
|
@@ -424,7 +424,6 @@ static const struct ast_format alaw_f = {
|
||||
.tell = pcm_tell,
|
||||
.read = pcm_read,
|
||||
.buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.module = &mod_data, /* XXX */
|
||||
#ifdef REALTIME_WRITE
|
||||
.open = pcma_open,
|
||||
.rewrite = pcma_rewrite,
|
||||
@@ -442,7 +441,6 @@ static const struct ast_format pcm_f = {
|
||||
.tell = pcm_tell,
|
||||
.read = pcm_read,
|
||||
.buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.module = &mod_data, /* XXX */
|
||||
};
|
||||
|
||||
static const struct ast_format au_f = {
|
||||
@@ -457,10 +455,9 @@ static const struct ast_format au_f = {
|
||||
.tell = au_tell,
|
||||
.read = pcm_read,
|
||||
.buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET, /* this many shorts */
|
||||
.module = &mod_data, /* XXX */
|
||||
};
|
||||
|
||||
static int load_module(void *mod)
|
||||
static int load_module(void)
|
||||
{
|
||||
int index;
|
||||
|
||||
@@ -474,20 +471,10 @@ static int load_module(void *mod)
|
||||
|| ast_format_register(&au_f);
|
||||
}
|
||||
|
||||
static int unload_module(void *mod)
|
||||
static int unload_module(void)
|
||||
{
|
||||
return ast_format_unregister(pcm_f.name) || ast_format_unregister(alaw_f.name)
|
||||
|| ast_format_unregister(au_f.name);
|
||||
}
|
||||
|
||||
static const char *description(void)
|
||||
{
|
||||
return "Raw/Sun uLaw/ALaw 8khz Audio support (PCM,PCMA,AU)";
|
||||
}
|
||||
|
||||
static const char *key(void)
|
||||
{
|
||||
return ASTERISK_GPL_KEY;
|
||||
}
|
||||
|
||||
STD_MOD1;
|
||||
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw/Sun uLaw/ALaw 8khz Audio support (PCM,PCMA,AU)");
|
||||
|
@@ -126,27 +126,16 @@ static const struct ast_format slin_f = {
|
||||
.tell = slinear_tell,
|
||||
.read = slinear_read,
|
||||
.buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.module = &mod_data, /* XXX */
|
||||
};
|
||||
|
||||
static int load_module(void *mod)
|
||||
static int load_module(void)
|
||||
{
|
||||
return ast_format_register(&slin_f);
|
||||
}
|
||||
|
||||
static int unload_module(void *mod)
|
||||
static int unload_module(void)
|
||||
{
|
||||
return ast_format_unregister(slin_f.name);
|
||||
}
|
||||
|
||||
static const char *description(void)
|
||||
{
|
||||
return "Raw Signed Linear Audio support (SLN)";
|
||||
}
|
||||
|
||||
static const char *key(void)
|
||||
{
|
||||
return ASTERISK_GPL_KEY;
|
||||
}
|
||||
|
||||
STD_MOD1;
|
||||
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Raw Signed Linear Audio support (SLN)");
|
||||
|
@@ -131,27 +131,16 @@ static const struct ast_format vox_f = {
|
||||
.tell = vox_tell,
|
||||
.read = vox_read,
|
||||
.buf_size = BUF_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.module = &mod_data, /* XXX */
|
||||
};
|
||||
|
||||
static int load_module(void *mod)
|
||||
static int load_module(void)
|
||||
{
|
||||
return ast_format_register(&vox_f);
|
||||
}
|
||||
|
||||
static int unload_module(void *mod)
|
||||
static int unload_module(void)
|
||||
{
|
||||
return ast_format_unregister(vox_f.name);
|
||||
}
|
||||
|
||||
static const char *description(void)
|
||||
{
|
||||
return "Dialogic VOX (ADPCM) File Format";
|
||||
}
|
||||
|
||||
static const char *key(void)
|
||||
{
|
||||
return ASTERISK_GPL_KEY;
|
||||
}
|
||||
|
||||
STD_MOD1;
|
||||
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Dialogic VOX (ADPCM) File Format");
|
||||
|
@@ -512,27 +512,16 @@ static const struct ast_format wav_f = {
|
||||
.close = wav_close,
|
||||
.buf_size = WAV_BUF_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.desc_size = sizeof(struct wav_desc),
|
||||
.module = &mod_data, /* XXX */
|
||||
};
|
||||
|
||||
static int load_module(void *mod)
|
||||
static int load_module(void)
|
||||
{
|
||||
return ast_format_register(&wav_f);
|
||||
}
|
||||
|
||||
static int unload_module(void *mod)
|
||||
static int unload_module(void)
|
||||
{
|
||||
return ast_format_unregister(wav_f.name);
|
||||
}
|
||||
|
||||
static const char *description(void)
|
||||
{
|
||||
return "Microsoft WAV format (8000hz Signed Linear)";
|
||||
}
|
||||
|
||||
static const char *key(void)
|
||||
{
|
||||
return ASTERISK_GPL_KEY;
|
||||
}
|
||||
|
||||
STD_MOD1;
|
||||
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Microsoft WAV format (8000Hz Signed Linear)");
|
||||
|
@@ -555,27 +555,16 @@ static const struct ast_format wav49_f = {
|
||||
.close = wav_close,
|
||||
.buf_size = 2*GSM_FRAME_SIZE + AST_FRIENDLY_OFFSET,
|
||||
.desc_size = sizeof(struct wavg_desc),
|
||||
.module = &mod_data, /* XXX */
|
||||
};
|
||||
|
||||
static int load_module(void *mod)
|
||||
static int load_module(void)
|
||||
{
|
||||
return ast_format_register(&wav49_f);
|
||||
}
|
||||
|
||||
static int unload_module(void *mod)
|
||||
static int unload_module(void)
|
||||
{
|
||||
return ast_format_unregister(wav49_f.name);
|
||||
}
|
||||
|
||||
static const char *description(void)
|
||||
{
|
||||
return "Microsoft WAV format (Proprietary GSM)";
|
||||
}
|
||||
|
||||
static const char *key(void)
|
||||
{
|
||||
return ASTERISK_GPL_KEY;
|
||||
}
|
||||
|
||||
STD_MOD1;
|
||||
AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Microsoft WAV format (Proprietary GSM)");
|
||||
|
Reference in New Issue
Block a user