From patchwork Mon Nov 28 18:01:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Basel Sayeh X-Patchwork-Id: 39529 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp7835139pzb; Mon, 28 Nov 2022 10:02:21 -0800 (PST) X-Google-Smtp-Source: AA0mqf7AZngXhLJiTVzJzQukSRTce2CS+W72QLfYB9MOvt33qub1TP60T3wWHXtVM63fbLEnR3uy X-Received: by 2002:a2e:bf19:0:b0:279:74ab:1029 with SMTP id c25-20020a2ebf19000000b0027974ab1029mr9781105ljr.252.1669658540460; Mon, 28 Nov 2022 10:02:20 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id sc32-20020a1709078a2000b0078dcf17c084si10546246ejc.728.2022.11.28.10.02.08; Mon, 28 Nov 2022 10:02:20 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@hotmail.com header.s=selector1 header.b=SxOyfFCJ; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=hotmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C800F68B3EA; Mon, 28 Nov 2022 20:02:05 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2102.outbound.protection.outlook.com [40.92.91.102]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4F97168807F for ; Mon, 28 Nov 2022 20:01:59 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ggh6bqmmoqzBZZtU9tpq95y+EH5ACJEUf2/J1CKiwt+ppxK09zarNSCx0k3oeL/Kqwrft3EQQ7eo1xdzvB+5wz4H3ap3YB2CT04KwQKwAwP5qjIDW1UoKgSzHK8Fahh8oiyIEvvEEmow5gCN+LJn4DUEJzJPML9ylSAvTAiRFUwE547a8CVLV3TpY+hG1R+h7DhZW+D/20e5rjrLC3E0Qyk2tsZvSHhfXjlP1U6TCdWhdoUAml7IiEQN/+oVgvtIMZ1/1uulHB+TpeWmEOfssfluFqBqazNtVjI22KIS8jbY1U7zmrwJSzjCSbP03Divu2Ihbjk0PQwV8FZsBN64DA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Y/xLHngMVPM8qNpnf89T6LZFoZhgY8VtSrVLI25BLeU=; b=gsbi98HBVmP9QHilO+DQvanxGNHutDyIOMSTGPH28MQQXVmqUeg6kK4FTB03ESJv21zkqvpSAsKZ2BpKstQmKUH0z/W9gTKoUQa2mFsNoi/ZXIRDwYCGVQjEGmo4vgPsj0EvEVPrZ+AUIP6TrM3FNKqusbNIWj4q/n1P/pUnq6lVi9bKH6h2DnRPPWm/3jj6tyzZnaHMwr1yL+/l2p/M2P95vsfPV6Q24WLROC1iRddzTnbKyqrPSU92eJ6Co1Y8CLv9R/tri3K9AULJhK7Tf1yUZcHArE0EqKbZ5G2zHzIgsIQTXoEmx1UaIlMdI0dWlmwCCU/OMQIA5uZxfUagxA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Y/xLHngMVPM8qNpnf89T6LZFoZhgY8VtSrVLI25BLeU=; b=SxOyfFCJXGn2Y+uW0t4sMC9TjS17I2JojCg9Q/marmwYjwBiaDT9xjwdeKBhgXBFdCUuD2m1OEJeivhlTorF1rlkbH0K8YRmZ1DEBoJAw99utwgq2mvfv++An0YnePeykZtnUw7v1sKYISgiJssRzs4nxGw8bAATCxHYCHqG9Bb1QB+EIBMNSMML0Tpl0rANEn7E7WAVRflaQdTQ2XQI2EG7sXJuavvo370FFV4ZSc+722B4MNDEeTeC4owrM+GvA/4mTLiSiWxw86vAUk6H+Byh87lzwvs5QGKPBVOQCnWDouMSfIziU8q79ltnB7muAc06hoiQiixIHlUslhSq5g== Received: from DB9P191MB1482.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:224::19) by VE1P191MB0909.EURP191.PROD.OUTLOOK.COM (2603:10a6:800:148::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.23; Mon, 28 Nov 2022 18:01:57 +0000 Received: from DB9P191MB1482.EURP191.PROD.OUTLOOK.COM ([fe80::5e68:48d2:6fc6:5443]) by DB9P191MB1482.EURP191.PROD.OUTLOOK.COM ([fe80::5e68:48d2:6fc6:5443%7]) with mapi id 15.20.5857.023; Mon, 28 Nov 2022 18:01:57 +0000 From: Basel Sayeh To: ffmpeg-devel@ffmpeg.org Date: Mon, 28 Nov 2022 21:01:38 +0300 Message-ID: X-Mailer: git-send-email 2.30.2 X-Unsent: 1 X-TMN: [qOhxOK1S7Q9zXAj1g0x6iAOtSSjbL6NMdMgUmmmgc84dpgp/aVGv5xWqCMtZ04ha] X-ClientProxiedBy: DXXP273CA0003.AREP273.PROD.OUTLOOK.COM (2603:1086:300:2::15) To DB9P191MB1482.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:224::19) X-Microsoft-Original-Message-ID: <20221128180139.73103-1-basel.sayeh@hotmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB9P191MB1482:EE_|VE1P191MB0909:EE_ X-MS-Office365-Filtering-Correlation-Id: 9adf2abf-11ae-437e-db33-08dad16aa400 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmpEPU/wJLY7hrLLkE8Zz3+9HwtYe5fewL2WxE26qp6YAG6Ud/eGBd4/c+8jGlu8/gTLLgpZQ7Tu6bWKv2lFiC69lHFY2RQgdRy0PQg/u3dRVM4VUVxpxENyglbIZBilBmOQBbgdfQRy0yECFEzDkme59+e7lCmzvhcYbo974aY4gGCLDQ9DykncyhOJXqy2932ugEyFWkv0IQd47VLX8BPIWF9OdGPJ4wekNpk+3yuwStzOHq1dNjo0+9Bq8ds+OOcMoQc9dox6HXcVBaXJu3U9rL/L62CL0KiM9yJSfu7GNkdCdAILbdLwbjv/5uKFtB457th6+AthNzVwDdMnEbq30SCGzYOVlE2JwFQbP7isjxtnlz2sIjUFLjzzQeUQhgHs2lF1sm7zpwcP7si+PJ2urQ8Kk58t1Lg3SGiw29VfpsygwqyW3ECURki0hdcBueef4VNeV3yv/Op3/0/KKBJ7GdRYKb0CPOsS/EVOAJm7Zh3KZGf0cEe8LBe6JZY01ENnb/ZbSkf+pqMqGJx8GNj4dL7KIohESFycbycRto3Npt/t7f/5DmVv2+UcKW5CWQ00q13rCjmqH5fMkHf5qlM7G6mma1aj2LfProoYKs/3XTaFYUOjpaLwmiRZ6Asyl/FkgMzoJogrPdb29g+e1HtFCq3ap4oh7T6hZo7hJ1nF7yBCgnkPws8a6fz5kN3ldHGSGLNtRIkwFE4CrkXxwHN/Zkcd7sFKorC3N8pkCSOo5yzTA8dbflXP3+hLr2AX37g= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kRuXnltsY4JGJ6eZKBRQZT0dvjffDWY+Xvg7970O8jLVbc3FEVaYr9jtQHnwoMLLU+oZBqgeQWZ2GJREa7PYy6MG0gnjUTLPFE0ShZc4FEz4RmFc/qBr5LapdQSpASkiE1tLp3heEH05OrIgt5gq2aNtGbBOIf6gmjwc0SpO9aLg3vefEh/LYqLfmkrEnBvbefZqh26vtAvS+MxYfR2gtPtmc4yDrJACL1it2QUkNyK3Wq+d8ZmArotwtI2TAjp2FJLisYPPY04GZfmmmr40udHl5kzpw/mcoKrGRlWF3WXJvhDEWozLkAiV2QokG6EzvMJ+8DkrFSsfUQU7a8E+Y35ZuiOErLHX2pieHUQrtnUM071Ws41Se5lPHarl4sFInyhWB2a5qgl3Zo704VyHzcggpkphGKp239E1/qOuRQ9xGiN+/SEJL7/TsPWXn77Yd5XjznObEV0+L9UG0Qi8fWkRnqVA1Wf+5b8MvWxbAx4cZch89LBqYR2hMnkAre7y5UHzpTle69aA1uyLdrSVzRN2I6n5ZLDrJjhnH1G4okPM9TW5BETBupCihJ4zdsScn0XqfzJmrPS/0Y6rF5MW2zK69kKmU3VLgMgPK/B8g838BXEzOMN07uwbM2TIBnonHBuFaDfq/RTf0eO1tETVzA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: yQINj4ajP2uhgnp0JAqMWjft7LZbDdYUj5k9Olr+/GdYqhcJMR0EDCDN9hEEc5/ZhbkddPijaCsef4m/2wHrh5QhEJT4uiiFZcbTRWOEZb3/DdomaCQlmaeHo6WKdceFYc5zOhToRfy3+615Yq1qW4dqDYdPllLeD1Kf4JjPTxD8nyytxIwcgodjXmfL7VpgP5sWeC3jIVjndslmOMj6BJ/6ZMwWssDokyoiLjC7fuaU/DAjVt7sJPicWDiBP7TOMHqw4np/i9dlKCwMM6lCzqglfx1LG/brOClP1+mLmXU+Bxm4Q5KpsduEbAEOrkWcAxZcRS31BsamclJySKwVGuEDzPhDjkyJ4mizZDXAFnSfi469wfKZG53MXxvpGI91rfB2fY4J5RXeCjwFz9M74eR0m7aI12Hyz47pBxxV7QhenytUuEBkk0S+m7kOPBy0/dNkdtNE3/seA/jlfZwAlN4GmnWLQV1CuYcSVwu5tQP3MNPU59L4PD0GnbJxyW5+s9voc+bJASpeRW9MRmVQWbOSpqBLqfNCErTbrZgftS/Jf1VckGVK/XErPM/N9APNHocqdbkUPKS4pYoxGhYpg6R6QcWVHQJ4HkqsRyxzcaYONDUg0+gmQekscQgVDQa33gU9QPj0bg/DFoV0hN8TIZqj4DL4c3ngetH7Rm2DYGiUYSZidUja6Uc7kR03z4OhFizLMr2eATJanjHNZp2dNClJd9NVM8z0+zNhin6fT1TD/JPRsC0ajySMG1CZ7JEqZgIBZMEPzn2fEewTmCrvj3U043fy06FibY1+Fe28QJPGCXMSu3QGtPHGN88Hmt0Ml042GHAdtrsQOnqKx2/K4ZPChf7l2mP2nwwySzHk0StV9R7JV6veysqJCx4sRx+bbwjWS0Xf3ba1/7oIdM7APF+gpR2cyliznKdn5vhIgL8IojkMv5lJ2IlENRGnKl/MHvN7pRbbOMKaRWJFCrX9eyckqdhRGm0UfvSF+ZcgjzAYw2WWLRQd2vLOXWDo7xbnOxhOxqbhYEh09zfs6RHk/WjWU3m7lgFcbtfnbVNE995CAShewS5snoF0UdrM6Kv84uiPR4Dp4WMDkCraSaknmg2E/eD2qAloSc8/oXIz9MC2n8TdQ2aiZmMrZqLQ5Bd/Gi1fp9WipiPM+SQCgFUOeQAitpfYBr47R+OK/Lwlbkmvdp5XGiQPHgU8c6DshlRIxjMsv/VIh9/NtIS0VTm7gsGbfZXoVF7qeuGenchZym8UyHR5ei6G/DtPQPSnAytlqVUqmVIOGsUGWWkX+EvaF6mRw2FHTctnp1LPlkVKTeaxwPl1+2HULhtKhDXwEsRVtzTGKYTjZdtmTZz7YlZ1kg== X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-50200.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 9adf2abf-11ae-437e-db33-08dad16aa400 X-MS-Exchange-CrossTenant-AuthSource: DB9P191MB1482.EURP191.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Nov 2022 18:01:57.7416 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1P191MB0909 Subject: [FFmpeg-devel] [PATCH 1/2] libavformat/hlsenc: Enable HTTP persistent connections for hls_delete_file X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Basel Sayeh Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 060LaLnNfBYE Signed-off-by: Basel Sayeh --- libavformat/hlsenc.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index a86fc8907f..e4749aad87 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -252,6 +252,7 @@ typedef struct HLSContext { int http_persistent; AVIOContext *m3u8_out; AVIOContext *sub_m3u8_out; + AVIOContext *http_delete; int64_t timeout; int ignore_io_errors; char *headers; @@ -569,15 +570,20 @@ static int hls_delete_file(HLSContext *hls, AVFormatContext *avf, { if (hls->method || (proto && !av_strcasecmp(proto, "http"))) { AVDictionary *opt = NULL; - AVIOContext *out = NULL; int ret; + set_http_options(avf, &opt, hls); av_dict_set(&opt, "method", "DELETE", 0); - ret = avf->io_open(avf, &out, path, AVIO_FLAG_WRITE, &opt); + ret = hlsenc_io_open(avf, &hls->http_delete, path, &opt); av_dict_free(&opt); if (ret < 0) return hls->ignore_io_errors ? 1 : ret; - ff_format_io_close(avf, &out); + + //Nothing to write + avio_flush(hls->http_delete); + hlsenc_io_close(avf, &hls->http_delete, path); + if (!hls->http_persistent) + ff_format_io_close(avf, &hls->http_delete); } else if (unlink(path) < 0) { av_log(hls, AV_LOG_ERROR, "failed to delete old segment %s: %s\n", path, strerror(errno)); @@ -662,7 +668,7 @@ static int hls_delete_old_segments(AVFormatContext *s, HLSContext *hls, } proto = avio_find_protocol_name(s->url); - if (ret = hls_delete_file(hls, vs->avf, path.str, proto)) + if (ret = hls_delete_file(hls, s, path.str, proto)) goto fail; if ((segment->sub_filename[0] != '\0')) { @@ -679,7 +685,7 @@ static int hls_delete_old_segments(AVFormatContext *s, HLSContext *hls, goto fail; } - if (ret = hls_delete_file(hls, vs->vtt_avf, path.str, proto)) + if (ret = hls_delete_file(hls, s, path.str, proto)) goto fail; } av_bprint_clear(&path); @@ -2707,6 +2713,7 @@ static void hls_deinit(AVFormatContext *s) ff_format_io_close(s, &hls->m3u8_out); ff_format_io_close(s, &hls->sub_m3u8_out); + ff_format_io_close(s, &hls->http_delete); av_freep(&hls->key_basename); av_freep(&hls->var_streams); av_freep(&hls->cc_streams);