2017-01-17 14:28 GMT+08:00 Steven Liu <l...@chinaffmpeg.org>: > when push hls to http server, the old segemnts can not delete by hls > formats. > so add the http option into hls_delete_old_segments > > Reported-by: Yin Jiaoyuan <yinjiaoy...@163.com> > Signed-off-by: Steven Liu <l...@chinaffmpeg.org> > --- > libavformat/hlsenc.c | 17 +++++++++++++++-- > 1 file changed, 15 insertions(+), 2 deletions(-) > > diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c > index f02b887..87f7717 100644 > --- a/libavformat/hlsenc.c > +++ b/libavformat/hlsenc.c > @@ -245,6 +245,8 @@ static int hls_delete_old_segments(HLSContext *hls) { > int ret = 0, path_size, sub_path_size; > char *dirname = NULL, *p, *sub_path; > char *path = NULL; > + AVDictionary *options = NULL; > + AVIOContext *out = NULL; > > segment = hls->segments; > while (segment) { > @@ -294,7 +296,11 @@ static int hls_delete_old_segments(HLSContext *hls) { > av_strlcat(path, segment->filename, path_size); > } > > - if (unlink(path) < 0) { > + if (hls->method) { > + av_dict_set(&options, "method", "DELETE", 0); > + if ((ret = hls->avf->io_open(hls->avf, &out, path, > AVIO_FLAG_WRITE, &options)) < 0) > + goto fail; > + } else if (unlink(path) < 0) { > av_log(hls, AV_LOG_ERROR, "failed to delete old segment %s: > %s\n", > path, strerror(errno)); > } > @@ -309,7 +315,14 @@ static int hls_delete_old_segments(HLSContext *hls) { > > av_strlcpy(sub_path, dirname, sub_path_size); > av_strlcat(sub_path, segment->sub_filename, sub_path_size); > - if (unlink(sub_path) < 0) { > + > + if (hls->method) { > + av_dict_set(&options, "method", "DELETE", 0); > + if ((ret = hls->avf->io_open(hls->avf, &out, sub_path, > AVIO_FLAG_WRITE, &options)) < 0) { > + av_free(sub_path); > + goto fail; > + } > + } else if (unlink(sub_path) < 0) { > av_log(hls, AV_LOG_ERROR, "failed to delete old segment > %s: %s\n", > sub_path, strerror(errno)); > } > -- > 2.10.1.382.ga23ca1b.dirty > > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
applied! Thanks _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel