From patchwork Tue Dec 6 14:09:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Basel Sayeh X-Patchwork-Id: 39627 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:999a:b0:a4:2148:650a with SMTP id ve26csp4179805pzb; Tue, 6 Dec 2022 06:11:10 -0800 (PST) X-Google-Smtp-Source: AA0mqf7AbWwMms/y2yxviCORcnGyLj1f8PGoD6WZ3p9eb/pp4KnRcotJ6H+MV1OpUbW5p9+tSjyM X-Received: by 2002:a17:907:a0ca:b0:7c0:b4bc:eed3 with SMTP id hw10-20020a170907a0ca00b007c0b4bceed3mr18518859ejc.735.1670335870062; Tue, 06 Dec 2022 06:11:10 -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 hv18-20020a17090760d200b007adac36e031si15683367ejc.442.2022.12.06.06.11.09; Tue, 06 Dec 2022 06:11:10 -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=k7Vv7qOj; 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 4FA9268BD15; Tue, 6 Dec 2022 16:11:07 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2080.outbound.protection.outlook.com [40.92.89.80]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 530F168BCF8 for ; Tue, 6 Dec 2022 16:11:00 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MovkrKl8L88YYRYyw4DvPwLum1B/Md7KD49B58FPD6yaW59dPMKBj+eB+YsnqTTuUbH2vltnC6FG2RhDK1tRNvOKd8mZZg3MacKy/Lgox9xRLc9QruSkVVU5Wtqt7cBVblGj67D9NiyJY9dtnu3dRU11vvP4kvNC7oughwETiPu3khA5dlcSyNf1eFkhy7wmWnKyPMvlO7ab8nSgAzS4GBjzK+SNFL7JjyiwaOfNigNiQnd6LAoNqpLuXkW3Ih3vqD0gbKKoKpmLPHx8coq6rycrNVzMfjKHcVL6FHZyt7hkNwoauP13XdrA4FxxkjOGAa4e6fSIh2JtE2f8jQdr1Q== 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=uOoh/PidP29pYuv+hZKmhHVTJ3hBrMa6Q1k24nORf3o=; b=lTDw5EvAyscmXs1v/ax9l36ScLETf30KXK/3up8OOHDzFl42ENtL3qP4uoTmaPfuI5GrLm4KF43ZRg3YxJrUSK/8ZLWEkG5I/mT7vQPWITVSYBkFuK1WvbYQN4xsgzuDwKEkvy025Vex+48P5H5S9WaShaj7gq2p78Mb9i1vqnw7rE+osAne6lIQOcEQSjwR/n605uqNDyqBM6Be0t3g0vGjy4m374ar1AfAQ1g2rYY2/uNO/kgJvokDL3KrUB/JWiBViNVh+oPJE4jEncxEuJNGXdagSWC56ekJxYv0UgwsaR3V0fWQ7eu4/elRUeNPD9BzAXFY7pAFq8zcLfDhog== 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=uOoh/PidP29pYuv+hZKmhHVTJ3hBrMa6Q1k24nORf3o=; b=k7Vv7qOjxEL5wztc4zBqLuYcEt0pOoNI3JBjk0T6eG0Ztw2VFlZB8t+VyhzNHhM+0wcvI6hYJiu4YlVab4kIJL3/IKcctVGQh78zpKUMrut8H8hgzapsnZ/hTC8DCKY9uQdedRRv5E4oNOc7f22XvTUjJ7UNi3qFCkYFhyxpI6uXc8X/zRLHAtuUJyiCf5T0iowzsgU6nSLcCCagQkargmU1tH5b0VFmWC/GvYxEK/x3XJfYAeo5IgSK/KQCgJshF8gb3HUbXgq/Vu0foVFPvaDrVdHIvGo6SKPMPdZd07Am8BnRjMyRqiFeJ2N9m5JajWzYuZrffJzYDMg77cRjjQ== Received: from DB9P191MB1482.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:224::19) by DB8P191MB0665.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:134::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.14; Tue, 6 Dec 2022 14:10:58 +0000 Received: from DB9P191MB1482.EURP191.PROD.OUTLOOK.COM ([fe80::bada:6a73:3b1:7977]) by DB9P191MB1482.EURP191.PROD.OUTLOOK.COM ([fe80::bada:6a73:3b1:7977%9]) with mapi id 15.20.5880.014; Tue, 6 Dec 2022 14:10:58 +0000 From: Basel Sayeh To: ffmpeg-devel@ffmpeg.org Date: Tue, 6 Dec 2022 17:09:23 +0300 Message-ID: X-Mailer: git-send-email 2.30.2 X-Unsent: 1 X-TMN: [f+n4UUVMPgGjXP8kCaDhaKF8WMHzAl4wGKGT3RmNxh/s1q2I680W3u72jQw78ucx] X-ClientProxiedBy: DXXP273CA0023.AREP273.PROD.OUTLOOK.COM (2603:1086:300:2::35) To DB9P191MB1482.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:224::19) X-Microsoft-Original-Message-ID: <20221206140922.5586-1-basel.sayeh@hotmail.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB9P191MB1482:EE_|DB8P191MB0665:EE_ X-MS-Office365-Filtering-Correlation-Id: 3158f5df-d4cc-4738-0dd0-08dad793b2b8 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqUg3BJhog8XM4UuEveNYIFYFzyKSKrIFMJQWOwpdM0chbt/OiZ+JzGZVcQBiFWc/VMQP/bSes6b09KSA81dDQGUn+cws/ANMrbEWnftDViabcGe2wBWqTg7Y8cGI1y1az0TM8UJVS2xy+3vD3Nzx8q93bNSr39jbl5rUhtzOsKUVCplIDImLyCALCcLrT1AMVclDoaTf0v/HKKXMfqLQ2QPKDWfnINAkmnyVTnH1qC789GAbEaES0cnMtt5EazhJdMHup6zQ8H30i7SOwvV1o+BfQy51iK1Pqb1YjDggBfcO6Z4w2h0LOpx8LQx2xQhIKu2uGJQULS3TjqQA+XW4GCTV4zyY9AbdFBV/rw4JuEySIRPd3tlJNbDMMjZzeTHloS4X5LI07qrud8e+fUgphH74UgvaDj5KAbbYq8vomacSpCmxELbYDxPGXR7Sxj0eQ3jTFOS5F/eyp4AtUxFvvYg/AiLV0UX0x3roGBwnZUYHf4E9j1nqmbZYV/4VSSJRjMHroCD68rNYjcy1u/xATQ4xFkExZIIQmdAVcIPzFg6TwjSjBxLLbHTxLllzWnhTZUMqAkfEM517g/bDhmCFqSTW69Sur5K5g+vBLadrIDXqUNMxHVxNxxSmFA21E7WD8uh193Nr+SQAAeKcHgNyRMQNP0qwyw912q1KUNCYkyqhRWyIjMK5uXgLl8yCTMI/e5xZrp0czwy49Rjns6jd0RYorSyqbAM7c9buIbft08dTnm8/Ch/fOVdCfbmHizxew= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BZvVndBHs64ZXKFmdwtlvh9QIdhTyeqqIMWQY1S980PWQ3BXHP9rTSAxx+dnUb6cNl5FdEKliCf2FMK6lxWXVhroQtxZdBDft0qR2Pz8oPXa0ulqI0gDTujlGR0o4HvV3/02p1Euqf48uCtOghivjw5uuFxHEE0aVdWmoysVZYuAUEUBr3XpUqXj5Uh9LqBbR+dQeTKl2L0F5UwinnyiD/FQIVqy4qwO4rEaPza/ANxJXIF2Qlrhv5Gy3kELqRBIBDBqx9PHTMftK2OQhk0ZbzdG4CIFr/pTB67iLsRrBnV7c6SVSecFR8FAD30ThSK89SHfk0ZKNpOY6Y/pFf/2aKqa8XJCs/xWeJv+/+UnTGCnircAjQGnQwIoosDOJm8A4RzBt7h3WQqgEKL8O6yMDhCnNAEd+DBGE3kDqJ8UhspV8T3yAtsPFWr/9qV0nH49/+rNW4U+AmhThBk5uL90m2sOm6O+DorLCZm/ZdYIooj09hDX8v/czLxExzDI6j+KhaQVw6nR0cg0reCLTBHECZrDXHfBM4Gx4ZgWnxyd8yqMgyzCkaRUPuPF8/n+9ZOJGdCDEmHv0RYg8A6hWmRJXGZs7dkyv4Illh2EhEv/XKeE4fqzYnFYOMFBNhsiZEoFnj4JClUscnR5j4i51SM5BVUx/qvNNV39Lxyi5Z2D91Q= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DTcL3WLeNbQZNc2J1MsYLDtl7qnxoHC1QLBQJVgjLty6Zm/vPaOtnfIfejWszb1GCxgWmzC7t+EyeiIdnQ2GLdw47lVBa12BFlJ/SGMex9aSVA1yjeNEEIoHoTI3smGtPet1GDmp70cqN4DpXIJvVgSOPvNCtl2jbxzkEBDvWf0AjJkpVwHO7EFBT86kQ8EyebTS6x6w4Nko4EMMFmW7WvIfzNckZ6xIvEqkWMCDt4TLhGl6T++oGKTa0Wsv/7X6+d2wpaGgXCQbayXDGaxHPTIT8rLHwNEHsITz8Q/I2mNNEV7z+apiAENK6RSL0GsFeh4rYb6NO+V36ec2Zfm1fhjiEeqX1HuIG4+gFJRHRFDTyiAdkvic6tU8Ioc0acH8VM5vkmW3T/E4ILv1AcN8+fcf9Josk0gy0YTDA5iH8DfUw3mS3BqNOSvyaP5oMUEsF4ua/g29CMzzskcK9stmTqum+fBGnN8yJghaNOrvDeV8U017GeZ0bJi582ixoA2KRT9izAA2FXCHSe3uBnQ8iWcGT5mTWlmVAuByw8rZRWf6zI47gRmB/JjrU/ymdSAaO0hLHIgm9zjn23lUyxlgghLSFp+TxN0LzuGIV0fCaFVPhrf7Xf7v4bOqsa+CZ/O89ZERY3djTcIs9g3e73QJnAdqmJf7Zg3G2MWD5CbeLCL8liAbgVU+b8OgagqVVW20lDsRHf64T9hrh5eBI0KOf6/2tB6WeC0mj7bJ0NWLQcsCz2qlertqPwoFJ+CQSuQiNi0zIYwlgl1RB4HE37z2BXN6CCNiA3hZVZQs4DmgjRJJ5yhRR5+qoNz5ni5KS9qJN6A6MaHs+hIbaiFLCRDOtvSLW7q5ZkJQMjuKeNz5G0/bqoq2SI0xoaqJ5ziie1oCV+ai7IRTVGn/1MScQwex4S2ojezj4zjsguCGihTacnZmlvnJgPZ8GYwUFjhdLjgESlnI6rCOokvEE4Gcrw69S9ce1/CCQHNolqoYnFsCh6ZIXXIjxdQ+u2YTrWNjtNCgW2W7dqYitd6JS7FPt6vEXuj2Ne3YG09mU1JS6X9XdeP8xmr7Zch3TrknyaPf67mP3voZxc0qoAeudDsFruXXm4yEI9wLid7Q24fqLHQtx67SVS9ETbD9E2RwYCj0v1QYkgZBxN9oPXbCthS1nIjh3REyqjAnFSWNkRot1spzKbz03fR1QrNdOQMs3ocxQZULzxZLCBY6F4DfiZV2BoCnldfDHNlecIrIDCQecEkYhrMXMVyJmtHRpMiZH0S5YIdPWaE+fgV1kDzBdaK+uqrWTHGoOpZjXLDuuLqIQpLwtb5vNI2eKhfPt21OzcL3QInFz194oaDqLDUY9bwOjjGZzQ== X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-50200.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 3158f5df-d4cc-4738-0dd0-08dad793b2b8 X-MS-Exchange-CrossTenant-AuthSource: DB9P191MB1482.EURP191.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2022 14:10:58.7260 (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: DB8P191MB0665 Subject: [FFmpeg-devel] [PATCH v4 1/2] libavformat/hlsenc: Enable HTTP persistent connections for 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: c6o5mjojFi+o V4 hls_delete_file and dashenc_delete_file functions open a new HTTP connection regardless of the http_persistent value, So change their behaviour to keep http connections open if http_persistent is set Signed-off-by: Basel Sayeh --- libavformat/hlsenc.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index a86fc8907f..9781ed1ceb 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,21 @@ 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 +669,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 +686,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 +2714,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);