From patchwork Thu Jul 20 17:01:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Timo Rothenpieler X-Patchwork-Id: 42861 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c512:b0:130:ccc6:6c4b with SMTP id gm18csp15065pzb; Thu, 20 Jul 2023 10:01:36 -0700 (PDT) X-Google-Smtp-Source: APBJJlETBDAzQeqraQrq19gSxIygcBup9bGTGni0nT7G1c3PXyZpDU0UqbeD9LTGfT9w+S8RIkEq X-Received: by 2002:a17:907:6d8c:b0:98d:abd4:4000 with SMTP id sb12-20020a1709076d8c00b0098dabd44000mr6087917ejc.35.1689872495731; Thu, 20 Jul 2023 10:01:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689872495; cv=none; d=google.com; s=arc-20160816; b=Y3Wf5cI0Swy94F/xo9CX5jpKtBeqnJoPIwJWv/X3SkmndTttbYgmh3nHrsyA4zLclu N8UTtL3A5M5yS9/GepKHKEgE6eLwwJNN3vPmCZv4YYpBE1nEKwX5vspla1aZmHViqx1p r0Vu2FirAjYm3835ShmrDqd2pzNnz8NRtTNejUsLy05707pF9LRcEklKgY9jwfPGV9De Nd3sopXaFbkNknByYe3u5Tb6Mgt0yedw8O+5Ohg+tV2xdBB/iQR/EyCIXcNtkfyIjTf3 9vF+NX/OG1QgNt2P8lJM/oAEKb1lVqzDW/+nvxcULt+y4JNktEw4WNPVqYqW6m1ATAod Yq3w== 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:message-id:date:to:from :dkim-signature:delivered-to; bh=s+DLj1BDoNqGQ4GNEPHWL1HQ907ltJ9/pK0m3BYnCpA=; fh=THn8xhm7nbInKfZrsdxNoU1y4WW1Zw1l5a5AomvlR2A=; b=EYWRoB5YlpSxkMpn67kpyg7GmV9Ccc/wJ5Gs8zX9TCa9lRXsGlvPG+m14qrUuo63Lu swGFpVgBsHpQ9a7Et/2GdkbV2jM317UHtLuSN1o5BcUeN3RMQ/ZH81M94HHkxlUkBW/V vZyzyH89Ow8iCcMNeu/gjv0i+7PC3FiczSmA0GjYu6kHReFYk2lyxIndVZCVlM3MtBhV Ut7Mz+BTeOBENianklns6B/St8lSt/eyW6V7SrItPYLwbhTbf63a6nAju/zp+aZvMvBH 8dMP7OMzDIv+w9pkA05h/IJMa1Kt5bQBpXRxcwOnegMj9fSRFJmw3JWWO4Mw0g/nka1U JDlA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rothenpieler.org header.s=mail header.b=LIAQSqZF; 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=rothenpieler.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h13-20020a17090619cd00b00992e22a640csi864036ejd.547.2023.07.20.10.01.26; Thu, 20 Jul 2023 10:01:35 -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=@rothenpieler.org header.s=mail header.b=LIAQSqZF; 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=rothenpieler.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E9A6068C3BB; Thu, 20 Jul 2023 20:01:22 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from btbn.de (btbn.de [136.243.74.85]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 61CE068BF0C for ; Thu, 20 Jul 2023 20:01:16 +0300 (EEST) Received: from [authenticated] by btbn.de (Postfix) with ESMTPSA id B32A027C7E3; Thu, 20 Jul 2023 19:01:15 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rothenpieler.org; s=mail; t=1689872475; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=uE7uccdVV51F4NcipInvveq9jZh3ek/zmeYadvQ+SKU=; b=LIAQSqZFpht7toePCpnrxd/XhT1qklSOYcq3FgUaeE2WvIO+T5xSUnNpp3l7KKOGMvE6k8 5aDPBl8605QxgEPBsvKwp1u7ECwIQeJDa1iyPmUHh1svC0Hkkf6yEh/PmLaLtVdVEWlFox JnpDOZo/i7AVyncOhpMtnFBLBVrQ6+mbEdaw7+vPM1KwNPspcMQM41GDeQG7UQNKi8YtLx KWB/fWgmciw+aLzNJi1bNPeVTGsE5vKLeuSempTpM5efVltuUA9T/zXC8XZUWpgQBQ4pIz nI2iQREhrHArMo0nTM+rYMHSZE1jMCNP63z2EmA0276dHWUxbGwbhpQdQ1eK3g== From: Timo Rothenpieler To: ffmpeg-devel@ffmpeg.org Date: Thu, 20 Jul 2023 19:01:08 +0200 Message-Id: <20230720170108.2854-1-timo@rothenpieler.org> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/rtmpproto: forward rw_timeout to tcp proto 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: Timo Rothenpieler Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: tRogrMWm6DiX --- libavformat/rtmpproto.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libavformat/rtmpproto.c b/libavformat/rtmpproto.c index f0ef223f05..a18cc78eac 100644 --- a/libavformat/rtmpproto.c +++ b/libavformat/rtmpproto.c @@ -127,6 +127,7 @@ typedef struct RTMPContext { int nb_streamid; ///< The next stream id to return on createStream calls double duration; ///< Duration of the stream in seconds as returned by the server (only valid if non-zero) int tcp_nodelay; ///< Use TCP_NODELAY to disable Nagle's algorithm if set to 1 + int rw_timeout; ///< timeout of socket I/O operations char username[50]; char password[50]; char auth_params[500]; @@ -2656,10 +2657,12 @@ static int rtmp_open(URLContext *s, const char *uri, int flags, AVDictionary **o port = RTMP_DEFAULT_PORT; if (rt->listen) ff_url_join(buf, sizeof(buf), "tcp", NULL, hostname, port, - "?listen&listen_timeout=%d&tcp_nodelay=%d", - rt->listen_timeout * 1000, rt->tcp_nodelay); + "?listen&listen_timeout=%d&timeout=%d&tcp_nodelay=%d", + rt->listen_timeout * 1000, rt->rw_timeout, + rt->tcp_nodelay); else - ff_url_join(buf, sizeof(buf), "tcp", NULL, hostname, port, "?tcp_nodelay=%d", rt->tcp_nodelay); + ff_url_join(buf, sizeof(buf), "tcp", NULL, hostname, port, + "?tcp_nodelay=%d&timeout=%d", rt->tcp_nodelay, rt->rw_timeout); } reconnect: @@ -3120,6 +3123,7 @@ static const AVOption rtmp_options[] = { {"listen", "Listen for incoming rtmp connections", OFFSET(listen), AV_OPT_TYPE_INT, {.i64 = 0}, INT_MIN, INT_MAX, DEC, "rtmp_listen" }, {"tcp_nodelay", "Use TCP_NODELAY to disable Nagle's algorithm", OFFSET(tcp_nodelay), AV_OPT_TYPE_INT, {.i64 = 0}, 0, 1, DEC|ENC}, {"timeout", "Maximum timeout (in seconds) to wait for incoming connections. -1 is infinite. Implies -rtmp_listen 1", OFFSET(listen_timeout), AV_OPT_TYPE_INT, {.i64 = -1}, INT_MIN, INT_MAX, DEC, "rtmp_listen" }, + {"rw_timeout", "Maximum timeout (in microseconds) to wait for socket i/o. -1 is infinite.", OFFSET(rw_timeout), AV_OPT_TYPE_INT, {.i64 = -1}, INT_MIN, INT_MAX, DEC|ENC }, { NULL }, };