#include <file.h>
Public Member Functions | |
AST_LIST_ENTRY (ast_format) list | |
Data Fields | |
int | buf_size |
void(* | close )(struct ast_filestream *) |
int | desc_size |
char | exts [80] |
int | format |
char *(* | getcomment )(struct ast_filestream *) |
struct ast_module * | module |
char | name [80] |
int(* | open )(struct ast_filestream *s) |
struct ast_frame *(* | read )(struct ast_filestream *, int *whennext) |
int(* | rewrite )(struct ast_filestream *s, const char *comment) |
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 fields. 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_register() with the (readonly) structure as an argument.
Definition at line 66 of file file.h.
AST_LIST_ENTRY | ( | ast_format | ) |
Retrieve file comment
int buf_size |
Link
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.
Definition at line 108 of file file.h.
Referenced by __ast_format_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.
Referenced by filestream_destructor().
int desc_size |
size of frame buffer, if any, aligned to 8 bytes.
Definition at line 109 of file file.h.
Referenced by get_filestream().
char exts[80] |
Name of format
Definition at line 68 of file file.h.
Referenced by __ast_format_register(), ast_filehelper(), ast_format_str_reduce(), ast_readfile(), ast_writefile(), show_file_formats(), and show_file_formats_deprecated().
int format |
Extensions (separated by | if more than one) this format can read. First is assumed for writing (e.g. .mp3)
Definition at line 70 of file file.h.
Referenced by ast_closestream(), ast_filehelper(), ast_playstream(), ast_readaudio_callback(), ast_readvideo_callback(), ast_streamfile(), ast_writestream(), au_seek(), filestream_destructor(), load_module(), pcm_read(), pcm_seek(), pcm_write(), show_file_formats(), show_file_formats_deprecated(), and unload_module().
char*(* getcomment)(struct ast_filestream *) |
struct ast_module* module [read] |
size of private descriptor, if any
Definition at line 111 of file file.h.
Referenced by __ast_format_register(), filestream_destructor(), and fn_wrapper().
char name[80] |
Definition at line 67 of file file.h.
Referenced by __ast_format_register(), ast_format_unregister(), ast_writestream(), fn_wrapper(), get_filestream(), show_file_formats(), show_file_formats_deprecated(), and unload_module().
int(* open)(struct ast_filestream *s) |
Format of frames it uses/provides (one only)
Prepare an input stream for playback. Return 0 on success, -1 on error. The FILE is already open (in s->f) so this function only needs to perform any applicable validity checks on the file. If none is required, the function can be omitted.
Referenced by fn_wrapper().
struct ast_frame*(* read)(struct ast_filestream *, int *whennext) [read] |
tell current position
Read the next frame from the filestream (if available) and report when to get next frame (in samples)
Referenced by read_frame().
int(* rewrite)(struct ast_filestream *s, const char *comment) |
Prepare a stream for output, and comment it appropriately if applicable. Return 0 on success, -1 on error. Same as the open, the FILE is already open so the function just needs to prepare any header and other fields, if any. The function can be omitted if nothing is needed.
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
Referenced by ast_seekstream(), and ast_writefile().
off_t(* tell)(struct ast_filestream *fs) |
trunc file to current position
Referenced by ast_tellstream().
int(* trunc)(struct ast_filestream *fs) |
Referenced by ast_truncstream().
int(* write)(struct ast_filestream *, struct ast_frame *) |
Write a frame to a channel
Referenced by ast_writestream().