avformat/hlsenc: fix too many open files bug
authorSteven Liu <lq@chinaffmpeg.org>
Fri, 20 Jan 2017 04:12:02 +0000 (12:12 +0800)
committerSteven Liu <lq@chinaffmpeg.org>
Fri, 20 Jan 2017 04:12:02 +0000 (12:12 +0800)
When use http method to delete the old segments,
there is only io_open, hove not io_close yet,
this patch is used to fix it

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
libavformat/hlsenc.c

index 1f4bf8b..85d3955 100644 (file)
@@ -300,6 +300,7 @@ static int hls_delete_old_segments(HLSContext *hls) {
             av_dict_set(&options, "method", "DELETE", 0);
             if ((ret = hls->avf->io_open(hls->avf, &out, path, AVIO_FLAG_WRITE, &options)) < 0)
                 goto fail;
+            ff_format_io_close(hls->avf, &out);
         } else if (unlink(path) < 0) {
             av_log(hls, AV_LOG_ERROR, "failed to delete old segment %s: %s\n",
                                      path, strerror(errno));
@@ -322,6 +323,7 @@ static int hls_delete_old_segments(HLSContext *hls) {
                     av_free(sub_path);
                     goto fail;
                 }
+                ff_format_io_close(hls->avf, &out);
             } else if (unlink(sub_path) < 0) {
                 av_log(hls, AV_LOG_ERROR, "failed to delete old segment %s: %s\n",
                                          sub_path, strerror(errno));