summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--file.c6
-rw-r--r--formats/format_h264.c2
2 files changed, 5 insertions, 3 deletions
diff --git a/file.c b/file.c
index bce283b83..a1ef759a3 100644
--- a/file.c
+++ b/file.c
@@ -184,8 +184,6 @@ int ast_format_unregister(const char *name)
int ast_stopstream(struct ast_channel *tmp)
{
/* Stop a running stream if there is one */
- if (tmp->vstream)
- ast_closestream(tmp->vstream);
if (tmp->stream) {
ast_closestream(tmp->stream);
if (tmp->oldwriteformat && ast_set_write_format(tmp, tmp->oldwriteformat))
@@ -730,6 +728,10 @@ int ast_closestream(struct ast_filestream *f)
f->realfilename = NULL;
}
f->fmt->close(f);
+ if (f->vfs) {
+ ast_closestream(f->vfs);
+ f->vfs = NULL;
+ }
return 0;
}
diff --git a/formats/format_h264.c b/formats/format_h264.c
index e132e0fe0..662320fb6 100644
--- a/formats/format_h264.c
+++ b/formats/format_h264.c
@@ -164,7 +164,7 @@ static struct ast_frame *h264_read(struct ast_filestream *s, int *whennext)
}
if ((res = fread(s->h264, 1, len, s->f)) != len) {
if (res)
- ast_log(LOG_WARNING, "Short read (%d) (%s)!\n", res, strerror(errno));
+ ast_log(LOG_WARNING, "Short read (%d of %d) (%s)!\n", res, len, strerror(errno));
return NULL;
}
s->fr.samples = s->lastts;