From patchwork Wed Jun 2 07:10:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 28044 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp280455iof; Wed, 2 Jun 2021 00:10:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJydgkVU4eHse/tcZ5hpC3GOXn9QrttNLvWcrbtwRJtyBPpPl5aeY0idmGDBqt7puBg2vAf+ X-Received: by 2002:a50:ff16:: with SMTP id a22mr36771252edu.143.1622617846782; Wed, 02 Jun 2021 00:10:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622617846; cv=none; d=google.com; s=arc-20160816; b=fQUnn9VxUvZS7L9xAsqv0twaZi4MNDRC5ub9cbHQlMt1LhEwIDKLZykg2c7DWYVlXy TvXN9n//MJtDIGBUayPto1TCIY9W4oVHih5oHxm7P7sm5xR/ss55jHKiUgJu5/j4JfU4 qBC6ybqdKdzf+MxDoC7vYfggemiszXqv1YR0/y1KjyVMYfJhb9tkQT18LCQmFqn2Z+gp Km5DRDvh0eU5onguSE4/tp4Xw8dsvnxbP1z6fjmunCMIazqtYiaEAehLcKCVvIy5sf1H AY6lxwLxuFsjL05Dzhv4noIScUmU8XPXedRSsW/npTJAfSXjFiOKbsl9oHB2MmTDpWla 07ug== 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=Mc8CQLilEJ4a9fd1aGyYae0jms8VY/GZbeUb3giTY6I=; b=j1szB6za/1RrvUyvSMjeh0zKKbvubQF52wazhjf/Dkhu/p7uu4+bxs7OhVVMWcqWCf 8uYE8KFFBKsRtwlYogEQqghFOBhCZNHe3jNDYS+v3XzVhUmDssk8DnqxegTD0+6BELuP q6LDcWizfNW6rY8PZmdFctAp38j2vJBcjpz7IKBcb+TvIOE2rV+vK3hKMT5OJD6hjwzz O7VRc3QiwwMGYZhSFFplVVPL6GUV5T6es/a/aHVKncnbxerMZfO4cMqvS2CarojFLjzv PaVb6q147aawkO2B95HzSHUyIxZQR0zVbvximqKTyAftf5srrhgmmmS+7kwigE9VPvvU w+Wg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=klcDC8W5; 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 c7si11841078ejb.100.2021.06.02.00.10.46; Wed, 02 Jun 2021 00:10:46 -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=klcDC8W5; 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 2602D689F2C; Wed, 2 Jun 2021 10:10:42 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-251-80.mail.qq.com (out203-205-251-80.mail.qq.com [203.205.251.80]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F1F78680990 for ; Wed, 2 Jun 2021 10:10:33 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1622617827; bh=9m7uvFvvm2baCFezTd4ZRYeQ3ZL9tM8sH+NoEeMoCpU=; h=From:To:Cc:Subject:Date; b=klcDC8W5SeDEQNLn1rEJloJJxAh0s3YtWFlLcFAkO2yq5tDZK5RMZ8HoL7aAuobqP kW99TlrNSMsC5iaZRUF/0bxKRdbGFT3KfhdQqcIq3Gia5t1zfV8ibB9gPdZboPvkPv jgUu26X+LSCyMoUmERNN9edKBiT1vg5Bcicgr7P0= Received: from ZHILIZHAO-MB2.tencent.com ([113.108.77.64]) by newxmesmtplogicsvrsza23.qq.com (NewEsmtp) with SMTP id 2879506B; Wed, 02 Jun 2021 15:10:07 +0800 X-QQ-mid: xmsmtpt1622617807tls9jns7y Message-ID: X-QQ-XMAILINFO: N2GcUOUOgZ9fsBwCzZNFyUyUGiNPwtdh9A8g28S0Wj56xRDZBaFOcKzNqKQDT3 3XegAc06/zyY7P2J0RMXYQguorNV5KQc+/qabO9w5sWC6yidEmqPKI6xFsZ/dd5QaOZ43+plyU1T sOygyM+nbFJoS6UJ3VSgdSrWVQm7j3kYLwdT+DmvyRA4a4huYmV4ZmsmGbhb8nxjElqpgb9rLym4 eRYSF8tLRfjv3kTzUHplPEUMYzL5Ywb//S7FTRV60tLSwAm+xuAw8yXFow6Hsu72B5ofV+n39ZXB ysM03PlLXMvzyLqzvziJ6RW7/yFw6E/jnd3nfSmTxL04yR9tSJKa2skOP3oxjNO1Ed4lgC6gh1H3 GGO79Hix8V7n18fh1xWu8J2StJfxhRxpda80qXai1mta+b9eoCkkWLU8rOzgJeBENzwYtlWdGkri q3E5jzHCrzEvtaMitGiijqYkFkXcHBSjVWZuXAoft6i3VcYcmVVDAeTDHEGWIVt/6+TpBRBzMk+x BGGzuu4rOeY2EIxJClfSpARnL0/jqSUL93phcdJXpI4ggzjv5j7kvZMoDteblSlHILTJVdOP6U/l Qpc2AO2wuOlWbwHVMK0O9mDKiQn9uMOViFhNcCB/qsf3X1FTxf21P4XAUVCIWvSMZbT4EtdF6tAs qmu9rGiUgoP2Sa3r+xBH1PVW9Td7P/e5dJB69QkwCIXJfxJXYA8qHN4S5v0o5T+qTWaiZaOYSTke +rpoimYvxYOlnsmNC1FefFwwKKVdqe89jeDgZfzURs/kRpCljrmTNP3VubgqM31/3CWHcK6qJTtw EkvFOWna4SdA== From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Wed, 2 Jun 2021 15:10:01 +0800 X-OQ-MSGID: <20210602071002.1740-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avformat/libsrt: send message in order 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: 7CWuIgN47NtZ From: Zhao Zhili There is no good use case for out of order delivery of data. For live streaming with TSBPD enabled by default, the receiver get data in order based on the timestamps. However, if TSBPD is disabled, the data can be delivered out of order. --- libavformat/libsrt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/libsrt.c b/libavformat/libsrt.c index c1e96f700e..edebb49edf 100644 --- a/libavformat/libsrt.c +++ b/libavformat/libsrt.c @@ -683,7 +683,7 @@ static int libsrt_write(URLContext *h, const uint8_t *buf, int size) return ret; } - ret = srt_sendmsg(s->fd, buf, size, -1, 0); + ret = srt_sendmsg(s->fd, buf, size, -1, 1); if (ret < 0) { ret = libsrt_neterrno(h); } From patchwork Wed Jun 2 07:10:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 28045 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp280608iof; Wed, 2 Jun 2021 00:10:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzrJ1NHDOIAnl6BhwNh0nhSCyyuITlG2kCKKkBU2MLoCU3R4WkbbB0nNGJMOIv36cSwWSmj X-Received: by 2002:a17:906:530e:: with SMTP id h14mr15897866ejo.165.1622617856965; Wed, 02 Jun 2021 00:10:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622617856; cv=none; d=google.com; s=arc-20160816; b=f9+YMzQKY96C2vDDFPWRHYmXbs1yZubFrIAYvXS+v4G0kT0/OiqhgUljLqYN6xmcYX 0XWFjlO7Hv15NdAo44kISu3pOEy7pyWCW7JrU+UA5DvzIzvZwxsAuELL3HSXrqBKtR69 68jnYkRCeHhgT23aaGLFXR3/XpFxlHv8Nq6N5XxgNbUZvh8g7mi8xS/q7qgp2pA5JOf9 +3/bxVqRY5fZO0OVTMvTB1Tn+AzTqSWH41V0CJF6oy/XCINfZlnF7il4SLpwdCr5fqWc MIL29M/iUVk5pTmNv62aoyx5H96RjTxX+6vqv9HAKH7YL3ihqs63fLFoj0McResSHBAZ cmTg== 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=l+FlRjXI2V+wFOg496mRNFB1oD7cScOrafTeDn27J/4=; b=FSp4f52F6WIkXBDjlFOY7SnTKkpxPppYOfRxkdgQpjpsPV96Rmg409L6L8DNv7L7hC lM4GtNHDJCvobI/AknsWo/U74rg/xrmFnFjQer9FIm0iyAn+KcInScGfNj8YoM7o2k1F WwvnsiVIb1gu2UFz0v8pt8gzf9LHkpL3HWf/B+zsBSYCrhJn+3jHt1f6gLvvc46KbWZz XlxsP0Bm2gGYXN/JqL7mHbPX4WR/CPokIXQdY9KO+DaYpfmQkI+IRlvGeXBwA78fTPCX 1nCxay3m4mBZxkQjw4WeCZASpPYDJ/iFD5SBH3dYm7hwuyms8SzPj/lRUm3bBa9/tAxc u4zg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=yqYvY6gx; 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 l14si11518564eji.721.2021.06.02.00.10.56; Wed, 02 Jun 2021 00:10:56 -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=yqYvY6gx; 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 4D37B689FD1; Wed, 2 Jun 2021 10:10:49 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-236.mail.qq.com (out203-205-221-236.mail.qq.com [203.205.221.236]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A9204680910 for ; Wed, 2 Jun 2021 10:10:41 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1622617838; bh=5zcR1uEb+GifJRbfxeVbCiDE5pFHHZ1oxErg/7V/5wU=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=yqYvY6gx2oSAKWRZiYuVgfg2rDDzcXZ0jmL9AN8/jveVfpebF9/oEOA2RPH3oQTTL 5tHL5fsO4S2DB7cwUn7d1h3YiSenLtMRajvGBEY3qp08bu4qlE3K/qDtELZjkRv5CD 4kjCnESuKNpjeN6YJNjj7SI5sSl4Cm5k3A4d3/Gc= Received: from ZHILIZHAO-MB2.tencent.com ([113.108.77.64]) by newxmesmtplogicsvrsza23.qq.com (NewEsmtp) with SMTP id 2879506B; Wed, 02 Jun 2021 15:10:07 +0800 X-QQ-mid: xmsmtpt1622617809tg7o866io Message-ID: X-QQ-XMAILINFO: MsmS/ADJ9aklMLpPtsD+w07xr7/h40XUe4dCtq1RAejqM88oNzzuktRB3vmI+e M32V1vGvHo12EZ5ghLegVa+Vv1WXoFBZGoam6JiHUxoAkN8qMOBSEgRxcs+hs3h4xhVDYvN9QdC8 DmMJDPbL/aBI4PQ06Z8yPhofbkyxxxlJSyFvIMmqzhzAY2KyXLhJexQtC8QI44H58pg43+YFTV40 04xgIiLzFKw+z5lDfecmg4iNyQtrijzfb0ujb8jiwNSez1zPyZJkMnk0hLA05rZsCtT99tqI3lkY 73TzwmJCZwMlZOM03mVUaWbbP2aNyXlI7PFl1cH0eijv/ECzE65avWv+Tq6jgGm3IaU9uD1Vwl6J /zlmQDez9DH8hSl9eWm+fkPLXNMem7uyCKuxcfsfrRlrcSaY1OpmE2+MRmyYtE9B9ksdbMjwDhWw vxiH7Fp7nUeusnMaC1Rg1a2bZ/p4VDAjIcpZbae6DWKbx5/odXcygq7NbEuZmYQBWU97ZXGW9VD+ LU3DzPreh68Uo7SqW0FBLbFslpvMsIcwrxOQp9A9CqQt4CaiE1h/ZTryEi4Q6daNQaKdSuo0s/vH AQJ5ra54pQlzJsNVGDV0A2vRr81qTtpP0SNYL2ADgwa0aeKXBmnFqOuOJcT6c3ENWK+kRrOoRAV1 Yi82yo+z1FWQLSkcj1yg8AFKie+IiRyz6HDwtGz8IZMNdat5+63C4TAsMa5EfMgoVeXgCVYjpQFF TKuk3SDOlFMvZBaRApCjJ4Gf0E545EOPOLuztPhoEiSbMIm3VTpbiAWbItogpNaOXxRntktYg/kf YD8XBJXccGlg== From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Wed, 2 Jun 2021 15:10:02 +0800 X-OQ-MSGID: <20210602071002.1740-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210602071002.1740-1-quinkblack@foxmail.com> References: <20210602071002.1740-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avformat/libsrt: add tsbpd 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: tuvWKD4GIWqU From: Zhao Zhili --- libavformat/libsrt.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavformat/libsrt.c b/libavformat/libsrt.c index edebb49edf..3a57ac53cb 100644 --- a/libavformat/libsrt.c +++ b/libavformat/libsrt.c @@ -90,6 +90,7 @@ typedef struct SRTContext { int messageapi; SRT_TRANSTYPE transtype; int linger; + int tsbpd; } SRTContext; #define D AV_OPT_FLAG_DECODING_PARAM @@ -140,6 +141,7 @@ static const AVOption libsrt_options[] = { { "live", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = SRTT_LIVE }, INT_MIN, INT_MAX, .flags = D|E, "transtype" }, { "file", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = SRTT_FILE }, INT_MIN, INT_MAX, .flags = D|E, "transtype" }, { "linger", "Number of seconds that the socket waits for unsent data when closing", OFFSET(linger), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, .flags = D|E }, + { "tsbpd", "Timestamp-based packet delivery", OFFSET(tsbpd), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, .flags = D|E }, { NULL } }; @@ -349,7 +351,8 @@ static int libsrt_set_options_pre(URLContext *h, int fd) #endif (s->messageapi >= 0 && libsrt_setsockopt(h, fd, SRTO_MESSAGEAPI, "SRTO_MESSAGEAPI", &s->messageapi, sizeof(s->messageapi)) < 0) || (s->payload_size >= 0 && libsrt_setsockopt(h, fd, SRTO_PAYLOADSIZE, "SRTO_PAYLOADSIZE", &s->payload_size, sizeof(s->payload_size)) < 0) || - ((h->flags & AVIO_FLAG_WRITE) && libsrt_setsockopt(h, fd, SRTO_SENDER, "SRTO_SENDER", &yes, sizeof(yes)) < 0)) { + ((h->flags & AVIO_FLAG_WRITE) && libsrt_setsockopt(h, fd, SRTO_SENDER, "SRTO_SENDER", &yes, sizeof(yes)) < 0) || + (s->tsbpd >= 0 && libsrt_setsockopt(h, fd, SRTO_TSBPDMODE, "SRTO_TSBPDMODE", &s->tsbpd, sizeof(s->tsbpd)) < 0)) { return AVERROR(EIO); }