Asterisk - The Open Source Telephony Project
18.5.0
|
Each supported file format is described by the following structure. More...
#include <mod_format.h>
Data Fields | |
int | buf_size |
void(* | close )(struct ast_filestream *) |
int | desc_size |
char | exts [80] |
struct ast_format * | format |
char *(* | getcomment )(struct ast_filestream *) |
struct { | |
struct ast_format_def * next | |
} | list |
char | mime_types [80] |
struct ast_module * | module |
char | name [80] |
int(* | open )(struct ast_filestream *s) |
Prepare an input stream for playback. More... | |
struct ast_frame *(* | read )(struct ast_filestream *, int *whennext) |
int(* | rewrite )(struct ast_filestream *s, const char *comment) |
Prepare a stream for output, and comment it appropriately if applicable. More... | |
int(* | seek )(struct ast_filestream *, off_t, int) |
off_t(* | tell )(struct ast_filestream *fs) |
int(* | trunc )(struct ast_filestream *fs) |
int(* | write )(struct ast_filestream *, struct ast_frame *) |
Each supported file format is described by the following structure.
Not all are necessary, the support routine implement default values for some of them. A handler typically fills a structure initializing the desired fields, and then calls ast_format_def_register() with the (readonly) structure as an argument.
Definition at line 43 of file mod_format.h.
int buf_size |
If the handler needs a buffer (for read, typically) and/or a private descriptor, put here the required size (in bytes) and the support routine will allocate them for you, pointed by s->buf and s->private, respectively. When allocating a buffer, remember to leave AST_FRIENDLY_OFFSET spare bytes at the bginning.size of frame buffer, if any, aligned to 8 bytes.
Definition at line 90 of file mod_format.h.
Referenced by __ast_format_def_register(), and get_filestream().
void(* close) (struct ast_filestream *) |
Do any closing actions, if any. The descriptor and structure are closed and destroyed by the generic routines, so they must not be done here.
Definition at line 77 of file mod_format.h.
Referenced by filestream_destructor().
int desc_size |
size of private descriptor, if any
Definition at line 91 of file mod_format.h.
Referenced by get_filestream(), load_module(), and unload_module().
char exts[80] |
Extensions (separated by | if more than one) this format can read. First is assumed for writing (e.g. .mp3)
Definition at line 45 of file mod_format.h.
Referenced by __ast_format_def_register(), ast_format_str_reduce(), ast_get_extension_for_mime_type(), ast_get_format_for_file_ext(), ast_readfile(), ast_writefile(), filehelper(), handle_cli_core_show_file_formats(), and publish_format_update().
struct ast_format* format |
Format of frames it uses/provides (one only)
Definition at line 48 of file mod_format.h.
Referenced by ast_get_format_for_file_ext(), ast_playstream(), ast_ratestream(), ast_readaudio_callback(), ast_readvideo_callback(), ast_streamfile(), ast_writestream(), filehelper(), filestream_close(), get_filestream(), handle_cli_core_show_file_formats(), load_module(), mixmonitor_save_prep(), ogg_speex_open(), pcm_seek(), pcm_write(), waitstream_control(), waitstream_core(), wav_open(), and wav_rewrite().
char*(* getcomment) (struct ast_filestream *) |
Retrieve file comment
Definition at line 78 of file mod_format.h.
struct { ... } list |
Link
Referenced by __ast_format_def_register(), and ast_format_def_unregister().
char mime_types[80] |
MIME Types related to the format (separated by | if more than one)
Definition at line 47 of file mod_format.h.
Referenced by ast_get_extension_for_mime_type().
struct ast_module* module |
Definition at line 93 of file mod_format.h.
Referenced by __ast_format_def_register(), filestream_destructor(), and get_filestream().
char name[80] |
Name of format
Definition at line 44 of file mod_format.h.
Referenced by __ast_format_def_register(), ast_format_def_unregister(), ast_writestream(), filestream_close(), fn_wrapper(), PathSegment::get_child(), get_filestream(), handle_cli_core_show_file_formats(), Parameter::load(), SwaggerType::load(), Property::load(), publish_format_update(), and unload_module().
struct ast_format_def* next |
Definition at line 80 of file mod_format.h.
int(* open) (struct ast_filestream *s) |
Prepare an input stream for playback.
Definition at line 56 of file mod_format.h.
Referenced by fn_wrapper().
struct ast_frame*(* read) (struct ast_filestream *, int *whennext) |
Read the next frame from the filestream (if available) and report when to get next frame (in samples)
Definition at line 74 of file mod_format.h.
Referenced by read_frame().
int(* rewrite) (struct ast_filestream *s, const char *comment) |
Prepare a stream for output, and comment it appropriately if applicable.
Definition at line 64 of file mod_format.h.
Referenced by fn_wrapper().
int(* seek) (struct ast_filestream *, off_t, int) |
seek num samples into file, whence - like a normal seek but with offset in samples
Definition at line 68 of file mod_format.h.
Referenced by ast_seekstream(), and ast_writefile().
off_t(* tell) (struct ast_filestream *fs) |
int(* trunc) (struct ast_filestream *fs) |
trunc file to current position
Definition at line 69 of file mod_format.h.
Referenced by ast_truncstream().
int(* write) (struct ast_filestream *, struct ast_frame *) |
Write a frame to a channel
Definition at line 66 of file mod_format.h.
Referenced by ast_writestream(), and MultiOrderedConfigParser::write().