From patchwork Wed Jul 14 07:53:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 28919 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5d:965a:0:0:0:0:0 with SMTP id d26csp166740ios; Wed, 14 Jul 2021 00:53:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzv6zZSJtz0Wt/ARevBdaA81R8xYB++lpdQCQEG3RBZV7aeWlfz4DDwICcdlBZkiz/MQ7N4 X-Received: by 2002:a05:6402:5142:: with SMTP id n2mr9197859edd.10.1626249219427; Wed, 14 Jul 2021 00:53:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626249219; cv=none; d=google.com; s=arc-20160816; b=aZ5f9Ma0gh+lXrbBsTr+i5njNTk3GdmI8lxb5YXHynhZYuTylJg9TYyu9UlSPSF1Fs jLJksVdFid1vVNGamu053VWy3ErVijBQK9GqsmjySCmv+sUaq/+m+IAqxdmC8Qdq/p9x 5YqbkL5xWD7mu2YFZ+MbzYd6lQwE5UT3fuWY7/SAGo4rNS+n6se0AbBCdUd8FaBpLtkP vJuYwOwNOLC9eA5rMCyiFzKLDRMetneahe5kbPIKzTOuLGqHn+BY9juPpJza17BgoLHu qONMtUFZXWppH7SytI+x+WHY6KHXQivjpEmgpt63nKlwpkbekTYYSD8CBBlVhs2TAn1v /hqQ== 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:mime-version:date:to:from:message-id :dkim-signature:delivered-to; bh=Fifx18xGjmGnp5fhr3AQseQKzZ4i99wsSGaer6998Ew=; b=lMlggiGAnQFFyQZ5iJ24Tx+XRTWYJM+HiHVUfeFHBPHfW+uNVJRx4xzn9jSERn0+bh eT7Bk8eF4bN4ZmTozLt4LsDKomHzXnBx3/ukygBBkTU3IwliffXLyNXqe2lkpRlOUKlZ 7dqywTS9FI38lGCzGKHKv58v+k2HYPlQqZBDVSZc99xnLkVZPQN948buT0J/X7WEp/6X w/qcmmAFlYe74yvAWhHf5aZ2dLCoE9YiQkFNmAIqQW/YtQChn36f3e3T5/RdcZU9yYf8 OwkKTYOoJcRcklsccuB/K37PWV7GRjD3qjQZ6DPVxjRmvvNOPlr31vT6Yh+st+wxEK/n VzMg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=cXFC4IiS; 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=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id r24si1974508ejy.194.2021.07.14.00.53.39; Wed, 14 Jul 2021 00:53:39 -0700 (PDT) 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=@foxmail.com header.s=s201512 header.b=cXFC4IiS; 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=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E954C68A596; Wed, 14 Jul 2021 10:53:31 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-190.mail.qq.com (out203-205-221-190.mail.qq.com [203.205.221.190]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 96B8B68A596 for ; Wed, 14 Jul 2021 10:53:24 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1626249199; bh=EBvFTNSc6YUMD0AGdW6BBL26MOxqMIy1MhE0WlB0mS4=; h=From:To:Cc:Subject:Date; b=cXFC4IiS4OCjF6vbhdcc8eE3r7IQGBCqFUPhpnHWqYuShApYyu79l4RW7Jl15puTl j4Ken0JM5ito2lLoKKKSSzWbwuTxIJkEVXyFpNZo16c5glwYVJKJTdooXPjpU4IEUb /HD7+6MIdanW9uGry0XXkYMUjSkVPPk4Ew19Ff/c= Received: from ZHILIZHAO-MB2.tencent.com ([113.108.77.66]) by newxmesmtplogicsvrszb5.qq.com (NewEsmtp) with SMTP id D522527D; Wed, 14 Jul 2021 15:53:18 +0800 X-QQ-mid: xmsmtpt1626249198tib8avuvc Message-ID: X-QQ-XMAILINFO: MJ0QbbALek+qqqEqyiaA1SPijo5euK/fbkoxuhL7iWCIG/lqVSTlVIVaeMvPiY BC43K4+8oAuWD2ZUc7V2F96+Y8SRvMP9VQ+jfNpqnp4mHI0qCGXxpvIiG9ytg9uK5BrAzKPQzuf3 /UWoNoMblq2dEugGJLI2bdLrveksiVpAENkXFsO/3Bk1mXQNp67UVChh4hy8RFlbJYA3O/8l3/SJ ijiFkx9kNkWp23GAod501vzljPBqv8skzS8IVUrrvbySsVeFAl/8GRBwDro0UAFM6y02cq5QsyT5 8gnos9Mtw0lb/e4cmOew/0JLF+5r7UULXm9fHMzZlStaTdTxKn90SPLLFhWyymYGAgartCcxE0KR +mXlbRXLQVscP2tl/6UYkJ1yTFBwkE7UfauDdL1WHPjDb4RTVmZLlcKTN0hPSprPRSEP9uF20rxR lhIqTpYDCx6j99VIe1QCqpxXdO9sCCaEl53Vj1b7G3cXU8IU33Qx3+eVEGmwzC8fPnseuodN5sCY 5/Jo0xZpTrFkdRapKWnEIbzPHjZ7LwXoiVaTHZ3u0Py60Q+1lEc0lE9E63AkY/Gp6GGrTgjvrsyd nlZhSujeDYfCnAsSdNKlXIRmHOIfX4FP0Sc9fvTX7vkBtw3uC2uSJwBgN68i4ndUtBDUMEw2vkhE DtqGdSqrLsOGqXKtHzOMu2gQHKAwMuys7/Czks9JpaABN8ucrF00c28BubhEUgzfE80q9fzpaWFm 1WcF6YrjSBYfo+a3oZ46UujXLAIppb0CjnBuXq9jPAIjWZRoggbihBqLGL9oUHgUTthLBfYGzwdG MwbpPfyqCzgZyd8Q+WJeOnf4SEULusE8tRBzUl3ze/kKbWc7KTIHHtH0WeJHczMGs= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Wed, 14 Jul 2021 15:53:15 +0800 X-OQ-MSGID: <20210714075315.20455-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/libsrt: add mininputbw 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: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: DDIxztFDK8G0 --- libavformat/libsrt.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/libavformat/libsrt.c b/libavformat/libsrt.c index 8dee6aa3f3..5113858d97 100644 --- a/libavformat/libsrt.c +++ b/libavformat/libsrt.c @@ -72,6 +72,9 @@ typedef struct SRTContext { int ipttl; int iptos; int64_t inputbw; +#if SRT_VERSION_VALUE >= 0x010403 + int64_t mininputbw; +#endif int oheadbw; int64_t latency; int tlpktdrop; @@ -118,6 +121,9 @@ static const AVOption libsrt_options[] = { { "ipttl", "IP Time To Live", OFFSET(ipttl), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 255, .flags = D|E }, { "iptos", "IP Type of Service", OFFSET(iptos), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 255, .flags = D|E }, { "inputbw", "Estimated input stream rate", OFFSET(inputbw), AV_OPT_TYPE_INT64, { .i64 = -1 }, -1, INT64_MAX, .flags = D|E }, +#if SRT_VERSION_VALUE >= 0x010403 + { "mininputbw", "Minimum value of the estimated input stream rate", OFFSET(mininputbw), AV_OPT_TYPE_INT64, { .i64 = -1 }, -1, INT64_MAX, .flags = D|E }, +#endif { "oheadbw", "MaxBW ceiling based on % over input stream rate", OFFSET(oheadbw), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 100, .flags = D|E }, { "latency", "receiver delay (in microseconds) to absorb bursts of missed packet retransmissions", OFFSET(latency), AV_OPT_TYPE_INT64, { .i64 = -1 }, -1, INT64_MAX, .flags = D|E }, { "tsbpddelay", "deprecated, same effect as latency option", OFFSET(latency), AV_OPT_TYPE_INT64, { .i64 = -1 }, -1, INT64_MAX, .flags = D|E }, @@ -297,6 +303,9 @@ static int libsrt_set_options_post(URLContext *h, int fd) SRTContext *s = h->priv_data; if ((s->inputbw >= 0 && libsrt_setsockopt(h, fd, SRTO_INPUTBW, "SRTO_INPUTBW", &s->inputbw, sizeof(s->inputbw)) < 0) || +#if SRT_VERSION_VALUE >= 0x010403 + (s->mininputbw >= 0 && libsrt_setsockopt(h, fd, SRTO_MININPUTBW, "SRTO_MININPUTBW", &s->mininputbw, sizeof(s->mininputbw)) < 0) || +#endif (s->oheadbw >= 0 && libsrt_setsockopt(h, fd, SRTO_OHEADBW, "SRTO_OHEADBW", &s->oheadbw, sizeof(s->oheadbw)) < 0)) { return AVERROR(EIO); } @@ -560,6 +569,13 @@ static int libsrt_open(URLContext *h, const char *uri, int flags) if (av_find_info_tag(buf, sizeof(buf), "inputbw", p)) { s->inputbw = strtoll(buf, NULL, 10); } + if (av_find_info_tag(buf, sizeof(buf), "mininputbw", p)) { +#if SRT_VERSION_VALUE >= 0x010403 + s->mininputbw = strtoll(buf, NULL, 10); +#else + av_log(h, AV_LOG_WARNING, "mininputbw unsupported for libsrt version %s\n", SRT_VERSION_STRING); +#endif + } if (av_find_info_tag(buf, sizeof(buf), "oheadbw", p)) { s->oheadbw = strtoll(buf, NULL, 10); }