Wed Oct 28 11:46:42 2009

Asterisk developer's documentation


ast_format Struct Reference

Each supported file format is described by the following structure. More...

#include <mod_format.h>

Collaboration diagram for ast_format:

Collaboration graph
[legend]

Data Fields

int buf_size
void(* close )(struct ast_filestream *)
int desc_size
char exts [80]
int format
char *(* getcomment )(struct ast_filestream *)
struct {
   struct ast_format *   next
list
struct ast_modulemodule
char name [80]
int(* open )(struct ast_filestream *s)
 Prepare an input stream for playback.
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.
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 *)

Detailed Description

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_register() with the (readonly) structure as an argument.

Definition at line 43 of file mod_format.h.


Field Documentation

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 89 of file mod_format.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 private descriptor, if any

Definition at line 90 of file mod_format.h.

Referenced by get_filestream().

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_register(), ast_filehelper(), ast_readfile(), ast_writefile(), and handle_cli_core_show_file_formats().

int format

char*(* getcomment)(struct ast_filestream *)

Retrieve file comment

struct { ... } list

struct ast_module* module [read]

Definition at line 92 of file mod_format.h.

Referenced by __ast_format_register(), filestream_destructor(), and fn_wrapper().

char name[80]

struct ast_format* next [read]

Definition at line 79 of file mod_format.h.

int(* open)(struct ast_filestream *s)

Prepare an input stream for playback.

Returns:
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]

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.

Returns:
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)

tell current position

Referenced by ast_tellstream().

int(* trunc)(struct ast_filestream *fs)

trunc file to current position

Referenced by ast_truncstream().

int(* write)(struct ast_filestream *, struct ast_frame *)

Write a frame to a channel

Referenced by ast_writestream().


The documentation for this struct was generated from the following file:

Generated on Wed Oct 28 11:46:43 2009 for Asterisk - the Open Source PBX by  doxygen 1.5.6