From patchwork Thu Jan 16 10:18:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anthony Delannoy X-Patchwork-Id: 17383 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 4F39144BDB4 for ; Thu, 16 Jan 2020 12:25:42 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 28214688144; Thu, 16 Jan 2020 12:25:42 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E119D687FE4 for ; Thu, 16 Jan 2020 12:25:35 +0200 (EET) Received: by mail-wm1-f67.google.com with SMTP id q9so3127088wmj.5 for ; Thu, 16 Jan 2020 02:25:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=AuyUpQ26S9GqxKbe73SVWZRrT9oB5cK4kejuGZ8nUUY=; b=ltC7htJ40HHoEEK7FoOrgDE2DgcIvx3prgZJEcsj+Sk1SqvY1BI7taj7GdX/FX5nxr jHyY/S/6CA4uVT4fgYmHiTn3TbQ1/7fIKh3u08y43M8Ev2zxbV4WOxjSI7yNT78BzQdy m0kW0/qSRbE+uVUpKYerCKki+dW3u0qkfRqqSEu3USskzBlGuavz4WoO5Rl7NApTW1oH 7r2qjS6+iU4pjeIKwxPFgjAsn4nQzRj8HTvqFSWFJ2PqVY50HL5DPs1kdAPlmAPXLnHc nc+lVolfxosciM1+pKVvPNn70coRiE7+m3Nlm5DL979F0YP9PDHW2DgaW+w/fDt0QCL0 sh6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=AuyUpQ26S9GqxKbe73SVWZRrT9oB5cK4kejuGZ8nUUY=; b=d/Y7+Thk7Ev8XLelgC8SZppuCQ/5G342WJPDX84eLw2aSQdsgaMRlG1fRW8oZ/inGH sawgCpj2u4EOKszKgUkunoY3hKjvK2s2qXyxFgn5DAghgGdeNeYnOZu9cYUGKqY8WHbc uCoedeTzyjsqdJGcCUWM16pBwE40pV9gYMK88gRY9z+r/y973Z2QQQAUvbzT/xwin506 h4wvUMZUqupeV+lWkTbH1wVWs2SZ/p4uAM23VSWY120iCT1k+N7HD+zJ5Z7IT8DuDU1y X+wzPSDc5dI0SCzjIKgP6Mj4KUQuFp+Os7EkFM6O0ZKic7RMImDxm7e1pkiuh6lvl3AH qraQ== X-Gm-Message-State: APjAAAVqItDMNTnw9owmwTk3SPUUEuQ6j4M4HAtZ1dCUW8nsAQ5l7O6q mrB2bpE+IHSuiomekqPCufbiT/cQ X-Google-Smtp-Source: APXvYqwseQz/GMNkpKqNqs0PAPvC/J195WD8XF47YqwNd2SwEq85jUlPEefjxinRY8JYtmYFCBFGJA== X-Received: by 2002:a7b:c851:: with SMTP id c17mr5494307wml.71.1579169935536; Thu, 16 Jan 2020 02:18:55 -0800 (PST) Received: from tvty-lt-28.localdomain (host.251.54.23.62.rev.coltfrance.com. [62.23.54.251]) by smtp.gmail.com with ESMTPSA id z124sm4368417wmc.20.2020.01.16.02.18.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Jan 2020 02:18:54 -0800 (PST) Received: by tvty-lt-28.localdomain (Postfix, from userid 1001) id 70A21B6000A; Thu, 16 Jan 2020 11:18:54 +0100 (CET) From: Anthony Delannoy To: ffmpeg-devel@ffmpeg.org Date: Thu, 16 Jan 2020 11:18:35 +0100 Message-Id: <20200116101835.1634-1-anthony.2lannoy@gmail.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: References: MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2] lavf/libsrt: nonblock enabling correction X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Anthony Delannoy Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" As written in https://github.com/Haivision/srt/blob/v1.4.1/docs/API.md, the nonblock mode is activated if SRTO_SNDSYN and SRTO_RCVSYN, for sending and receiving respectively, are set to 0. --- libavformat/libsrt.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/libavformat/libsrt.c b/libavformat/libsrt.c index 16975b6d94..6e230c254b 100644 --- a/libavformat/libsrt.c +++ b/libavformat/libsrt.c @@ -152,12 +152,21 @@ static int libsrt_neterrno(URLContext *h) return AVERROR_UNKNOWN; } +/* + * SRT functions can also work in blocking and non-blocking mode, for which + * there are two separate options for sending and receiving: SRTO_SNDSYN and + * SRTO_RCVSYN. + * Setting SRTO_{SND,RCV}SYN options to 1 enable blocking mode, setting them + * to 0 enable non-blocking mode. + */ static int libsrt_socket_nonblock(int socket, int enable) { - int ret = srt_setsockopt(socket, 0, SRTO_SNDSYN, &enable, sizeof(enable)); + int ret, blocking = enable ? 0 : 1; + + ret = srt_setsockopt(socket, 0, SRTO_SNDSYN, &blocking, sizeof(blocking)); if (ret < 0) return ret; - return srt_setsockopt(socket, 0, SRTO_RCVSYN, &enable, sizeof(enable)); + return srt_setsockopt(socket, 0, SRTO_RCVSYN, &blocking, sizeof(blocking)); } static int libsrt_network_wait_fd(URLContext *h, int eid, int fd, int write)