On 22/10/15 14:23, Vittorio Giovara wrote: > On Tue, Oct 20, 2015 at 7:50 PM, Luca Barbato <[email protected]> wrote: >> --- >> libavformat/img2enc.c | 7 +++++-- >> 1 file changed, 5 insertions(+), 2 deletions(-) >> >> diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c >> index eeb19c0..d5b6646 100644 >> --- a/libavformat/img2enc.c >> +++ b/libavformat/img2enc.c >> @@ -33,6 +33,7 @@ typedef struct VideoMuxData { >> int img_number; >> int is_pipe; >> char path[1024]; >> + char tmp[1024]; >> int update; >> } VideoMuxData; >> >> @@ -41,6 +42,7 @@ static int write_header(AVFormatContext *s) >> VideoMuxData *img = s->priv_data; >> >> av_strlcpy(img->path, s->filename, sizeof(img->path)); >> + snprintf(img->tmp, sizeof(img->tmp), "%s.tmp", s->filename); >> >> /* find format */ >> if (s->oformat->flags & AVFMT_NOFILE) >> @@ -70,9 +72,9 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt) >> return AVERROR(EIO); >> } >> for (i = 0; i < 3; i++) { >> - if (avio_open2(&pb[i], filename, AVIO_FLAG_WRITE, >> + if (avio_open2(&pb[i], img->tmp, AVIO_FLAG_WRITE, >> &s->interrupt_callback, NULL) < 0) { >> - av_log(s, AV_LOG_ERROR, "Could not open file : %s\n", >> filename); >> + av_log(s, AV_LOG_ERROR, "Could not open file : %s\n", >> img->tmp); >> return AVERROR(EIO); >> } >> >> @@ -121,6 +123,7 @@ error: >> avio_flush(pb[0]); >> if (!img->is_pipe) { >> avio_close(pb[0]); >> + ff_rename(img->tmp, filename); >> } >> >> img->img_number++; >> -- >> 2.5.0 >> > > the patch is ok, but it would be nice that the commit log explained > why it is needed > I'll add
"Useful to ensure a webserver would not serve an image written halfway" lu _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
