aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2000-01-02 23:51:30 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2000-01-02 23:51:30 +0000
commitcba511eca2e23c4255c71f8587bf85506e95fb66 (patch)
treeaa72a08afe3028cfd4df23609849462933a31ebd /file.c
parent999d3524e27900ec85d461f644d0e2fde138fca4 (diff)
Version 0.1.2 from FTP
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@153 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'file.c')
-rwxr-xr-xfile.c21
1 files changed, 13 insertions, 8 deletions
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;