--- libavformat/hls.c | 43 ++++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 19 deletions(-)
diff --git a/libavformat/hls.c b/libavformat/hls.c index e249810bce..ecb6237d2e 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -253,30 +253,35 @@ static void free_init_section_list(struct playlist *pls) pls->n_init_sections = 0; } +static void free_playlist(HLSContext *c, struct playlist *pls) +{ + free_segment_list(pls); + free_init_section_list(pls); + av_freep(&pls->main_streams); + av_freep(&pls->renditions); + av_freep(&pls->id3_buf); + av_dict_free(&pls->id3_initial); + ff_id3v2_free_extra_meta(&pls->id3_deferred_extra); + av_freep(&pls->init_sec_buf); + av_packet_free(&pls->pkt); + av_freep(&pls->pb.pub.buffer); + ff_format_io_close(c->ctx, &pls->input); + pls->input_read_done = 0; + ff_format_io_close(c->ctx, &pls->input_next); + pls->input_next_requested = 0; + if (pls->ctx) { + pls->ctx->pb = NULL; + avformat_close_input(&pls->ctx); + } + av_free(pls); +} + static void free_playlist_list(HLSContext *c) { int i; for (i = 0; i < c->n_playlists; i++) { struct playlist *pls = c->playlists[i]; - free_segment_list(pls); - free_init_section_list(pls); - av_freep(&pls->main_streams); - av_freep(&pls->renditions); - av_freep(&pls->id3_buf); - av_dict_free(&pls->id3_initial); - ff_id3v2_free_extra_meta(&pls->id3_deferred_extra); - av_freep(&pls->init_sec_buf); - av_packet_free(&pls->pkt); - av_freep(&pls->pb.pub.buffer); - ff_format_io_close(c->ctx, &pls->input); - pls->input_read_done = 0; - ff_format_io_close(c->ctx, &pls->input_next); - pls->input_next_requested = 0; - if (pls->ctx) { - pls->ctx->pb = NULL; - avformat_close_input(&pls->ctx); - } - av_free(pls); + free_playlist(c, pls); } av_freep(&c->playlists); c->n_playlists = 0; -- 2.31.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".