From patchwork Sat Dec 28 11:03:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jun Zhao X-Patchwork-Id: 17018 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 EB449447522 for ; Sat, 28 Dec 2019 13:03:14 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C73766881B6; Sat, 28 Dec 2019 13:03:14 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f193.google.com (mail-pl1-f193.google.com [209.85.214.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 61CC6688138 for ; Sat, 28 Dec 2019 13:03:08 +0200 (EET) Received: by mail-pl1-f193.google.com with SMTP id p9so12736564plk.9 for ; Sat, 28 Dec 2019 03:03:08 -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; bh=ARPaG68yxD5o5TsOrM67M7ULhAk2laWcXJfOTeb3cBQ=; b=bS57Etn9R8YVVzwYpxOV6WHh715VRF7AkljKpXnuzTe4F8zq3p6HR1mLxLsmvx69pi m2XyVOM7b1eHM2W+ax16cjIPHMylux8BoBoukDe5h36WnwkE6AIFnkU/rGrmC2f6H32O qcpWXC+bNtr57KWoTInZ72B2JGdM1nYRvpoeB7vIWdEU5rtlgppZFnOmvsenr1CPBp/s E9CCY72OV6mJzq9wv0By24sVwlVaf0bLr4HoE2jN2KXM8pT29tppZjdIThNTpnkl56co D2Mo289kKn09IymcNVSY7fnNTggLqR6YvoWDvoyQBVs4CVSdpgw+R1crhCm1KMKWWsqK DXCg== 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; bh=ARPaG68yxD5o5TsOrM67M7ULhAk2laWcXJfOTeb3cBQ=; b=fck6r9RPQJ8V8rTD4iASy2/6xTdOewHXHR3MnGx4xUlywPMK3+DwvtOWRUnd1SwzQV 2olbrHDj/Y9/ZEIVmBfTI4t/4NsFZp5ofFK91zeTIACsema9gZP/dBsA0kFlaHpBgMgF WW5uNo4hGn/9YHm2d6tJOKLZXtL/7urebOuNw4oIkJRjwgMv4b92BZB5o51QicaFw1xG h4zo7ywoqZzxIdPe4w15sf/ohLu0XtiHyVUzgouViI67fm4Mm5TDxQ0/I7iKcgXjWJXX F0SqZbnCk0VELcTmQicpMIbKu8ELAdQnH7+BHHK6Hq5arQyN1EPcVgmRwsunyRjFS5Mw HD6g== X-Gm-Message-State: APjAAAX85TB1V5S24yqOzfZ3JYz9A/OtISl01sGVR7WNzJ/ah+01weRx nBH+6vdyna46Tt//KI/o2uGP+/4C X-Google-Smtp-Source: APXvYqwk1yDzw0UEJx1ChSxtAX1/UPOu9mNDcJqQBEV59EIgayzlwg9XqS8J1W39gnayGDjzpAZOMg== X-Received: by 2002:a17:90a:bd10:: with SMTP id y16mr32384170pjr.108.1577530985738; Sat, 28 Dec 2019 03:03:05 -0800 (PST) Received: from localhost.localdomain ([47.90.47.25]) by smtp.gmail.com with ESMTPSA id i9sm43547964pfk.24.2019.12.28.03.03.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 28 Dec 2019 03:03:05 -0800 (PST) From: Jun Zhao To: ffmpeg-devel@ffmpeg.org Date: Sat, 28 Dec 2019 19:03:01 +0800 Message-Id: <1577530981-20984-1-git-send-email-mypopydev@gmail.com> X-Mailer: git-send-email 1.7.1 Subject: [FFmpeg-devel] [PATCH] lavf/libsrt: add version guard for srt encryption control 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: Jun Zhao MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Jun Zhao add version guard for srt encryption control. Signed-off-by: Jun Zhao --- libavformat/libsrt.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/libavformat/libsrt.c b/libavformat/libsrt.c index 2fdfe8e..f981ef1 100644 --- a/libavformat/libsrt.c +++ b/libavformat/libsrt.c @@ -62,9 +62,11 @@ typedef struct SRTContext { int64_t maxbw; int pbkeylen; char *passphrase; +#if SRT_VERSION_VALUE >= 0x010302 int enforced_encryption; int kmrefreshrate; int kmpreannounce; +#endif int mss; int ffs; int ipttl; @@ -105,9 +107,11 @@ static const AVOption libsrt_options[] = { { "maxbw", "Maximum bandwidth (bytes per second) that the connection can use", OFFSET(maxbw), AV_OPT_TYPE_INT64, { .i64 = -1 }, -1, INT64_MAX, .flags = D|E }, { "pbkeylen", "Crypto key len in bytes {16,24,32} Default: 16 (128-bit)", OFFSET(pbkeylen), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 32, .flags = D|E }, { "passphrase", "Crypto PBKDF2 Passphrase size[0,10..64] 0:disable crypto", OFFSET(passphrase), AV_OPT_TYPE_STRING, { .str = NULL }, .flags = D|E }, +#if SRT_VERSION_VALUE >= 0x010302 { "enforced_encryption", "Enforces that both connection parties have the same passphrase set ", OFFSET(enforced_encryption), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, .flags = D|E }, { "kmrefreshrate", "The number of packets to be transmitted after which the encryption key is switched to a new key", OFFSET(kmrefreshrate), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, .flags = D|E }, { "kmpreannounce", "The interval between when a new encryption key is sent and when switchover occurs", OFFSET(kmpreannounce), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, .flags = D|E }, +#endif { "mss", "The Maximum Segment Size", OFFSET(mss), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1500, .flags = D|E }, { "ffs", "Flight flag size (window size) (in bytes)", OFFSET(ffs), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, INT_MAX, .flags = D|E }, { "ipttl", "IP Time To Live", OFFSET(ipttl), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 255, .flags = D|E }, @@ -327,9 +331,11 @@ static int libsrt_set_options_pre(URLContext *h, int fd) (s->maxbw >= 0 && libsrt_setsockopt(h, fd, SRTO_MAXBW, "SRTO_MAXBW", &s->maxbw, sizeof(s->maxbw)) < 0) || (s->pbkeylen >= 0 && libsrt_setsockopt(h, fd, SRTO_PBKEYLEN, "SRTO_PBKEYLEN", &s->pbkeylen, sizeof(s->pbkeylen)) < 0) || (s->passphrase && libsrt_setsockopt(h, fd, SRTO_PASSPHRASE, "SRTO_PASSPHRASE", s->passphrase, strlen(s->passphrase)) < 0) || +#if SRT_VERSION_VALUE >= 0x010302 (s->enforced_encryption >= 0 && libsrt_setsockopt(h, fd, SRTO_ENFORCEDENCRYPTION, "SRTO_ENFORCEDENCRYPTION", &s->enforced_encryption, sizeof(s->enforced_encryption)) < 0) || (s->kmrefreshrate >= 0 && libsrt_setsockopt(h, fd, SRTO_KMREFRESHRATE, "SRTO_KMREFRESHRATE", &s->kmrefreshrate, sizeof(s->kmrefreshrate)) < 0) || (s->kmpreannounce >= 0 && libsrt_setsockopt(h, fd, SRTO_KMPREANNOUNCE, "SRTO_KMPREANNOUNCE", &s->kmpreannounce, sizeof(s->kmpreannounce)) < 0) || +#endif (s->mss >= 0 && libsrt_setsockopt(h, fd, SRTO_MSS, "SRTO_MMS", &s->mss, sizeof(s->mss)) < 0) || (s->ffs >= 0 && libsrt_setsockopt(h, fd, SRTO_FC, "SRTO_FC", &s->ffs, sizeof(s->ffs)) < 0) || (s->ipttl >= 0 && libsrt_setsockopt(h, fd, SRTO_IPTTL, "SRTO_UPTTL", &s->ipttl, sizeof(s->ipttl)) < 0) ||