From patchwork Mon May 31 16:02:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 28025 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp3003006iof; Mon, 31 May 2021 09:02:47 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyape+mO+hkEah0kSKgxlHKaGpkB+ymc8065c1arnuvxAPQur1RP13ZkxzAngGmG1DbbFoC X-Received: by 2002:a17:906:a398:: with SMTP id k24mr15042755ejz.203.1622476967603; Mon, 31 May 2021 09:02:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622476967; cv=none; d=google.com; s=arc-20160816; b=e+I6KH0HTA2w7yXjIXRUHUcEu4RDCK1oGmGV5KXtii7p7qv/5IFfRZnn6pV4UDP/oi lhjv580c6TR4BFhe/zIpuqmmUJ/3QPD7KGTPxHeWXvHaQwcqqXeBt8+f9yL6BV8StQJQ vNaObRDkLOQUTHVsT1I3FIZyHUBlibhdfxkv/7+/H/4w7VS+YbLsrDV7PNKBppHBSscE 2nxLeUtMyeqEYU3/NLI/SuwQfleaoCrJ7oDCzFdJO3KyY0s2YROS5IKdfTxc81XypYh5 WUoigJiopTjzbvGc5WR8UN0SYI20zJ51Rhs6AoaPttp9hDbXG4Mi+ASszcIKE2ErCOfa 7Q3w== 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:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=/VRIe8sWgjpbGl83nVnh/LKImrTGuD3gp13zVJxXs+E=; b=ZWI2PAASfnXpbiFgKqYJ/xZjziWWNM6jTvqQqKQ5wwdKRJNO7cJTn+Vq9EOMV/X5Dz NfUppxNqjLyXOmkk+fRjmyo/xQT9K5rCpq80mLrSWSwbKFp3k47Vxbp0jCiA1N/VIIMv 8F7kv+fWRwC8Kj0q7WwTftZWx/wU9rhNwIU8TaX5PfB5Gjc49b1rVthSXLcZT/NyRUAS I3fJBhiVWI4jd+h+RRV+wav2tsz2xUUgvx+5gPwW77sSbfiShZnx2fIkNTyfrXjiZYRP IZFiaIpAfXKVyckHJqsS46TG3yBeUyyo6PpgpaiWPepGQpm4Qh2+zTVbbaatz28vi41G B9gA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b="vQ+UNX/u"; 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 y9si11529244eda.462.2021.05.31.09.02.46; Mon, 31 May 2021 09:02:47 -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="vQ+UNX/u"; 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 741E8688140; Mon, 31 May 2021 19:02:42 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-251-36.mail.qq.com (out203-205-251-36.mail.qq.com [203.205.251.36]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 83800680207 for ; Mon, 31 May 2021 19:02:33 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1622476949; bh=Ht8e48YJ47FXKQ8eOQJhq9MrnP9a/WYIRZiv/HMYMv4=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=vQ+UNX/uLb1YlP2RRnfxpAYMtk90E1RscQ38G9MG117t4aLr+gEErq0c4iYiJOIxf 2+pfWcHQeAVMWAIoB+cK9Qqq5vrEwEwwt5yrXBpFjGn8zOuGckuiMTAsbeQdVYhC2P 2BJsGvtlkrpJ8VVEArxHyy5UFCikiIZ1LMfwHAGU= Received: from localhost.localdomain ([119.123.72.206]) by newxmesmtplogicsvrszc7.qq.com (NewEsmtp) with SMTP id 9C23E7F; Tue, 01 Jun 2021 00:02:28 +0800 X-QQ-mid: xmsmtpt1622476948te90765q1 Message-ID: X-QQ-XMAILINFO: NOeXEIqFWyYgRSAA2ZtnqzeSHFhEtq+E0f0lw/X6PRKm5vy2MA9ZkEfARDooQR QVkvBDIirjll0ns0oc1xwT2EdBX9TKpK0npR4gs3JLVJWjajzPGANyyROv1LwLACtyXRyuPhLIs6 KsiSx6F4N7RlLqHffdUNG8y3K6DCLK14DH7VhNe86dcUSRiAuWghix8iLgIj1b4qaJ3kVfydPdSL aZJDQx10fNkIH+OedUguRR0McFBL7aK0lP7MjjeRcVxYBCOSwJm+LEWBobLOZOkkyCaqga5BYjfB y6h9myi4+KZ1Qu4o9Mfyu8mhnm/jnTFue2940KdTVb+GJP6KZPGl1I5u6gw6Rj53Xxun2RUEwEUE FTBW2ww95/kTa1TSqWPjCbH9nKtxdRmxLIEYoty/kgCJpmvOmphU3ltDYIBajTufkyT8sPBSdV8P kUQcF1D/UD9OAEAWhAKxKue0cr6m9ekDRhoxk/6OwiT+UaHlAetKQAUXfYPIPsQZIwJF0tIyNqr8 3O5Wj4hwU7KclgfdG0Xl1gBNDaJAP4ziFU20YL1Xmn7651je3SfQ5ryA/kPYdIWaQBcaXTmR4OIo 2F93Keo9hRPy68Bpl8PTFHA0UEjqV5OnxgiNi6p3lPfdt/DXj3NAYtUwT85c1dtHOLb1YvLLKXcj S5WQ3qnFNpkcHupk/+/Kn97vRr9YvJ4gRsjLl+zww4WKyyEu5jLzNzsEMjqBpNGVpXop/FhzE+8V Clm988Rnd6l3UI69jwjW2K704mRQgGl8ulBKsIFGbOmhlP0EahuMSY7PDgCKaONFUaKBKfrzvMkw l/7V0DUQTJ7t9v40xBTBQ3 From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Tue, 1 Jun 2021 00:02:17 +0800 X-OQ-MSGID: <20210531160217.9351-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <162245193667.30891.1438849232084850818@lain.red.khirnov.net> References: <162245193667.30891.1438849232084850818@lain.red.khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2] avformat/libsrt: log streamid in listener mode 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: TJeg/p9OeJC4 It's useful for test client which pass streamid to ffmpeg/ffplay. For example, use ffmpeg to test streamid support in VLC: ./ffmpeg -v info -re -i foo.mp4 -c copy -f mpegts -mode listener srt://127.0.0.1:9000 ./vlc srt://127.0.0.1:9000?streamid=foobar --- libavformat/libsrt.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/libavformat/libsrt.c b/libavformat/libsrt.c index c1e96f700e..613997c501 100644 --- a/libavformat/libsrt.c +++ b/libavformat/libsrt.c @@ -153,6 +153,15 @@ static int libsrt_neterrno(URLContext *h) return os_errno ? AVERROR(os_errno) : AVERROR_UNKNOWN; } +static int libsrt_getsockopt(URLContext *h, int fd, SRT_SOCKOPT optname, const char * optnamestr, void * optval, int * optlen) +{ + if (srt_getsockopt(fd, 0, optname, optval, optlen) < 0) { + av_log(h, AV_LOG_ERROR, "failed to get option %s on socket: %s\n", optnamestr, srt_getlasterror_str()); + return AVERROR(EIO); + } + return 0; +} + static int libsrt_socket_nonblock(int socket, int enable) { int ret, blocking = enable ? 0 : 1; @@ -224,6 +233,8 @@ static int libsrt_listen(int eid, int fd, const struct sockaddr *addr, socklen_t { int ret; int reuse = 1; + char streamid[512] = {}; + int streamid_len = sizeof(streamid); if (srt_setsockopt(fd, SOL_SOCKET, SRTO_REUSEADDR, &reuse, sizeof(reuse))) { av_log(h, AV_LOG_WARNING, "setsockopt(SRTO_REUSEADDR) failed\n"); } @@ -242,6 +253,8 @@ static int libsrt_listen(int eid, int fd, const struct sockaddr *addr, socklen_t return libsrt_neterrno(h); if (libsrt_socket_nonblock(ret, 1) < 0) av_log(h, AV_LOG_DEBUG, "libsrt_socket_nonblock failed\n"); + if (!libsrt_getsockopt(h, ret, SRTO_STREAMID, "SRTO_STREAMID", streamid, &streamid_len)) + av_log(h, AV_LOG_VERBOSE, "accept streamid [%s], length %d\n", streamid, streamid_len); return ret; } @@ -276,15 +289,6 @@ static int libsrt_setsockopt(URLContext *h, int fd, SRT_SOCKOPT optname, const c return 0; } -static int libsrt_getsockopt(URLContext *h, int fd, SRT_SOCKOPT optname, const char * optnamestr, void * optval, int * optlen) -{ - if (srt_getsockopt(fd, 0, optname, optval, optlen) < 0) { - av_log(h, AV_LOG_ERROR, "failed to get option %s on socket: %s\n", optnamestr, srt_getlasterror_str()); - return AVERROR(EIO); - } - return 0; -} - /* - The "POST" options can be altered any time on a connected socket. They MAY have also some meaning when set prior to connecting; such option is SRTO_RCVSYN, which makes connect/accept call asynchronous.