From nobody Fri Apr 28 19:57:49 2023 X-Original-To: dev-commits-ports-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Q7Ngf0K7Hz47v0g; Fri, 28 Apr 2023 19:57:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Q7Ngd738Kz3JKy; Fri, 28 Apr 2023 19:57:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1682711870; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZdfWGefhTInfUkuTHgToWVxMBkcoppCay3KCXXGcJJE=; b=vH5GxMClfSMSdWvC5Vr5xudZSi8uKD5cQyGBLsI7erwvPlvtgV3iNqGmEolZBf+9Y0xy5d DraocKIQ7dohXLV7cjnFC/ofqkby8S+Wol5+smqzoXOe+6C8xmNTvViy86KXB81FAclbKu yoBuwxk5/3H1tNEZYVxMaJN8VisK3boqlc4XpW/DX0LnhmtF1uLYhusKg/njkoWobDMWT8 i2W84vUnfvZ85d3VMe04bpfpg2vxqfUwqGWGKFvcBz5/Ggciy8cTBUVxp7xBqxe2GJdYDJ PKXHNUGDhyi4Ndx1CZKjLLIo8nks+7+BpxnBQJKaryzVOSD3nTD5eCXRBm4+Aw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1682711870; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZdfWGefhTInfUkuTHgToWVxMBkcoppCay3KCXXGcJJE=; b=gf/A2CgC1NDZkdDy7tKMTUU+5p+qheej6c8dFyIlPy+OGZXK3MjBSqnmVBNolrWkd441Sh YOB4qrBJN71j5OUUOh1o6Q3/Uz3EySAQCwkvkSX0Gd2Z4LNSmYt5fF1EhjuRVRi7CFZXCy nl85AaO56AL1mrI9tEORhJEA0THer/C9uGxOWJIjRB6DN9ug7rVWcWPsMXiEbUeTHi9yc/ Q1u+tUw8bGzdS7ApImdnfDoA1FJYXJeLbAo6GgV7asCGhi7sej+3A018+9k8ROp/Jkedrs nXamqFjTmUfWYCCr5wkexxJ9rT3ioDBtB2QTfB0duqcq01jAY51aeClkhzjlLg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1682711870; a=rsa-sha256; cv=none; b=hODKDwE92mAiQjCwM2bCRXYxl4hJjkn8NXF6eP/ztkDMM0vaDlYBp3WMzZxDzDidM9EySR teRtto0ky/XbI+sqEMTyrlFrUfP9FyVtWM0ccBDIvoIOvvzqYOR9Kud7helDownTIV8qks svi8zBdN2yvgraIqrCFI8QBg+JQvMGYyyaPxlhqFzv4IOp2PY8+X8rsVh+8lkKSf6jdX+V LXjkfRsLBxwkAE4AHtfQauZ7qDehDnHOV98lDenDElEzgQxYZwuHH+LUK82pVfUcE+IzR8 rcn5JOLQlWbMtDjf0nWj00rn2Oa08Y2JvdueAEMOYThg3IY1BxUuJXXsdAqidQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Q7Ngd687wz1CTJ; Fri, 28 Apr 2023 19:57:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 33SJvncN007681; Fri, 28 Apr 2023 19:57:49 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 33SJvn1r007680; Fri, 28 Apr 2023 19:57:49 GMT (envelope-from git) Date: Fri, 28 Apr 2023 19:57:49 GMT Message-Id: <202304281957.33SJvn1r007680@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-branches@FreeBSD.org From: Jan Beich Subject: git: 760e5292fcc7 - 2023Q2 - multimedia/svt-av1: update to 1.5.0 List-Id: Commit messages for all branches of the ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-all@freebsd.org X-BeenThere: dev-commits-ports-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jbeich X-Git-Repository: ports X-Git-Refname: refs/heads/2023Q2 X-Git-Reftype: branch X-Git-Commit: 760e5292fcc7bc7ce02e24f09d768a63550255ef Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch 2023Q2 has been updated by jbeich: URL: https://cgit.FreeBSD.org/ports/commit/?id=760e5292fcc7bc7ce02e24f09d768a63550255ef commit 760e5292fcc7bc7ce02e24f09d768a63550255ef Author: Jan Beich AuthorDate: 2023-04-26 22:11:56 +0000 Commit: Jan Beich CommitDate: 2023-04-28 19:57:20 +0000 multimedia/svt-av1: update to 1.5.0 Changes: https://gitlab.com/AOMediaCodec/SVT-AV1/-/releases/v1.5.0 Reported by: Repology, /r/AV1 (cherry picked from commit 80da20c52e1b54e9e0702e1f95e52b532ae21ee4) --- multimedia/ffmpeg/Makefile | 1 + multimedia/ffmpeg/files/patch-svtav1 | 74 ++++++++++++++++++-------- multimedia/ffmpeg4/Makefile | 1 + multimedia/ffmpeg4/files/patch-svtav1 | 74 ++++++++++++++++++-------- multimedia/gstreamer1-plugins-svt-av1/Makefile | 4 +- multimedia/gstreamer1-plugins-svt-av1/distinfo | 6 +-- multimedia/svt-av1/Makefile | 4 +- multimedia/svt-av1/distinfo | 6 +-- multimedia/svt-av1/pkg-plist | 2 +- 9 files changed, 117 insertions(+), 55 deletions(-) diff --git a/multimedia/ffmpeg/Makefile b/multimedia/ffmpeg/Makefile index a5e0ff203f11..031ab21961bc 100644 --- a/multimedia/ffmpeg/Makefile +++ b/multimedia/ffmpeg/Makefile @@ -1,5 +1,6 @@ PORTNAME= ffmpeg PORTVERSION= 4.4.4 +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= multimedia audio net MASTER_SITES= https://ffmpeg.org/releases/ diff --git a/multimedia/ffmpeg/files/patch-svtav1 b/multimedia/ffmpeg/files/patch-svtav1 index 5d8893a959fa..e6cfac9482f5 100644 --- a/multimedia/ffmpeg/files/patch-svtav1 +++ b/multimedia/ffmpeg/files/patch-svtav1 @@ -15,6 +15,10 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/ded0334d214f https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/70887d44ffa3 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fe100bc556d7 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 +https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/031f1561cd28 +https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/1c6fd7d756af +https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/96748ac54f99 +https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fe196fd29a67 --- configure.orig 2021-10-24 20:47:11 UTC +++ configure @@ -108,7 +112,27 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 } SvtContext; static const struct { -@@ -151,11 +154,126 @@ static int config_enc_params(EbSvtAv1EncConfiguration +@@ -120,16 +123,12 @@ static int alloc_buffer(EbSvtAv1EncConfiguration *conf + + static int alloc_buffer(EbSvtAv1EncConfiguration *config, SvtContext *svt_enc) + { +- const int pack_mode_10bit = +- (config->encoder_bit_depth > 8) && (config->compressed_ten_bit_format == 0) ? 1 : 0; +- const size_t luma_size_8bit = +- config->source_width * config->source_height * (1 << pack_mode_10bit); +- const size_t luma_size_10bit = +- (config->encoder_bit_depth > 8 && pack_mode_10bit == 0) ? luma_size_8bit : 0; ++ const size_t luma_size = config->source_width * config->source_height * ++ (config->encoder_bit_depth > 8 ? 2 : 1); + + EbSvtIOFormat *in_data; + +- svt_enc->raw_size = (luma_size_8bit + luma_size_10bit) * 3 / 2; ++ svt_enc->raw_size = luma_size * 3 / 2; + + // allocate buffer for in and out + svt_enc->in_buf = av_mallocz(sizeof(*svt_enc->in_buf)); +@@ -151,11 +150,132 @@ static int config_enc_params(EbSvtAv1EncConfiguration { SvtContext *svt_enc = avctx->priv_data; const AVPixFmtDescriptor *desc; @@ -116,14 +140,19 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 + // Update param from options +#if FF_API_SVTAV1_OPTS -+ param->hierarchical_levels = svt_enc->hierarchical_level; -+ param->tier = svt_enc->tier; -+ param->scene_change_detection = svt_enc->scd; -+ param->tile_columns = svt_enc->tile_columns; -+ param->tile_rows = svt_enc->tile_rows; ++ if (svt_enc->hierarchical_level >= 0) ++ param->hierarchical_levels = svt_enc->hierarchical_level; ++ if (svt_enc->tier >= 0) ++ param->tier = svt_enc->tier; ++ if (svt_enc->scd >= 0) ++ param->scene_change_detection = svt_enc->scd; ++ if (svt_enc->tile_columns >= 0) ++ param->tile_columns = svt_enc->tile_columns; ++ if (svt_enc->tile_rows >= 0) ++ param->tile_rows = svt_enc->tile_rows; + + if (svt_enc->la_depth >= 0) -+ param->look_ahead_distance = svt_enc->la_depth; ++ param->look_ahead_distance = svt_enc->la_depth; +#endif + + if (svt_enc->enc_mode >= 0) @@ -140,7 +169,8 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 + param->min_qp_allowed = avctx->qmin; + } + param->max_bit_rate = avctx->rc_max_rate; -+ param->vbv_bufsize = avctx->rc_buffer_size; ++ if (avctx->bit_rate && avctx->rc_buffer_size) ++ param->maximum_buffer_size_ms = avctx->rc_buffer_size * 1000LL / avctx->bit_rate; + + if (svt_enc->crf > 0) { + param->qp = svt_enc->crf; @@ -236,7 +266,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 param->encoder_bit_depth = desc->comp[0].depth; if (desc->log2_chroma_w == 1 && desc->log2_chroma_h == 1) -@@ -169,12 +287,6 @@ static int config_enc_params(EbSvtAv1EncConfiguration +@@ -169,12 +289,6 @@ static int config_enc_params(EbSvtAv1EncConfiguration return AVERROR(EINVAL); } @@ -249,7 +279,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 if ((param->encoder_color_format == EB_YUV422 || param->encoder_bit_depth > 10) && param->profile != FF_PROFILE_AV1_PROFESSIONAL ) { av_log(avctx, AV_LOG_WARNING, "Forcing Professional profile\n"); -@@ -184,40 +296,21 @@ static int config_enc_params(EbSvtAv1EncConfiguration +@@ -184,40 +298,21 @@ static int config_enc_params(EbSvtAv1EncConfiguration param->profile = FF_PROFILE_AV1_HIGH; } @@ -263,7 +293,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 + avctx->bit_rate = param->rate_control_mode > 0 ? + param->target_bit_rate : 0; + avctx->rc_max_rate = param->max_bit_rate; -+ avctx->rc_buffer_size = param->vbv_bufsize; ++ avctx->rc_buffer_size = param->maximum_buffer_size_ms * avctx->bit_rate / 1000LL; - param->target_bit_rate = avctx->bit_rate; + if (avctx->bit_rate || avctx->rc_max_rate || avctx->rc_buffer_size) { @@ -301,7 +331,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 return 0; } -@@ -330,11 +423,8 @@ static int eb_send_frame(AVCodecContext *avctx, const +@@ -330,11 +425,8 @@ static int eb_send_frame(AVCodecContext *avctx, const if (svt_enc->eos_flag == EOS_SENT) return 0; @@ -315,7 +345,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 headerPtrLast.flags = EB_BUFFERFLAG_EOS; svt_av1_enc_send_picture(svt_enc->svt_handle, &headerPtrLast); -@@ -350,6 +440,16 @@ static int eb_send_frame(AVCodecContext *avctx, const +@@ -350,6 +442,16 @@ static int eb_send_frame(AVCodecContext *avctx, const headerPtr->p_app_private = NULL; headerPtr->pts = frame->pts; @@ -332,7 +362,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 svt_av1_enc_send_picture(svt_enc->svt_handle, headerPtr); return 0; -@@ -472,21 +572,22 @@ static const AVOption options[] = { +@@ -472,21 +574,22 @@ static const AVOption options[] = { #define OFFSET(x) offsetof(SvtContext, x) #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM static const AVOption options[] = { @@ -340,7 +370,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 - AV_OPT_TYPE_INT, { .i64 = 4 }, 3, 4, VE , "hielevel"}, +#if FF_API_SVTAV1_OPTS + { "hielevel", "Hierarchical prediction levels setting (Deprecated, use svtav1-params)", OFFSET(hierarchical_level), -+ AV_OPT_TYPE_INT, { .i64 = 4 }, 3, 4, VE | AV_OPT_FLAG_DEPRECATED , "hielevel"}, ++ AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 4, VE | AV_OPT_FLAG_DEPRECATED , "hielevel"}, { "3level", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 3 }, INT_MIN, INT_MAX, VE, "hielevel" }, { "4level", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 4 }, INT_MIN, INT_MAX, VE, "hielevel" }, @@ -355,7 +385,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 - { "tier", "Set operating point tier", OFFSET(tier), - AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE, "tier" }, + { "tier", "Set operating point tier (Deprecated, use svtav1-params)", OFFSET(tier), -+ AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE | AV_OPT_FLAG_DEPRECATED, "tier" }, ++ AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VE | AV_OPT_FLAG_DEPRECATED, "tier" }, { "main", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, 0, 0, VE, "tier" }, { "high", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, 0, 0, VE, "tier" }, +#endif @@ -364,7 +394,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 FF_AV1_PROFILE_OPTS -@@ -518,21 +619,20 @@ static const AVOption options[] = { +@@ -518,21 +621,20 @@ static const AVOption options[] = { { LEVEL("7.3", 73) }, #undef LEVEL @@ -379,12 +409,12 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 + AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 63, VE }, +#if FF_API_SVTAV1_OPTS + { "sc_detection", "Scene change detection (Deprecated, use svtav1-params)", OFFSET(scd), -+ AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE | AV_OPT_FLAG_DEPRECATED }, ++ AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VE | AV_OPT_FLAG_DEPRECATED }, - { "qp", "Quantizer to use with cqp rate control mode", OFFSET(qp), - AV_OPT_TYPE_INT, { .i64 = 50 }, 0, 63, VE }, -+ { "tile_columns", "Log2 of number of tile columns to use (Deprecated, use svtav1-params)", OFFSET(tile_columns), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 4, VE | AV_OPT_FLAG_DEPRECATED }, -+ { "tile_rows", "Log2 of number of tile rows to use (Deprecated, use svtav1-params)", OFFSET(tile_rows), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 6, VE | AV_OPT_FLAG_DEPRECATED }, ++ { "tile_columns", "Log2 of number of tile columns to use (Deprecated, use svtav1-params)", OFFSET(tile_columns), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 4, VE | AV_OPT_FLAG_DEPRECATED }, ++ { "tile_rows", "Log2 of number of tile rows to use (Deprecated, use svtav1-params)", OFFSET(tile_rows), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 6, VE | AV_OPT_FLAG_DEPRECATED }, +#endif - { "sc_detection", "Scene change detection", OFFSET(scd), @@ -397,7 +427,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 {NULL}, }; -@@ -544,9 +644,10 @@ static const AVCodecDefault eb_enc_defaults[] = { +@@ -544,9 +646,10 @@ static const AVCodecDefault eb_enc_defaults[] = { }; static const AVCodecDefault eb_enc_defaults[] = { @@ -410,7 +440,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 { "qmax", "63" }, { NULL }, }; -@@ -561,12 +662,11 @@ AVCodec ff_libsvtav1_encoder = { +@@ -561,12 +664,11 @@ AVCodec ff_libsvtav1_encoder = { .receive_packet = eb_receive_packet, .close = eb_enc_close, .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS, diff --git a/multimedia/ffmpeg4/Makefile b/multimedia/ffmpeg4/Makefile index 4012a5192d16..75b29b4cdadd 100644 --- a/multimedia/ffmpeg4/Makefile +++ b/multimedia/ffmpeg4/Makefile @@ -1,5 +1,6 @@ PORTNAME= ffmpeg PORTVERSION= 4.4.4 +PORTREVISION= 1 CATEGORIES= multimedia audio net MASTER_SITES= https://ffmpeg.org/releases/ PKGNAMESUFFIX= 4 diff --git a/multimedia/ffmpeg4/files/patch-svtav1 b/multimedia/ffmpeg4/files/patch-svtav1 index 5d8893a959fa..e6cfac9482f5 100644 --- a/multimedia/ffmpeg4/files/patch-svtav1 +++ b/multimedia/ffmpeg4/files/patch-svtav1 @@ -15,6 +15,10 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/ded0334d214f https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/70887d44ffa3 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fe100bc556d7 https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 +https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/031f1561cd28 +https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/1c6fd7d756af +https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/96748ac54f99 +https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fe196fd29a67 --- configure.orig 2021-10-24 20:47:11 UTC +++ configure @@ -108,7 +112,27 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 } SvtContext; static const struct { -@@ -151,11 +154,126 @@ static int config_enc_params(EbSvtAv1EncConfiguration +@@ -120,16 +123,12 @@ static int alloc_buffer(EbSvtAv1EncConfiguration *conf + + static int alloc_buffer(EbSvtAv1EncConfiguration *config, SvtContext *svt_enc) + { +- const int pack_mode_10bit = +- (config->encoder_bit_depth > 8) && (config->compressed_ten_bit_format == 0) ? 1 : 0; +- const size_t luma_size_8bit = +- config->source_width * config->source_height * (1 << pack_mode_10bit); +- const size_t luma_size_10bit = +- (config->encoder_bit_depth > 8 && pack_mode_10bit == 0) ? luma_size_8bit : 0; ++ const size_t luma_size = config->source_width * config->source_height * ++ (config->encoder_bit_depth > 8 ? 2 : 1); + + EbSvtIOFormat *in_data; + +- svt_enc->raw_size = (luma_size_8bit + luma_size_10bit) * 3 / 2; ++ svt_enc->raw_size = luma_size * 3 / 2; + + // allocate buffer for in and out + svt_enc->in_buf = av_mallocz(sizeof(*svt_enc->in_buf)); +@@ -151,11 +150,132 @@ static int config_enc_params(EbSvtAv1EncConfiguration { SvtContext *svt_enc = avctx->priv_data; const AVPixFmtDescriptor *desc; @@ -116,14 +140,19 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 + // Update param from options +#if FF_API_SVTAV1_OPTS -+ param->hierarchical_levels = svt_enc->hierarchical_level; -+ param->tier = svt_enc->tier; -+ param->scene_change_detection = svt_enc->scd; -+ param->tile_columns = svt_enc->tile_columns; -+ param->tile_rows = svt_enc->tile_rows; ++ if (svt_enc->hierarchical_level >= 0) ++ param->hierarchical_levels = svt_enc->hierarchical_level; ++ if (svt_enc->tier >= 0) ++ param->tier = svt_enc->tier; ++ if (svt_enc->scd >= 0) ++ param->scene_change_detection = svt_enc->scd; ++ if (svt_enc->tile_columns >= 0) ++ param->tile_columns = svt_enc->tile_columns; ++ if (svt_enc->tile_rows >= 0) ++ param->tile_rows = svt_enc->tile_rows; + + if (svt_enc->la_depth >= 0) -+ param->look_ahead_distance = svt_enc->la_depth; ++ param->look_ahead_distance = svt_enc->la_depth; +#endif + + if (svt_enc->enc_mode >= 0) @@ -140,7 +169,8 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 + param->min_qp_allowed = avctx->qmin; + } + param->max_bit_rate = avctx->rc_max_rate; -+ param->vbv_bufsize = avctx->rc_buffer_size; ++ if (avctx->bit_rate && avctx->rc_buffer_size) ++ param->maximum_buffer_size_ms = avctx->rc_buffer_size * 1000LL / avctx->bit_rate; + + if (svt_enc->crf > 0) { + param->qp = svt_enc->crf; @@ -236,7 +266,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 param->encoder_bit_depth = desc->comp[0].depth; if (desc->log2_chroma_w == 1 && desc->log2_chroma_h == 1) -@@ -169,12 +287,6 @@ static int config_enc_params(EbSvtAv1EncConfiguration +@@ -169,12 +289,6 @@ static int config_enc_params(EbSvtAv1EncConfiguration return AVERROR(EINVAL); } @@ -249,7 +279,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 if ((param->encoder_color_format == EB_YUV422 || param->encoder_bit_depth > 10) && param->profile != FF_PROFILE_AV1_PROFESSIONAL ) { av_log(avctx, AV_LOG_WARNING, "Forcing Professional profile\n"); -@@ -184,40 +296,21 @@ static int config_enc_params(EbSvtAv1EncConfiguration +@@ -184,40 +298,21 @@ static int config_enc_params(EbSvtAv1EncConfiguration param->profile = FF_PROFILE_AV1_HIGH; } @@ -263,7 +293,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 + avctx->bit_rate = param->rate_control_mode > 0 ? + param->target_bit_rate : 0; + avctx->rc_max_rate = param->max_bit_rate; -+ avctx->rc_buffer_size = param->vbv_bufsize; ++ avctx->rc_buffer_size = param->maximum_buffer_size_ms * avctx->bit_rate / 1000LL; - param->target_bit_rate = avctx->bit_rate; + if (avctx->bit_rate || avctx->rc_max_rate || avctx->rc_buffer_size) { @@ -301,7 +331,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 return 0; } -@@ -330,11 +423,8 @@ static int eb_send_frame(AVCodecContext *avctx, const +@@ -330,11 +425,8 @@ static int eb_send_frame(AVCodecContext *avctx, const if (svt_enc->eos_flag == EOS_SENT) return 0; @@ -315,7 +345,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 headerPtrLast.flags = EB_BUFFERFLAG_EOS; svt_av1_enc_send_picture(svt_enc->svt_handle, &headerPtrLast); -@@ -350,6 +440,16 @@ static int eb_send_frame(AVCodecContext *avctx, const +@@ -350,6 +442,16 @@ static int eb_send_frame(AVCodecContext *avctx, const headerPtr->p_app_private = NULL; headerPtr->pts = frame->pts; @@ -332,7 +362,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 svt_av1_enc_send_picture(svt_enc->svt_handle, headerPtr); return 0; -@@ -472,21 +572,22 @@ static const AVOption options[] = { +@@ -472,21 +574,22 @@ static const AVOption options[] = { #define OFFSET(x) offsetof(SvtContext, x) #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM static const AVOption options[] = { @@ -340,7 +370,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 - AV_OPT_TYPE_INT, { .i64 = 4 }, 3, 4, VE , "hielevel"}, +#if FF_API_SVTAV1_OPTS + { "hielevel", "Hierarchical prediction levels setting (Deprecated, use svtav1-params)", OFFSET(hierarchical_level), -+ AV_OPT_TYPE_INT, { .i64 = 4 }, 3, 4, VE | AV_OPT_FLAG_DEPRECATED , "hielevel"}, ++ AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 4, VE | AV_OPT_FLAG_DEPRECATED , "hielevel"}, { "3level", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 3 }, INT_MIN, INT_MAX, VE, "hielevel" }, { "4level", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 4 }, INT_MIN, INT_MAX, VE, "hielevel" }, @@ -355,7 +385,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 - { "tier", "Set operating point tier", OFFSET(tier), - AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE, "tier" }, + { "tier", "Set operating point tier (Deprecated, use svtav1-params)", OFFSET(tier), -+ AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, VE | AV_OPT_FLAG_DEPRECATED, "tier" }, ++ AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 1, VE | AV_OPT_FLAG_DEPRECATED, "tier" }, { "main", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, 0, 0, VE, "tier" }, { "high", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, 0, 0, VE, "tier" }, +#endif @@ -364,7 +394,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 FF_AV1_PROFILE_OPTS -@@ -518,21 +619,20 @@ static const AVOption options[] = { +@@ -518,21 +621,20 @@ static const AVOption options[] = { { LEVEL("7.3", 73) }, #undef LEVEL @@ -379,12 +409,12 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 + AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 63, VE }, +#if FF_API_SVTAV1_OPTS + { "sc_detection", "Scene change detection (Deprecated, use svtav1-params)", OFFSET(scd), -+ AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE | AV_OPT_FLAG_DEPRECATED }, ++ AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, VE | AV_OPT_FLAG_DEPRECATED }, - { "qp", "Quantizer to use with cqp rate control mode", OFFSET(qp), - AV_OPT_TYPE_INT, { .i64 = 50 }, 0, 63, VE }, -+ { "tile_columns", "Log2 of number of tile columns to use (Deprecated, use svtav1-params)", OFFSET(tile_columns), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 4, VE | AV_OPT_FLAG_DEPRECATED }, -+ { "tile_rows", "Log2 of number of tile rows to use (Deprecated, use svtav1-params)", OFFSET(tile_rows), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 6, VE | AV_OPT_FLAG_DEPRECATED }, ++ { "tile_columns", "Log2 of number of tile columns to use (Deprecated, use svtav1-params)", OFFSET(tile_columns), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 4, VE | AV_OPT_FLAG_DEPRECATED }, ++ { "tile_rows", "Log2 of number of tile rows to use (Deprecated, use svtav1-params)", OFFSET(tile_rows), AV_OPT_TYPE_INT, { .i64 = -1 }, -1, 6, VE | AV_OPT_FLAG_DEPRECATED }, +#endif - { "sc_detection", "Scene change detection", OFFSET(scd), @@ -397,7 +427,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 {NULL}, }; -@@ -544,9 +644,10 @@ static const AVCodecDefault eb_enc_defaults[] = { +@@ -544,9 +646,10 @@ static const AVCodecDefault eb_enc_defaults[] = { }; static const AVCodecDefault eb_enc_defaults[] = { @@ -410,7 +440,7 @@ https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/fb70e0611bd7 { "qmax", "63" }, { NULL }, }; -@@ -561,12 +662,11 @@ AVCodec ff_libsvtav1_encoder = { +@@ -561,12 +664,11 @@ AVCodec ff_libsvtav1_encoder = { .receive_packet = eb_receive_packet, .close = eb_enc_close, .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS, diff --git a/multimedia/gstreamer1-plugins-svt-av1/Makefile b/multimedia/gstreamer1-plugins-svt-av1/Makefile index d57d15dfa09d..b9b8c597d69b 100644 --- a/multimedia/gstreamer1-plugins-svt-av1/Makefile +++ b/multimedia/gstreamer1-plugins-svt-av1/Makefile @@ -1,6 +1,6 @@ PORTNAME= svt-av1 DISTVERSIONPREFIX= v -DISTVERSION= 1.4.1 +DISTVERSION= 1.5.0 CATEGORIES= multimedia PKGNAMEPREFIX= gstreamer1-plugins- @@ -18,7 +18,7 @@ USE_GITLAB= yes USE_GNOME= glib20 GL_ACCOUNT= AOMediaCodec GL_PROJECT= SVT-AV1 -GL_COMMIT= 018276d714ce65d9b586f6205ee016cbd8d5425d +GL_COMMIT= ea296ef350714fb6f105b420fb0bc321d9997ffd WRKSRC_SUBDIR= gstreamer-plugin PLIST_FILES= lib/gstreamer-1.0/libgstsvtav1enc.so diff --git a/multimedia/gstreamer1-plugins-svt-av1/distinfo b/multimedia/gstreamer1-plugins-svt-av1/distinfo index 7d290bbf1b0e..a4994bb9bf80 100644 --- a/multimedia/gstreamer1-plugins-svt-av1/distinfo +++ b/multimedia/gstreamer1-plugins-svt-av1/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1671019163 -SHA256 (AOMediaCodec-SVT-AV1-018276d714ce65d9b586f6205ee016cbd8d5425d_GL0.tar.gz) = ec24cd4ca19a8748dae7683407fc7ca605caa277bbd81c76cf39b8707af53a5e -SIZE (AOMediaCodec-SVT-AV1-018276d714ce65d9b586f6205ee016cbd8d5425d_GL0.tar.gz) = 10112882 +TIMESTAMP = 1682547116 +SHA256 (AOMediaCodec-SVT-AV1-ea296ef350714fb6f105b420fb0bc321d9997ffd_GL0.tar.gz) = 4797196205b247e99f739351229a25c3cb5c76f200ab14a25155726b06323ce9 +SIZE (AOMediaCodec-SVT-AV1-ea296ef350714fb6f105b420fb0bc321d9997ffd_GL0.tar.gz) = 10159331 diff --git a/multimedia/svt-av1/Makefile b/multimedia/svt-av1/Makefile index bccd2f65233e..0f3c0aaf7e0e 100644 --- a/multimedia/svt-av1/Makefile +++ b/multimedia/svt-av1/Makefile @@ -1,6 +1,6 @@ PORTNAME= svt-av1 DISTVERSIONPREFIX= v -DISTVERSION= 1.4.1 +DISTVERSION= 1.5.0 CATEGORIES= multimedia MAINTAINER= jbeich@FreeBSD.org @@ -21,7 +21,7 @@ USE_GITLAB= yes USE_LDCONFIG= yes GL_ACCOUNT= AOMediaCodec GL_PROJECT= SVT-AV1 -GL_COMMIT= 018276d714ce65d9b586f6205ee016cbd8d5425d +GL_COMMIT= ea296ef350714fb6f105b420fb0bc321d9997ffd CMAKE_ON= ENABLE_NASM CMAKE_OFF= NATIVE diff --git a/multimedia/svt-av1/distinfo b/multimedia/svt-av1/distinfo index 7d290bbf1b0e..a4994bb9bf80 100644 --- a/multimedia/svt-av1/distinfo +++ b/multimedia/svt-av1/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1671019163 -SHA256 (AOMediaCodec-SVT-AV1-018276d714ce65d9b586f6205ee016cbd8d5425d_GL0.tar.gz) = ec24cd4ca19a8748dae7683407fc7ca605caa277bbd81c76cf39b8707af53a5e -SIZE (AOMediaCodec-SVT-AV1-018276d714ce65d9b586f6205ee016cbd8d5425d_GL0.tar.gz) = 10112882 +TIMESTAMP = 1682547116 +SHA256 (AOMediaCodec-SVT-AV1-ea296ef350714fb6f105b420fb0bc321d9997ffd_GL0.tar.gz) = 4797196205b247e99f739351229a25c3cb5c76f200ab14a25155726b06323ce9 +SIZE (AOMediaCodec-SVT-AV1-ea296ef350714fb6f105b420fb0bc321d9997ffd_GL0.tar.gz) = 10159331 diff --git a/multimedia/svt-av1/pkg-plist b/multimedia/svt-av1/pkg-plist index 4fb0bb8478b0..2deabbeb7056 100644 --- a/multimedia/svt-av1/pkg-plist +++ b/multimedia/svt-av1/pkg-plist @@ -13,6 +13,6 @@ lib/libSvtAv1Dec.so.0 lib/libSvtAv1Dec.so.0.8.7 lib/libSvtAv1Enc.so lib/libSvtAv1Enc.so.1 -lib/libSvtAv1Enc.so.1.4.1 +lib/libSvtAv1Enc.so.1.5.0 libdata/pkgconfig/SvtAv1Dec.pc libdata/pkgconfig/SvtAv1Enc.pc