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

Reply via email to