[FFmpeg-devel] [PATCH] avformat/hlsenc: fix too many open files bug

Steven Liu lq at chinaffmpeg.org
Thu Jan 19 04:20:38 EET 2017


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 at chinaffmpeg.org>
---
 libavformat/hlsenc.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 1f4bf8b..85d3955 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -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));
-- 
2.10.1.382.ga23ca1b.dirty





More information about the ffmpeg-devel mailing list