Thu Oct 11 06:44:42 2012

Asterisk developer's documentation

ast_format Struct Reference

#include <file.h>

Collaboration diagram for ast_format:

Collaboration graph

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
struct ast_modulemodule
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 *)

Detailed Description

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.

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.

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]

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 { ... } list

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]

struct ast_format* next [read]

Definition at line 98 of file file.h.

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().

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

Generated on Thu Oct 11 06:44:42 2012 for Asterisk - the Open Source PBX by  doxygen 1.5.6