diff options
-rw-r--r-- | file.c | 6 | ||||
-rw-r--r-- | formats/format_h264.c | 2 |
2 files changed, 5 insertions, 3 deletions
@@ -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; |