On 2/27/18 2:48 PM, Serhii Marchuk wrote: > --- > libavformat/dashenc.c | 28 +++++++++++++++++++++++++--- > 1 file changed, 25 insertions(+), 3 deletions(-) > > diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c > index 83e0cff728..66f12d8d49 100644 > --- a/libavformat/dashenc.c > +++ b/libavformat/dashenc.c > @@ -1131,6 +1131,28 @@ static int update_stream_extradata(AVFormatContext *s, > OutputStream *os, > return 0; > } > > +static void dashenc_delete_file(AVFormatContext *s, char *filename) { > + DASHContext *c = s->priv_data; > + int http_base_proto = ff_is_http_proto(filename); > + > + if (http_base_proto) { > + AVIOContext *out = NULL; > + AVDictionary *http_opts = NULL; > + > + set_http_options(&http_opts, c); > + av_dict_set(&http_opts, "method", "DELETE", 0); > + > + if (dashenc_io_open(s, &out, filename, &http_opts) < 0) { > + av_log(s, AV_LOG_ERROR, "failed to delete %s\n", filename); > + } > + > + av_dict_free(&http_opts); > + dashenc_io_close(s, &out, filename); > + } else if (unlink(filename) < 0) { > + av_log(s, AV_LOG_ERROR, "failed to delete %s: %s\n", filename, > strerror(errno)); > + } > +} > + > static int dash_flush(AVFormatContext *s, int final, int stream) > { > DASHContext *c = s->priv_data; > @@ -1215,7 +1237,7 @@ static int dash_flush(AVFormatContext *s, int final, > int stream) > for (j = 0; j < remove; j++) { > char filename[1024]; > snprintf(filename, sizeof(filename), "%s%s", c->dirname, > os->segments[j]->file); > - unlink(filename); > + dashenc_delete_file(s, filename); > av_free(os->segments[j]); > } > os->nb_segments -= remove; > @@ -1367,9 +1389,9 @@ static int dash_write_trailer(AVFormatContext *s) > for (i = 0; i < s->nb_streams; i++) { > OutputStream *os = &c->streams[i]; > snprintf(filename, sizeof(filename), "%s%s", c->dirname, > os->initfile); > - unlink(filename); > + dashenc_delete_file(s, filename); > } > - unlink(s->url); > + dashenc_delete_file(s, s->url); > } > > return 0; Thanks for sending the patch. LGTM. But let me test it with some of existing servers before the final push, just to make sure no existing functionality is broken.
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel