From patchwork Thu Aug 16 14:56:30 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: ffmpeg@gallery.co.uk X-Patchwork-Id: 10011 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:104:0:0:0:0:0 with SMTP id c4-v6csp2132948jad; Thu, 16 Aug 2018 07:57:12 -0700 (PDT) X-Google-Smtp-Source: AA+uWPxlul96S7d9hMFQjhuREkUyjjn87xm9bQeaKgjLhu8VmUia6HtcXsR4BeYZ4P+xkJFrAC9W X-Received: by 2002:a1c:8406:: with SMTP id g6-v6mr15478043wmd.18.1534431431959; Thu, 16 Aug 2018 07:57:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534431431; cv=none; d=google.com; s=arc-20160816; b=zCcMeWdy+3Gvftn8q393eTXpmbWdxmLwyqimKPmyM+PiYl8tR5hwIPDtkQC+OEpWDO MPkGLkcCfkL1xWxsCtfkYv50UlaXMFN19G2ZD1SOhz1kILe03bEuqvhzVhRAJA9iutiM zZQSRI+AheUDCXfWzzBDWvr79LbNsZvloJNbkT6NsAQNLrVlav6i52ByTNDOeY5OHrQp KmDEcHdSRXOswj8HF1gW75v2uDW5WRt5h8SxRSLHFckG3lJH/XZT/0tqpBVNpPmuYNlR /wFoIMexTjoJ0iKcQKyeok9BjS6Jz0fyft+7dKRYUfydGOzyti1KQsINGyBvLLCeKbhG i0FA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:to:date:message-id:mime-version:from :delivered-to:arc-authentication-results; bh=KQRom3YYg6pYWU36DitYMGX83MNo10rzYaUSs1+VTRw=; b=zEXqwFAv2uRiqPi4XOgPezM0wSuMLccSMC9EFQq4Gyp8xWn5eP8PWva653gnzed1TO Z5/6e30LtXMI7vLisbmRFV7cGBr0vwkJfgjBOyWlPPeofgvFVxcsmTGAjW5i3ZoO9Pon FkLKA1ry2rCXINd2smaQCzjwRpi8Kmt7si2ejNXImxPTkrsWonCs6uXUJ2xSxF1S8m1w xxIIe/0M92ko7n6X1DVxP0oObRyR51F6dfllRkXIFqxg4OJr+gAyUbaogl526TzaUI53 akZL5yIqVQijDZfhjYd1F+K/igVOGFqI0iIooUu6YpjYqDz/BeYcekX2twNnt5SQEnyz SmKg== 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 f5-v6si17463598wrj.147.2018.08.16.07.57.11; Thu, 16 Aug 2018 07:57:11 -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; 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 4A55668A75B; Thu, 16 Aug 2018 17:56:44 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mta5.iomartmail.com (mta5.iomartmail.com [62.128.193.155]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F34DB68A4CA for ; Thu, 16 Aug 2018 17:56:37 +0300 (EEST) Received: from vs2.iomartmail.com (vs2.iomartmail.com [10.12.10.123]) by mta5.iomartmail.com (8.14.4/8.14.4) with ESMTP id w7GEv23Q006691 for ; Thu, 16 Aug 2018 15:57:02 +0100 Received: from vs2.iomartmail.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4865D22048 for ; Thu, 16 Aug 2018 15:57:02 +0100 (BST) Received: from asmtp3.iomartmail.com (unknown [10.12.10.224]) by vs2.iomartmail.com (Postfix) with ESMTPS id 3B69822052 for ; Thu, 16 Aug 2018 15:57:02 +0100 (BST) Received: from [192.168.1.193] (cpc93828-hari18-2-0-cust135.20-2.cable.virginm.net [77.101.224.136]) (authenticated bits=0) by asmtp3.iomartmail.com (8.14.4/8.14.4) with ESMTP id w7GEuVfY011904 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Thu, 16 Aug 2018 15:57:01 +0100 From: ffmpeg@gallery.co.uk Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) Message-Id: Date: Thu, 16 Aug 2018 15:56:30 +0100 To: ffmpeg-devel@ffmpeg.org X-Mailer: Apple Mail (2.3445.9.1) X-Originating-IP: 77.101.224.136 X-Thinkmail-Auth: mark@gallery.co.uk X-TM-AS-GCONF: 00 X-TM-AS-Product-Ver: IMSVA-9.0.0.1623-8.2.0.1013-24036.001 X-TM-AS-Result: No--3.869-10.0-31-10 X-imss-scan-details: No--3.869-10.0-31-10 X-TMASE-Version: IMSVA-9.0.0.1623-8.2.1013-24036.001 X-TMASE-Result: 10--3.869400-10.000000 X-TMASE-MatchedRID: u9jW2c5iDnm0mJ4/iuO92fSG/+sPtZVk7yWPaQc4INTD370+UY1F/arK 7VOc7pqHmjmNj5zs1ZQZq4dv/Bc8iswdQieqpnTajNvYZHpO13cS12tj9Zvd87vqKsHkeQACkpK tupcCbIlNXRKuuG+FVy+7Fif4mYHnvhccFZkgmqWeAiCmPx4NwNivpTdmVCR2xEHRux+uk8jfhP 1xgyx3DMjqMGPqDH5WErIN7nnNgkMBdLDq2qIZ1UcBIoBcf6G+qjdn3SzXjP8FrzXo5K7lcppRY ajMDU+ZCvEZTab8eQFAJSTXmkb4Mio7TajffX+hCRcEZF3nw1oJl61Q5G8CjfwynAvG5oIxGSCv Li0tcps= X-TMASE-SNAP-Result: 1.821001.0001-0-1-12:0,22:0,33:0,34:0-0 Subject: [FFmpeg-devel] Quick Patch for Multicast UDP Receive on macOS 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Hi Folks. New here, so apologies if this is not how its done, but I have a tiny patch to fix a fundamental flaw in FFMPEG on macOS. The Problem: ------------------- On macOS Try to run 2 copies of FFMPEG each consuming an RTP Multicast which are on *different* multicast addresses - but the *same* port. The second copy will fail with a bind error and possibly a crash. The Solution: ------------------ Very simple - on macOS you need to use SO_REUSEPORT as well as SO_REUSEADDR to avoid this sort of issue. Thanks Mark Gilbert CTO: Gallery SIENNA. PATCH FOLLOWS: -------------------------- --- /Users/mark/Downloads/udpORIG.c 2018-08-16 15:39:21.000000000 +0100 +++ /Users/mark/Downloads/udp.c 2018-08-16 15:40:55.000000000 +0100 @@ -828,7 +828,11 @@ s->reuse_socket = 1; if (setsockopt (udp_fd, SOL_SOCKET, SO_REUSEADDR, &(s->reuse_socket), sizeof(s->reuse_socket)) != 0) goto fail; - } + #ifdef __APPLE__ // MacOS/X requires an additional call + if (setsockopt (udp_fd, SOL_SOCKET, SO_REUSEPORT, &(s->reuse_socket), sizeof(s->reuse_socket)) != 0) + goto fail; + #endif + } if (s->is_broadcast) { #ifdef SO_BROADCAST