From patchwork Thu Nov 18 06:58:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Steven X-Patchwork-Id: 31480 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:d206:0:0:0:0:0 with SMTP id q6csp373942iob; Wed, 17 Nov 2021 22:59:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJwjjbQ29FUdLs0NU0Yhz0LoU0HxZQUVT4+77M/lMj34xyI5+6XPN9qW92BONhoyQhaIoiiZ X-Received: by 2002:a50:cdc8:: with SMTP id h8mr7904002edj.87.1637218760619; Wed, 17 Nov 2021 22:59:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1637218760; cv=none; d=google.com; s=arc-20160816; b=IKyC1smDYUgQOFpUEVhIuGIW+xNLGTzEIkyeDTUT6EE0IhXOy77b4DumI+soc4+FAT CySW8q2QImwuCckS8AjYSKTkOEV1xXk3r7QvDceAv5AHSwp7z9+ycy6NOTQOY05cfMsw fVpXQbLEuNKa6ShP6hmiladTqMVTLM/K0xLhB+LkuXqNL34tGsJ586XAxoA7S/mDBPKv Fe3+k5HwFRdwsy8XRHBmUELTlIGgFIWgHV75xO9yz7uikRP37mt9KFjzEoEg/14d6HKR 5i+gs/syAPn0ARukMPh9AF2b41vUFjjQK4bMEt8Rl0QIJqVFZPO3O8UsYNZaS5e3rENn 9hRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:feedback-id:mime-version:references :in-reply-to:message-id:date:to:from:delivered-to; bh=U4MYpFEs6IyGzoefLn1k5jEAIkx6xp2/4LtkXjupxPw=; b=IyL7cHaaPscA7gbzeF4lb3EFRQkgnSXghusAz7nIF70f9+RL4eUWbqnLFRUeCEhu8S ty85cotyQSaQmmI9J6pMJzjUrWxTEWOnsT31IiRuU2t/0ncVw+nynpnOIDe9QcWnkME0 msN9VXzEHLEoOxLKEbXlBDncki7H0pAp2AmRwzpCzopN9zqG1kp3EoPI91mhYsjoCJ9J Y8b3l9YynZKV9ZVSO9eR55PEr8EfWJv815Uy4mX9Qxpyoor3RCuvf3IdqemsxChhUwwZ I4k0gGz7gaZWAtBQlK8l2qLvEcLHvc9FzkjQAlUM3hB+sNR2CdMyicg6bTPLzMFGoTvX bE8A== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id cs11si7194408ejc.442.2021.11.17.22.59.19; Wed, 17 Nov 2021 22:59: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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 596AD68AEB5; Thu, 18 Nov 2021 08:59:15 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtpbg587.qq.com (smtpbg126.qq.com [106.55.201.22]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C62D168AE5C for ; Thu, 18 Nov 2021 08:59:06 +0200 (EET) X-QQ-mid: bizesmtp54t1637218740tl1noj6l Received: from localhost (unknown [103.107.216.231]) by esmtp6.qq.com (ESMTP) with id ; Thu, 18 Nov 2021 14:58:59 +0800 (CST) X-QQ-SSF: 01100000002000Z0Z000000A0000000 X-QQ-FEAT: Sx4Wd6u3Sa1ztJS+Q5At8GogET7CAQ8041G9kG8O+iIGFEQeaHJQR8dn8MFIm HKAPM8iH8S3jVUbTthnY+XYi7tFrsxk/ffZfgAgUZDYmyP1gvFzX4omKDEjdhVCXwKQnX1F XJ6n+p7B6Uay8ZMRmP+hSH8IGFXNg6jtS+dQB+m1Lo9MBLv7gT2jJT6NPJfXqrcj7BtRYmz SHmE1wMFR7VhwDrbFDTrhvaFQyqX4J6Hsl84yKJRRmB27xN586FYBdbh8Ruc7qA/9wa1GtP MhKHeIoxcSxGiCe6Yqoow3VSrZmx5f9+1lFnmy9zJKRWB8ABgFChobsloZvT/reOqFNMubl r/68GRHWYXbTlk+koc= X-QQ-GoodBg: 0 From: Steven Liu To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Nov 2021 14:58:54 +0800 Message-Id: <20211118065855.17159-1-lq@chinaffmpeg.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: References: MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:chinaffmpeg.org:qybgspam:qybgspam2 Subject: [FFmpeg-devel] [PATCH v2 1/2] avformat/hlsenc: add hls_segment_options correct the segment options name 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: Steven Liu , Steven Liu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: rDqCXND4fYj4 From: Steven Liu Because the hls_ts_options will be misunderstand by user that only can be used in mpegts segments option. So add this option for segments. Signed-off-by: Steven Liu Signed-off-by: Steven Liu --- doc/muxers.texi | 4 ++++ libavformat/hlsenc.c | 1 + 2 files changed, 5 insertions(+) diff --git a/doc/muxers.texi b/doc/muxers.texi index 7eee8c1be6..287ea569fd 100644 --- a/doc/muxers.texi +++ b/doc/muxers.texi @@ -919,6 +919,10 @@ This example will create a directory hierarchy 2016/02/15 (if any of them do not produce the playlist, @file{out.m3u8}, and segment files: @file{2016/02/15/file-20160215-1455569023.ts}, @file{2016/02/15/file-20160215-1455569024.ts}, etc. +@item hls_segment_options @var{options_list} +Set output format options using a :-separated list of key=value +parameters. Values containing @code{:} special characters must be +escaped. @item hls_key_info_file @var{key_info_file} Use the information in @var{key_info_file} for segment encryption. The first diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index cfd0c036d1..fb261acc93 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -3106,6 +3106,7 @@ static const AVOption options[] = { {"hls_allow_cache", "explicitly set whether the client MAY (1) or MUST NOT (0) cache media segments", OFFSET(allowcache), AV_OPT_TYPE_INT, {.i64 = -1}, INT_MIN, INT_MAX, E}, {"hls_base_url", "url to prepend to each playlist entry", OFFSET(baseurl), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E}, {"hls_segment_filename", "filename template for segment files", OFFSET(segment_filename), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E}, + {"hls_segment_options","set segments files format options of hls", OFFSET(format_options), AV_OPT_TYPE_DICT, {.str = NULL}, 0, 0, E}, {"hls_segment_size", "maximum size per segment file, (in bytes)", OFFSET(max_seg_size), AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, E}, {"hls_key_info_file", "file with key URI and key file path", OFFSET(key_info_file), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E}, {"hls_enc", "enable AES128 encryption support", OFFSET(encrypt), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, E}, From patchwork Thu Nov 18 06:58:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Steven X-Patchwork-Id: 31481 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:d206:0:0:0:0:0 with SMTP id q6csp375083iob; Wed, 17 Nov 2021 23:00:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJwkjZZ+V7RNQ4U3og5+djQ504loZ2rUfRHHQAE714o1v/usbeeLJ9ML/mYomySiMpWV31Mg X-Received: by 2002:a05:6402:16cd:: with SMTP id r13mr7960757edx.264.1637218828496; Wed, 17 Nov 2021 23:00:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1637218828; cv=none; d=google.com; s=arc-20160816; b=gXrHipFJx6OMZkyST8TO5BYjKona32lOiD1aGpRzQgBe5Rte9IgBBKB3+XUV/n1bjf LnHRDDx0rvRA/aEyPxjZCWehaRGvmEFDVDZi6YledqzriAh4JALL6DQMDnI+gMCXcyKm lJwj2VqvuwBSe/HD/8nfgY/Oyu5BBLVI66lL6iQ2TZb6bhtdmOu9txtBAeyM8OCYiDGf 9JkMVxbGMUxJZ/PMc2fejr3bPwMiKCAp0x1knBecw8eRUqKXEjIKBiahRF1/Cl7aV4NX UERzKtPRMjXMEXvYWXltfAqzwdtRuVfKEupNW6GlWyr5cMiDOqJ6lKRqDGiEGCu0HI23 gS3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:feedback-id:mime-version:references :in-reply-to:message-id:date:to:from:delivered-to; bh=ucjBia91UFVMe98f1FkpwvGy8SivJeJZ4hK6Rt1h3Bk=; b=vPpR8T60fdKqpFSOUzbvNXy9iy7Zx+DLMXvbWzjI5f4X1yTJr2a1zAVj9xca2qHs6v hvwrAYEujefn7WG9TYOWdqpHCkjs7haB2dL6NSrHiapXAAi2QYfehTjofgGP1v/Bi0L/ dkEmycmqPzeJi19sU+TlGe8Oun3+M0RBgbAfw9QMXS+Itp/9qKreYaubSqGm087A7vxX eUbhYlIM+OoW5b7mOhrfnW32AsI5OOHSlM5BTHCQlNRwZGHVkg1NbG1KhuZlebYifRZE dq/SaFx0YnMeSjlcMla4yDLVkIi33b16K/qqmJ8PKyIv2lLi1yuAUmH6OKdcoBxWTr+M O+dA== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id dm4si5660224ejc.637.2021.11.17.23.00.28; Wed, 17 Nov 2021 23:00:28 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D755768AE8E; Thu, 18 Nov 2021 09:00:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtpbg587.qq.com (smtpbg587.qq.com [113.96.223.105]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A2D0F680BBB for ; Thu, 18 Nov 2021 09:00:18 +0200 (EET) X-QQ-mid: bizesmtp52t1637218743tuk84djq Received: from localhost (unknown [103.107.216.231]) by esmtp6.qq.com (ESMTP) with id ; Thu, 18 Nov 2021 14:59:02 +0800 (CST) X-QQ-SSF: 01100000002000Z0Z000000A0000000 X-QQ-FEAT: UGKaWkFJTw+3TWH3gCUdglUSmkNShNEyDPfkWh/oeA6gp8ZVyOmzC4ODWi65g hZF1jjPM9b6HZFZDG77fJkeim+1QTNIYKJepcQOcfrJf9kEc2W3UqcGjtfghFQHKgxVdA2O qTg0KMWncqItxYqUElw/pKcOzEjzxrS1gMN8a3cfnZ7odWA8el4KqwOQgOiDk7RNvGq2eX2 L0Q7z1LkdHO6cxMPloaYshcIAqXWcupwWSzwSwk8pHbVCfHGkViTxReX8bx/+T0gdoFmi41 JJh/CN+8Xu0U/MAY0RBMlm7kP+fNl9s01xpF4/SPiz15UYohaUJpECZoVQlwxxjv2Xf2FFk 3OSDhYQaet1EPxj/WA= X-QQ-GoodBg: 0 From: Steven Liu To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 Nov 2021 14:58:55 +0800 Message-Id: <20211118065855.17159-2-lq@chinaffmpeg.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20211118065855.17159-1-lq@chinaffmpeg.org> References: <20211118065855.17159-1-lq@chinaffmpeg.org> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:chinaffmpeg.org:qybgspam:qybgspam3 Subject: [FFmpeg-devel] [PATCH v2 2/2] avformat/hlsenc: deprecate hls_ts_options option 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: Steven Liu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: sO9oyf0NCU93 Because the hls_ts_options will be misunderstand by user, and then user can use hls_segment_options instead of hls_ts_options. Signed-off-by: Steven Liu --- doc/muxers.texi | 1 + libavformat/hlsenc.c | 4 +++- libavformat/version.h | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/doc/muxers.texi b/doc/muxers.texi index 287ea569fd..1ea98a69a3 100644 --- a/doc/muxers.texi +++ b/doc/muxers.texi @@ -799,6 +799,7 @@ were recently referenced in the playlist. Default value is 1, meaning segments o Set output format options using a :-separated list of key=value parameters. Values containing @code{:} special characters must be escaped. +@code{hls_ts_options} is deprecated, use hls_segment_options instead of it.. @item hls_start_number_source Start the playlist sequence number (@code{#EXT-X-MEDIA-SEQUENCE}) according to the specified source. diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index fb261acc93..1be5bdf451 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -3101,7 +3101,9 @@ static const AVOption options[] = { {"hls_init_time", "set segment length at init list", OFFSET(init_time), AV_OPT_TYPE_DURATION, {.i64 = 0}, 0, INT64_MAX, E}, {"hls_list_size", "set maximum number of playlist entries", OFFSET(max_nb_segments), AV_OPT_TYPE_INT, {.i64 = 5}, 0, INT_MAX, E}, {"hls_delete_threshold", "set number of unreferenced segments to keep before deleting", OFFSET(hls_delete_threshold), AV_OPT_TYPE_INT, {.i64 = 1}, 1, INT_MAX, E}, - {"hls_ts_options","set hls mpegts list of options for the container format used for hls", OFFSET(format_options), AV_OPT_TYPE_DICT, {.str = NULL}, 0, 0, E}, +#if FF_HLS_TS_OPTIONS + {"hls_ts_options","set hls mpegts list of options for the container format used for hls (deprecated, use hls_segment_options instead of it.)", OFFSET(format_options), AV_OPT_TYPE_DICT, {.str = NULL}, 0, 0, E | AV_OPT_FLAG_DEPRECATED}, +#endif {"hls_vtt_options","set hls vtt list of options for the container format used for hls", OFFSET(vtt_format_options_str), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E}, {"hls_allow_cache", "explicitly set whether the client MAY (1) or MUST NOT (0) cache media segments", OFFSET(allowcache), AV_OPT_TYPE_INT, {.i64 = -1}, INT_MIN, INT_MAX, E}, {"hls_base_url", "url to prepend to each playlist entry", OFFSET(baseurl), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E}, diff --git a/libavformat/version.h b/libavformat/version.h index ae2b873197..9c41a300e9 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -58,6 +58,7 @@ #define FF_API_LAVF_PRIV_OPT (LIBAVFORMAT_VERSION_MAJOR < 60) #define FF_API_COMPUTE_PKT_FIELDS2 (LIBAVFORMAT_VERSION_MAJOR < 60) #define FF_API_AVIOCONTEXT_WRITTEN (LIBAVFORMAT_VERSION_MAJOR < 60) +#define FF_HLS_TS_OPTIONS (LIBAVFORMAT_VERSION_MAJOR < 60) #define FF_API_AVSTREAM_CLASS (LIBAVFORMAT_VERSION_MAJOR > 59)