From f24e6a3d8bda4d641d0d5a8cb9b1124b24fb6473 Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Sun, 2 Jan 2000 23:51:30 +0000 Subject: Version 0.1.2 from FTP git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@153 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- file.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'file.c') diff --git a/file.c b/file.c index be82f9152..f7e419d45 100755 --- a/file.c +++ b/file.c @@ -172,9 +172,14 @@ int ast_writestream(struct ast_filestream *fs, struct ast_frame *f) ast_log(LOG_WARNING, "Tried to write non-voice frame\n"); return -1; } - if ((fs->fmt->format & f->subclass) == f->subclass) - return fs->fmt->write(fs, f); - else { + if ((fs->fmt->format & f->subclass) == f->subclass) { + res = fs->fmt->write(fs, f); + if (res < 0) + ast_log(LOG_WARNING, "Natural write failed\n"); + if (res > 0) + ast_log(LOG_WARNING, "Huh??\n"); + return res; + } else { /* XXX If they try to send us a type of frame that isn't the normal frame, and isn't the one we've setup a translator for, we do the "wrong thing" XXX */ if (!fs->trans) @@ -182,13 +187,14 @@ int ast_writestream(struct ast_filestream *fs, struct ast_frame *f) if (!fs->trans) ast_log(LOG_WARNING, "Unable to translate to format %s, source format %d\n", fs->fmt->name, f->subclass); else { + res = 0; /* Build a chain of translated frames */ fc = ast_translate(fs->trans, f); f2 = fc; while(f2) { res = fs->fmt->write(fs, f2->fr); if (res) { - ast_log(LOG_WARNING, "Frame write failed\n"); + ast_log(LOG_WARNING, "Translated frame write failed\n"); break; } f2 = f2->next; @@ -341,12 +347,11 @@ int ast_streamfile(struct ast_channel *chan, char *filename) 1) Find which file handlers produce our type of format. 2) Look for a filename which it can handle. 3) If we find one, then great. - *4) If not, see what files are there - *5) See what we can actually support - *6) Choose the one with the least costly translator path and + 4) If not, see what files are there + 5) See what we can actually support + 6) Choose the one with the least costly translator path and set it up. - XXX * = unimplemented XXX */ int fd = -1; struct ast_channel *trans; -- cgit v1.2.3