From 6ef6bcbd6bf413340f4ea232780e504f6598b7e9 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Tue, 4 May 2021 21:07:43 +0530 Subject: [PATCH] [fragment] Ensure the file is closed on error --- yt_dlp/downloader/dash.py | 3 +++ yt_dlp/downloader/hls.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/yt_dlp/downloader/dash.py b/yt_dlp/downloader/dash.py index 03ed5df54..4ccf53e23 100644 --- a/yt_dlp/downloader/dash.py +++ b/yt_dlp/downloader/dash.py @@ -113,6 +113,7 @@ class DashSegmentsFD(FragmentFD): if count > fragment_retries: if not fatal: return False, frag_index + ctx['dest_stream'].close() self.report_error('Giving up after %s fragment retries' % fragment_retries) return False, frag_index @@ -135,6 +136,7 @@ class DashSegmentsFD(FragmentFD): self.report_skip_fragment(frag_index) return True else: + ctx['dest_stream'].close() self.report_error( 'fragment %s not found, unable to continue' % frag_index) return False @@ -143,6 +145,7 @@ class DashSegmentsFD(FragmentFD): self.report_skip_fragment(frag_index) return True else: + ctx['dest_stream'].close() self.report_error( 'fragment %s not found, unable to continue' % frag_index) return False diff --git a/yt_dlp/downloader/hls.py b/yt_dlp/downloader/hls.py index 270b33b22..8a99171f8 100644 --- a/yt_dlp/downloader/hls.py +++ b/yt_dlp/downloader/hls.py @@ -299,6 +299,7 @@ class HlsFD(FragmentFD): if count <= fragment_retries: self.report_retry_fragment(err, frag_index, count, fragment_retries) if count > fragment_retries: + ctx['dest_stream'].close() self.report_error('Giving up after %s fragment retries' % fragment_retries) return False, frag_index @@ -403,6 +404,7 @@ class HlsFD(FragmentFD): self.report_skip_fragment(frag_index) return True else: + ctx['dest_stream'].close() self.report_error( 'fragment %s not found, unable to continue' % frag_index) return False @@ -411,6 +413,7 @@ class HlsFD(FragmentFD): self.report_skip_fragment(frag_index) return True else: + ctx['dest_stream'].close() self.report_error( 'fragment %s not found, unable to continue' % frag_index) return False