aboutsummaryrefslogtreecommitdiffstats
path: root/include/asterisk/translate.h
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2001-03-10 19:12:11 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2001-03-10 19:12:11 +0000
commitdc884645e6463fb181af816fdea3599713b0bd87 (patch)
treec16bdd5583e05977a7893075e3b541e1a3afa073 /include/asterisk/translate.h
parentea452d3fd8f99256d987297e5afa8d1c226b465e (diff)
Version 0.1.7 from FTP
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@236 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include/asterisk/translate.h')
-rwxr-xr-xinclude/asterisk/translate.h29
1 files changed, 11 insertions, 18 deletions
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)