From dc884645e6463fb181af816fdea3599713b0bd87 Mon Sep 17 00:00:00 2001 From: markster Date: Sat, 10 Mar 2001 19:12:11 +0000 Subject: Version 0.1.7 from FTP git-svn-id: http://svn.digium.com/svn/asterisk/trunk@236 f38db490-d61c-443f-a65b-d21fe96a405b --- include/asterisk/translate.h | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) (limited to 'include/asterisk/translate.h') diff --git a/include/asterisk/translate.h b/include/asterisk/translate.h index a2bcfff19..640c5794d 100755 --- a/include/asterisk/translate.h +++ b/include/asterisk/translate.h @@ -29,7 +29,7 @@ struct ast_translator { char name[80]; int srcfmt; int dstfmt; - struct ast_translator_pvt *(*new)(); + struct ast_translator_pvt *(*new)(void); int (*framein)(struct ast_translator_pvt *pvt, struct ast_frame *in); struct ast_frame * (*frameout)(struct ast_translator_pvt *pvt); void (*destroy)(struct ast_translator_pvt *pvt); @@ -44,29 +44,22 @@ struct ast_translator { struct ast_trans_pvt; -/* Create a pseudo channel which translates from a real channel into our - desired format. When a translator is installed, you should not use the - sub channel until you have stopped the translator. For all other - actions, use the real channel. Generally, translators should be created - when needed and immediately destroyed when no longer needed. */ - -/* Directions */ -#define AST_DIRECTION_OUT 1 -#define AST_DIRECTION_IN 2 -#define AST_DIRECTION_BOTH 3 - -extern struct ast_channel *ast_translator_create(struct ast_channel *real, int format, int direction); -extern void ast_translator_destroy(struct ast_channel *tran); /* Register a Codec translator */ extern int ast_register_translator(struct ast_translator *t); /* Unregister same */ extern int ast_unregister_translator(struct ast_translator *t); /* Given a list of sources, and a designed destination format, which should - I choose? */ -extern int ast_translator_best_choice(int dst, int srcs); -extern struct ast_trans_pvt *ast_translator_build_path(int source, int dest); + I choose? Returns 0 on success, -1 if no path could be found. Modifies + dests and srcs in place */ +extern int ast_translator_best_choice(int *dsts, int *srcs); + +/* Build a path (possibly NULL) from source to dest */ +extern struct ast_trans_pvt *ast_translator_build_path(int dest, int source); extern void ast_translator_free_path(struct ast_trans_pvt *tr); -extern struct ast_frame_chain *ast_translate(struct ast_trans_pvt *tr, struct ast_frame *f); + +/* Apply an input frame into the translator and receive zero or one output frames. Consume + determines whether the original frame should be freed */ +extern struct ast_frame *ast_translate(struct ast_trans_pvt *tr, struct ast_frame *f, int consume); #if defined(__cplusplus) || defined(c_plusplus) -- cgit v1.2.3