[vlc-devel] [PATCHv4 11/12] WIP: contrib: rav1e: v0.3.4 candidate

Thomas Guillem thomas at gllm.fr
Tue Sep 8 14:13:40 CEST 2020


cf. https://github.com/xiph/rav1e/pull/2530
---
 ...rm-tables-Remove-superfluous-symbols.patch |  72 ++
 ...-split-cause-desync-with-bottomup-pa.patch |  68 ++
 ...ot-use-C-impossible-types-in-the-API.patch |  34 +
 .../src/rav1e/0004-Bump-the-Cargo.lock.patch  | 860 ++++++++++++++++++
 .../0005-CI-Update-nasm-to-2.15.04.patch      |  76 ++
 contrib/src/rav1e/rules.mak                   |   5 +
 6 files changed, 1115 insertions(+)
 create mode 100644 contrib/src/rav1e/0001-arm-tables-Remove-superfluous-symbols.patch
 create mode 100644 contrib/src/rav1e/0002-Bug-fix-inter-tx-split-cause-desync-with-bottomup-pa.patch
 create mode 100644 contrib/src/rav1e/0003-Do-not-use-C-impossible-types-in-the-API.patch
 create mode 100644 contrib/src/rav1e/0004-Bump-the-Cargo.lock.patch
 create mode 100644 contrib/src/rav1e/0005-CI-Update-nasm-to-2.15.04.patch

diff --git a/contrib/src/rav1e/0001-arm-tables-Remove-superfluous-symbols.patch b/contrib/src/rav1e/0001-arm-tables-Remove-superfluous-symbols.patch
new file mode 100644
index 00000000000..c6c21b68666
--- /dev/null
+++ b/contrib/src/rav1e/0001-arm-tables-Remove-superfluous-symbols.patch
@@ -0,0 +1,72 @@
+From db64a2c4b9780d14a07639fcf0c8f9f753916b3d Mon Sep 17 00:00:00 2001
+From: Vibhoothi <vibhoothiiaanand at gmail.com>
+Date: Sun, 31 May 2020 19:38:20 +0000
+Subject: [PATCH 1/5] arm: tables: Remove superfluous symbols
+
+The const macro implicitly defines a label, so the manually defined
+ones are duplicates
+When it is compiled with clang, it is
+noticed:
+cargo:warning=src/arm/tables.S:44:1: error: invalid symbol
+redefinition
+cargo:warning=rav1e_mc_subpel_filters:
+cargo:warning=^
+---
+ src/arm/tables.S | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/src/arm/tables.S b/src/arm/tables.S
+index f3fb115f..c0c146e3 100644
+--- a/src/arm/tables.S
++++ b/src/arm/tables.S
+@@ -41,7 +41,6 @@
+ .global X(mc_subpel_filters)
+ .hidden X(mc_subpel_filters)
+ const X(mc_subpel_filters), align=3
+-X(mc_subpel_filters):
+ .byte  0,   1,  -3,  63,   4,  -1,   0,   0 /* REGULAR */
+ .byte  0,   1,  -5,  61,   9,  -2,   0,   0
+ .byte  0,   1,  -6,  58,  14,  -4,   1,   0
+@@ -122,7 +121,6 @@ endconst
+ .global X(filter_intra_taps)
+ .hidden X(filter_intra_taps)
+ const X(filter_intra_taps), align=4
+-X(filter_intra_taps):
+ .byte  -6,  10,  -5,   2,  -3,   1,  -3,   1 /* 0 */
+ .byte  -4,   6,  -3,   2,  -3,   2,  -3,   1
+ .byte   0,   0,  10,   0,   1,  10,   1,   2
+@@ -168,7 +166,6 @@ endconst
+ .global X(sgr_x_by_x)
+ .hidden X(sgr_x_by_x)
+ const X(sgr_x_by_x), align=4
+-X(sgr_x_by_x):
+ .byte 255, 128,  85,  64,  51,  43,  37,  32,  28,  26,  23,  21,  20,  18,  17
+ .byte  16,  15,  14,  13,  13,  12,  12,  11,  11,  10,  10,   9,   9,   9,   9
+ .byte   8,   8,   8,   8,   7,   7,   7,   7,   7,   6,   6,   6,   6,   6,   6
+@@ -192,7 +189,6 @@ endconst
+ .global X(mc_warp_filter)
+ .hidden X(mc_warp_filter)
+ const X(mc_warp_filter), align=3
+-X(mc_warp_filter):
+ /*  [-1, 0) */
+ .byte 0,   0, 127,   1,   0, 0, 0, 0,  0, - 1, 127,   2,   0, 0, 0, 0
+ .byte 1, - 3, 127,   4, - 1, 0, 0, 0,  1, - 4, 126,   6, - 2, 1, 0, 0
+@@ -299,7 +295,6 @@ endconst
+ .global X(sm_weights)
+ .hidden X(sm_weights)
+ const X(sm_weights)
+-X(sm_weights):
+ .byte   0,   0 /* Unused, because we always offset by bs, which is at least 2. */
+ .byte 255, 128 /* bs = 2 */
+ .byte 255, 149,  85,  64 /* bs = 4 */
+@@ -323,7 +318,6 @@ endconst
+ .global X(obmc_masks)
+ .hidden X(obmc_masks)
+ const X(obmc_masks), align=4
+-X(obmc_masks):
+ .byte  0,  0 /* Unused */
+ .byte 19,  0 /* 2 */
+ .byte 25, 14,  5,  0 /* 4 */
+-- 
+2.28.0
+
diff --git a/contrib/src/rav1e/0002-Bug-fix-inter-tx-split-cause-desync-with-bottomup-pa.patch b/contrib/src/rav1e/0002-Bug-fix-inter-tx-split-cause-desync-with-bottomup-pa.patch
new file mode 100644
index 00000000000..c06aa7c87f1
--- /dev/null
+++ b/contrib/src/rav1e/0002-Bug-fix-inter-tx-split-cause-desync-with-bottomup-pa.patch
@@ -0,0 +1,68 @@
+From 0451265d99420e19f8e934f17bc8a64b51154250 Mon Sep 17 00:00:00 2001
+From: Yushin Cho <ycho at mozilla.com>
+Date: Sun, 9 Aug 2020 15:04:09 -0700
+Subject: [PATCH 2/5] Bug fix: inter-tx split cause desync with bottomup
+ partition search
+
+- This fix is requied in order to merge open-partition, as well as
+future enablement of inter-tx for lower speeds which uses bottomup
+partition search.
+
+- The cause of desync was related to the enforcement of skip when a
+partition is not skip but no coefficients are coded. In such case,
+inter-tx split is not possible (becauses no coefficients exist) thus
+tx_size and tx_type should be set accordingly.
+---
+ src/encoder.rs | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/src/encoder.rs b/src/encoder.rs
+index 74e46199..19acbe38 100644
+--- a/src/encoder.rs
++++ b/src/encoder.rs
+@@ -1770,6 +1770,7 @@ pub fn encode_block_post_cdef<T: Pixel>(
+         );
+       }
+     } else {
++      debug_assert!(bsize == BlockSize::BLOCK_4X4 || (is_inter && skip));
+       cw.bc.update_tx_size_context(tile_bo, bsize, tx_size, is_inter && skip);
+     }
+   }
+@@ -2186,7 +2187,6 @@ pub fn encode_block_with_modes<T: Pixel>(
+   let mvs = mode_decision.mvs;
+   let mut skip = mode_decision.skip;
+   let mut cdef_coded = cw.bc.cdef_coded;
+-  let (tx_size, tx_type) = (mode_decision.tx_size, mode_decision.tx_type);
+ 
+   // Set correct segmentation ID before encoding and before
+   // rdo_tx_size_type().
+@@ -2197,9 +2197,15 @@ pub fn encode_block_with_modes<T: Pixel>(
+   let mode_context =
+     cw.find_mvrefs(tile_bo, ref_frames, &mut mv_stack, bsize, fi, is_compound);
+ 
+-  if !mode_decision.skip && !mode_decision.has_coeff {
++  let (tx_size, tx_type) = if !mode_decision.skip && !mode_decision.has_coeff {
+     skip = true;
+-  }
++    rdo_tx_size_type(
++      fi, ts, cw, bsize, tile_bo, mode_luma, ref_frames, mvs, skip,
++    )
++  } else {
++    (mode_decision.tx_size, mode_decision.tx_type)
++  };
++
+   cdef_coded = encode_block_pre_cdef(
+     &fi.sequence,
+     ts,
+@@ -2669,7 +2675,7 @@ fn encode_partition_topdown<T: Pixel, W: Writer>(
+       cw.bc.blocks.set_segmentation_idx(tile_bo, bsize, part_decision.sidx);
+ 
+       // NOTE: Cannot avoid calling rdo_tx_size_type() here again,
+-      // because, with top-down partition RDO, the neighnoring contexts
++      // because, with top-down partition RDO, the neighboring contexts
+       // of current partition can change, i.e. neighboring partitions can split down more.
+       let (tx_size, tx_type) = rdo_tx_size_type(
+         fi, ts, cw, bsize, tile_bo, mode_luma, ref_frames, mvs, skip,
+-- 
+2.28.0
+
diff --git a/contrib/src/rav1e/0003-Do-not-use-C-impossible-types-in-the-API.patch b/contrib/src/rav1e/0003-Do-not-use-C-impossible-types-in-the-API.patch
new file mode 100644
index 00000000000..b3f01007e75
--- /dev/null
+++ b/contrib/src/rav1e/0003-Do-not-use-C-impossible-types-in-the-API.patch
@@ -0,0 +1,34 @@
+From 7c612204ed72a0c3693b5730917e1a3b3960c1e5 Mon Sep 17 00:00:00 2001
+From: Luca Barbato <lu_zero at gentoo.org>
+Date: Fri, 7 Aug 2020 21:39:33 +0200
+Subject: [PATCH 3/5] Do not use C-impossible types in the API
+
+Fixes #2441.
+---
+ src/capi.rs | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/capi.rs b/src/capi.rs
+index 0f6bf96a..1a490a19 100644
+--- a/src/capi.rs
++++ b/src/capi.rs
+@@ -420,12 +420,15 @@ pub unsafe extern fn rav1e_config_set_content_light(
+ /// min_luminance is a 18.14 fixed point value.
+ ///
+ /// Returns a negative value on error or 0.
++/// cbindgen:ptrs-as-arrays=[[primaries;3]]
+ #[no_mangle]
+ pub unsafe extern fn rav1e_config_set_mastering_display(
+-  cfg: *mut Config, primaries: [rav1e::ChromaticityPoint; 3],
++  cfg: *mut Config, primaries: *const rav1e::ChromaticityPoint,
+   white_point: rav1e::ChromaticityPoint, max_luminance: u32,
+   min_luminance: u32,
+ ) -> c_int {
++  let primaries = *(primaries as *const [rav1e::ChromaticityPoint; 3]);
++
+   (*cfg).cfg.enc.mastering_display = Some(rav1e::MasteringDisplay {
+     primaries,
+     white_point,
+-- 
+2.28.0
+
diff --git a/contrib/src/rav1e/0004-Bump-the-Cargo.lock.patch b/contrib/src/rav1e/0004-Bump-the-Cargo.lock.patch
new file mode 100644
index 00000000000..6ebd54fd7da
--- /dev/null
+++ b/contrib/src/rav1e/0004-Bump-the-Cargo.lock.patch
@@ -0,0 +1,860 @@
+From 2b03ef560adc6c0af52873b8e666c28961c13422 Mon Sep 17 00:00:00 2001
+From: Luca Barbato <lu_zero at gentoo.org>
+Date: Tue, 8 Sep 2020 13:21:55 +0200
+Subject: [PATCH 4/5] Bump the Cargo.lock
+
+---
+ Cargo.lock | 336 +++++++++++++++++++++++++++++------------------------
+ 1 file changed, 187 insertions(+), 149 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index 6583584b..564fec7b 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -2,24 +2,30 @@
+ # It is not intended for manual editing.
+ [[package]]
+ name = "addr2line"
+-version = "0.12.1"
++version = "0.13.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a49806b9dadc843c61e7c97e72490ad7f7220ae249012fbda9ad0609457c0543"
++checksum = "1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072"
+ dependencies = [
+  "gimli",
+ ]
+ 
++[[package]]
++name = "adler"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
++
+ [[package]]
+ name = "adler32"
+-version = "1.0.4"
++version = "1.2.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
++checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
+ 
+ [[package]]
+ name = "aho-corasick"
+-version = "0.7.10"
++version = "0.7.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
++checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
+ dependencies = [
+  "memchr",
+ ]
+@@ -98,19 +104,20 @@ dependencies = [
+ 
+ [[package]]
+ name = "autocfg"
+-version = "1.0.0"
++version = "1.0.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
++checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
+ 
+ [[package]]
+ name = "backtrace"
+-version = "0.3.48"
++version = "0.3.50"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0df2f85c8a2abbe3b7d7e748052fdd9b76a0458fdeb16ad4223f5eca78c7c130"
++checksum = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293"
+ dependencies = [
+  "addr2line",
+  "cfg-if",
+  "libc",
++ "miniz_oxide 0.4.1",
+  "object",
+  "rustc-demangle",
+ ]
+@@ -195,9 +202,9 @@ checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
+ 
+ [[package]]
+ name = "bytemuck"
+-version = "1.2.0"
++version = "1.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "37fa13df2292ecb479ec23aa06f4507928bef07839be9ef15281411076629431"
++checksum = "92046dbb6f9332943252123f53623e0a6d513651af14967e2991c371ec20201c"
+ 
+ [[package]]
+ name = "byteorder"
+@@ -216,9 +223,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "cc"
+-version = "1.0.54"
++version = "1.0.59"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7bbb73db36c1246e9034e307d0fba23f9a2e251faa47ade70c1bd252220c8311"
++checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381"
+ dependencies = [
+  "jobserver",
+ ]
+@@ -240,9 +247,9 @@ checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+ 
+ [[package]]
+ name = "chrono"
+-version = "0.4.11"
++version = "0.4.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
++checksum = "942f72db697d8767c22d46a598e01f2d3b475501ea43d0db4f16d90259182d0b"
+ dependencies = [
+  "num-integer",
+  "num-traits",
+@@ -262,9 +269,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "clap"
+-version = "2.33.1"
++version = "2.33.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
++checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
+ dependencies = [
+  "ansi_term",
+  "atty",
+@@ -312,9 +319,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "criterion"
+-version = "0.3.2"
++version = "0.3.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "63f696897c88b57f4ffe3c69d8e1a0613c7d0e6c4833363c8560fbde9c47b966"
++checksum = "70daa7ceec6cf143990669a04c7df13391d55fb27bd4079d252fca774ba244d8"
+ dependencies = [
+  "atty",
+  "cast",
+@@ -329,6 +336,7 @@ dependencies = [
+  "rayon",
+  "regex",
+  "serde",
++ "serde_cbor",
+  "serde_derive",
+  "serde_json",
+  "tinytemplate",
+@@ -337,14 +345,24 @@ dependencies = [
+ 
+ [[package]]
+ name = "criterion-plot"
+-version = "0.4.2"
++version = "0.4.3"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ddeaf7989f00f2e1d871a26a110f3ed713632feac17f65f03ca938c542618b60"
++checksum = "e022feadec601fba1649cfa83586381a4ad31c6bf3a9ab7d408118b05dd9889d"
+ dependencies = [
+  "cast",
+  "itertools 0.9.0",
+ ]
+ 
++[[package]]
++name = "crossbeam-channel"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87"
++dependencies = [
++ "crossbeam-utils",
++ "maybe-uninit",
++]
++
+ [[package]]
+ name = "crossbeam-deque"
+ version = "0.7.3"
+@@ -371,16 +389,6 @@ dependencies = [
+  "scopeguard",
+ ]
+ 
+-[[package]]
+-name = "crossbeam-queue"
+-version = "0.2.2"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ab6bffe714b6bb07e42f201352c34f51fefd355ace793f9e638ebd52d23f98d2"
+-dependencies = [
+- "cfg-if",
+- "crossbeam-utils",
+-]
+-
+ [[package]]
+ name = "crossbeam-utils"
+ version = "0.7.2"
+@@ -416,9 +424,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "ctor"
+-version = "0.1.14"
++version = "0.1.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "cf6b25ee9ac1995c54d7adb2eff8cfffb7260bc774fb63c601ec65467f43cd9d"
++checksum = "39858aa5bac06462d4dd4b9164848eb81ffc4aa5c479746393598fd193afa227"
+ dependencies = [
+  "quote",
+  "syn",
+@@ -436,9 +444,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "deflate"
+-version = "0.8.4"
++version = "0.8.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "e7e5d2a2273fed52a7f947ee55b092c4057025d7a3e04e5ecdbd25d6c3fb1bd7"
++checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174"
+ dependencies = [
+  "adler32",
+  "byteorder",
+@@ -458,9 +466,9 @@ checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+ 
+ [[package]]
+ name = "either"
+-version = "1.5.3"
++version = "1.6.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
++checksum = "cd56b59865bce947ac5958779cfa508f6c3b9497cc762b7e24a12d11ccde2c4f"
+ 
+ [[package]]
+ name = "encode_unicode"
+@@ -504,14 +512,14 @@ checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+ dependencies = [
+  "cfg-if",
+  "libc",
+- "wasi",
++ "wasi 0.9.0+wasi-snapshot-preview1",
+ ]
+ 
+ [[package]]
+ name = "gimli"
+-version = "0.21.0"
++version = "0.22.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c"
++checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724"
+ 
+ [[package]]
+ name = "glob"
+@@ -519,11 +527,17 @@ version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+ 
++[[package]]
++name = "half"
++version = "1.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d36fab90f82edc3c747f9d438e06cf0a491055896f2a279638bb5beed6c40177"
++
+ [[package]]
+ name = "hermit-abi"
+-version = "0.1.13"
++version = "0.1.15"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "91780f809e750b0a89f5544be56617ff6b1227ee485bcb06ebe10cdf89bd3b71"
++checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
+ dependencies = [
+  "libc",
+ ]
+@@ -539,9 +553,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "image"
+-version = "0.23.4"
++version = "0.23.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9117f4167a8f21fa2bb3f17a652a760acd7572645281c98e3b612a26242c96ee"
++checksum = "974e194911d1f7efe3cd8a8f9db3b767e43536327e899e8bc9a12ef5711b74d2"
+ dependencies = [
+  "bytemuck",
+  "byteorder",
+@@ -551,15 +565,6 @@ dependencies = [
+  "png",
+ ]
+ 
+-[[package]]
+-name = "inflate"
+-version = "0.4.5"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff"
+-dependencies = [
+- "adler32",
+-]
+-
+ [[package]]
+ name = "interpolate_name"
+ version = "0.2.3"
+@@ -591,9 +596,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "itoa"
+-version = "0.4.5"
++version = "0.4.6"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
++checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
+ 
+ [[package]]
+ name = "ivf"
+@@ -613,9 +618,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "js-sys"
+-version = "0.3.40"
++version = "0.3.44"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ce10c23ad2ea25ceca0093bd3192229da4c5b3c0f2de499c1ecac0d98d452177"
++checksum = "85a7e2c92a4804dd459b86c339278d0fe87cf93757fae222c3fa3ae75458bc73"
+ dependencies = [
+  "wasm-bindgen",
+ ]
+@@ -628,15 +633,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+ 
+ [[package]]
+ name = "lazycell"
+-version = "1.2.1"
++version = "1.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
++checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+ 
+ [[package]]
+ name = "libc"
+-version = "0.2.71"
++version = "0.2.76"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
++checksum = "755456fae044e6fa1ebbbd1b3e902ae19e73097ed4ed87bb79934a867c007bc3"
+ 
+ [[package]]
+ name = "libloading"
+@@ -650,9 +655,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "log"
+-version = "0.4.8"
++version = "0.4.11"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
+ dependencies = [
+  "cfg-if",
+ ]
+@@ -671,9 +676,9 @@ checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+ 
+ [[package]]
+ name = "memoffset"
+-version = "0.5.4"
++version = "0.5.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8"
++checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
+ dependencies = [
+  "autocfg",
+ ]
+@@ -689,20 +694,38 @@ dependencies = [
+  "toml 0.2.1",
+ ]
+ 
++[[package]]
++name = "miniz_oxide"
++version = "0.3.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
++dependencies = [
++ "adler32",
++]
++
++[[package]]
++name = "miniz_oxide"
++version = "0.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4d7559a8a40d0f97e1edea3220f698f78b1c5ab67532e49f68fde3910323b722"
++dependencies = [
++ "adler",
++]
++
+ [[package]]
+ name = "nasm-rs"
+-version = "0.1.7"
++version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "fea4fa2ba8f650120445ddcf137d8a6370ff01d55f00e6b29e0ab01b7c846464"
++checksum = "d32e77172a32cfd76943af0c1c62a4d2dca70754d0c3b2ba7ba968289dc9b534"
+ dependencies = [
+  "rayon",
+ ]
+ 
+ [[package]]
+ name = "nom"
+-version = "5.1.1"
++version = "5.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6"
++checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+ dependencies = [
+  "memchr",
+  "version_check",
+@@ -716,9 +739,9 @@ checksum = "5ff36f3ca83b4b06a6080c42f67d97a8b0f009224d7db3a87744ff2e33a0c146"
+ 
+ [[package]]
+ name = "num-derive"
+-version = "0.3.0"
++version = "0.3.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "0c8b15b261814f992e33760b1fca9fe8b693d8a65299f20c9901688636cfb746"
++checksum = "6f09b9841adb6b5e1f89ef7087ea636e0fd94b2851f887c1e3eb5d5f8228fab3"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+@@ -727,9 +750,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "num-integer"
+-version = "0.1.42"
++version = "0.1.43"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba"
++checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
+ dependencies = [
+  "autocfg",
+  "num-traits",
+@@ -737,9 +760,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "num-iter"
+-version = "0.1.40"
++version = "0.1.41"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "dfb0800a0291891dd9f4fe7bd9c19384f98f7fbe0cd0f39a2c6b88b9868bbc00"
++checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f"
+ dependencies = [
+  "autocfg",
+  "num-integer",
+@@ -748,9 +771,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "num-rational"
+-version = "0.2.4"
++version = "0.3.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef"
++checksum = "a5b4d7360f362cfb50dde8143501e6940b22f644be75a4cc90b2d81968908138"
+ dependencies = [
+  "autocfg",
+  "num-integer",
+@@ -759,9 +782,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "num-traits"
+-version = "0.2.11"
++version = "0.2.12"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
++checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
+ dependencies = [
+  "autocfg",
+ ]
+@@ -778,15 +801,15 @@ dependencies = [
+ 
+ [[package]]
+ name = "object"
+-version = "0.19.0"
++version = "0.20.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2"
++checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5"
+ 
+ [[package]]
+ name = "oorandom"
+-version = "11.1.1"
++version = "11.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "94af325bc33c7f60191be4e2c984d48aaa21e2854f473b85398344b60c9b6358"
++checksum = "a170cebd8021a008ea92e4db85a72f80b35df514ec664b296fdcbb654eac0b2c"
+ 
+ [[package]]
+ name = "output_vt100"
+@@ -799,9 +822,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "paste"
+-version = "0.1.16"
++version = "0.1.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "d508492eeb1e5c38ee696371bf7b9fc33c83d46a7d451606b96458fbbbdc2dec"
++checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880"
+ dependencies = [
+  "paste-impl",
+  "proc-macro-hack",
+@@ -809,14 +832,11 @@ dependencies = [
+ 
+ [[package]]
+ name = "paste-impl"
+-version = "0.1.16"
++version = "0.1.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "84f328a6a63192b333fce5fbb4be79db6758a4d518dfac6d54412f1492f72d32"
++checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6"
+ dependencies = [
+  "proc-macro-hack",
+- "proc-macro2",
+- "quote",
+- "syn",
+ ]
+ 
+ [[package]]
+@@ -827,9 +847,9 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
+ 
+ [[package]]
+ name = "pkg-config"
+-version = "0.3.17"
++version = "0.3.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
++checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
+ 
+ [[package]]
+ name = "plotters"
+@@ -845,27 +865,27 @@ dependencies = [
+ 
+ [[package]]
+ name = "png"
+-version = "0.16.4"
++version = "0.16.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "12faa637ed9ae3d3c881332e54b5ae2dba81cda9fc4bbce0faa1ba53abcead50"
++checksum = "dfe7f9f1c730833200b134370e1d5098964231af8450bce9b78ee3ab5278b970"
+ dependencies = [
+  "bitflags",
+  "crc32fast",
+  "deflate",
+- "inflate",
++ "miniz_oxide 0.3.7",
+ ]
+ 
+ [[package]]
+ name = "ppv-lite86"
+-version = "0.2.8"
++version = "0.2.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
++checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20"
+ 
+ [[package]]
+ name = "predicates"
+-version = "1.0.4"
++version = "1.0.5"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "347a1b6f0b21e636bc9872fb60b83b8e185f6f5516298b8238699f7f9a531030"
++checksum = "96bfead12e90dccead362d62bb2c90a5f6fc4584963645bc7f71a735e0b0735a"
+ dependencies = [
+  "difference",
+  "predicates-core",
+@@ -901,15 +921,15 @@ dependencies = [
+ 
+ [[package]]
+ name = "proc-macro-hack"
+-version = "0.5.16"
++version = "0.5.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4"
++checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598"
+ 
+ [[package]]
+ name = "proc-macro2"
+-version = "1.0.18"
++version = "1.0.20"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
++checksum = "175c513d55719db99da20232b06cda8bab6b83ec2d04e3283edf0213c37c1a29"
+ dependencies = [
+  "unicode-xid",
+ ]
+@@ -922,9 +942,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+ 
+ [[package]]
+ name = "quote"
+-version = "1.0.6"
++version = "1.0.7"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "54a21852a652ad6f610c9510194f398ff6f8692e334fd1145fed931f7fbe44ea"
++checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
+ dependencies = [
+  "proc-macro2",
+ ]
+@@ -1019,10 +1039,11 @@ dependencies = [
+ 
+ [[package]]
+ name = "rayon"
+-version = "1.3.0"
++version = "1.4.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098"
++checksum = "cfd016f0c045ad38b5251be2c9c0ab806917f82da4d36b2a327e5166adad9270"
+ dependencies = [
++ "autocfg",
+  "crossbeam-deque",
+  "either",
+  "rayon-core",
+@@ -1030,12 +1051,12 @@ dependencies = [
+ 
+ [[package]]
+ name = "rayon-core"
+-version = "1.7.0"
++version = "1.8.0"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9"
++checksum = "91739a34c4355b5434ce54c9086c5895604a9c278586d1f1aa95e04f66b525a0"
+ dependencies = [
++ "crossbeam-channel",
+  "crossbeam-deque",
+- "crossbeam-queue",
+  "crossbeam-utils",
+  "lazy_static",
+  "num_cpus",
+@@ -1171,18 +1192,28 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+ 
+ [[package]]
+ name = "serde"
+-version = "1.0.111"
++version = "1.0.115"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c9124df5b40cbd380080b2cc6ab894c040a3070d995f5c9dc77e18c34a8ae37d"
++checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5"
+ dependencies = [
+  "serde_derive",
+ ]
+ 
++[[package]]
++name = "serde_cbor"
++version = "0.11.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1e18acfa2f90e8b735b2836ab8d538de304cbb6729a7360729ea5a895d15a622"
++dependencies = [
++ "half",
++ "serde",
++]
++
+ [[package]]
+ name = "serde_derive"
+-version = "1.0.111"
++version = "1.0.115"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3f2c3ac8e6ca1e9c80b8be1023940162bf81ae3cffbb1809474152f2ce1eb250"
++checksum = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+@@ -1191,9 +1222,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "serde_json"
+-version = "1.0.53"
++version = "1.0.57"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "993948e75b189211a9b31a7528f950c6adc21f9720b6438ff80a7fa2f864cea2"
++checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c"
+ dependencies = [
+  "itoa",
+  "ryu",
+@@ -1208,9 +1239,9 @@ checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2"
+ 
+ [[package]]
+ name = "signal-hook"
+-version = "0.1.15"
++version = "0.1.16"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8ff2db2112d6c761e12522c65f7768548bd6e8cd23d2a9dae162520626629bd6"
++checksum = "604508c1418b99dfe1925ca9224829bb2a8a9a04dda655cc01fcad46f4ab05ed"
+ dependencies = [
+  "libc",
+  "signal-hook-registry",
+@@ -1218,9 +1249,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "signal-hook-registry"
+-version = "1.2.0"
++version = "1.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41"
++checksum = "a3e12110bc539e657a646068aaf5eb5b63af9d0c1f7b29c97113fad80e15f035"
+ dependencies = [
+  "arc-swap",
+  "libc",
+@@ -1243,9 +1274,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+ 
+ [[package]]
+ name = "syn"
+-version = "1.0.30"
++version = "1.0.40"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "93a56fabc59dce20fe48b6c832cc249c713e7ed88fa28b0ee0a3bfcaae5fe4e2"
++checksum = "963f7d3cc59b59b9325165add223142bbf1df27655d07789f109896d353d8350"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+@@ -1263,9 +1294,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "terminal_size"
+-version = "0.1.12"
++version = "0.1.13"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8038f95fc7a6f351163f4b964af631bd26c9e828f7db085f2a84aca56f70d13b"
++checksum = "9a14cd9f8c72704232f0bfc8455c0e861f0ad4eb60cc9ec8a170e231414c1e13"
+ dependencies = [
+  "libc",
+  "winapi",
+@@ -1291,18 +1322,18 @@ dependencies = [
+ 
+ [[package]]
+ name = "thiserror"
+-version = "1.0.19"
++version = "1.0.20"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "b13f926965ad00595dd129fa12823b04bbf866e9085ab0a5f2b05b850fbfc344"
++checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08"
+ dependencies = [
+  "thiserror-impl",
+ ]
+ 
+ [[package]]
+ name = "thiserror-impl"
+-version = "1.0.19"
++version = "1.0.20"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "893582086c2f98cde18f906265a65b5030a074b1046c674ae898be6519a7f479"
++checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+@@ -1320,11 +1351,12 @@ dependencies = [
+ 
+ [[package]]
+ name = "time"
+-version = "0.1.43"
++version = "0.1.44"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
++checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
+ dependencies = [
+  "libc",
++ "wasi 0.10.0+wasi-snapshot-preview1",
+  "winapi",
+ ]
+ 
+@@ -1361,15 +1393,15 @@ checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
+ 
+ [[package]]
+ name = "unicode-width"
+-version = "0.1.7"
++version = "0.1.8"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+ 
+ [[package]]
+ name = "unicode-xid"
+-version = "0.2.0"
++version = "0.2.1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
+ 
+ [[package]]
+ name = "vec_map"
+@@ -1419,11 +1451,17 @@ version = "0.9.0+wasi-snapshot-preview1"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+ 
++[[package]]
++name = "wasi"
++version = "0.10.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
++
+ [[package]]
+ name = "wasm-bindgen"
+-version = "0.2.63"
++version = "0.2.67"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4c2dc4aa152834bc334f506c1a06b866416a8b6697d5c9f75b9a689c8486def0"
++checksum = "f0563a9a4b071746dd5aedbc3a28c6fe9be4586fb3fbadb67c400d4f53c6b16c"
+ dependencies = [
+  "cfg-if",
+  "wasm-bindgen-macro",
+@@ -1431,9 +1469,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "wasm-bindgen-backend"
+-version = "0.2.63"
++version = "0.2.67"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "ded84f06e0ed21499f6184df0e0cb3494727b0c5da89534e0fcc55c51d812101"
++checksum = "bc71e4c5efa60fb9e74160e89b93353bc24059999c0ae0fb03affc39770310b0"
+ dependencies = [
+  "bumpalo",
+  "lazy_static",
+@@ -1446,9 +1484,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "wasm-bindgen-macro"
+-version = "0.2.63"
++version = "0.2.67"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "838e423688dac18d73e31edce74ddfac468e37b1506ad163ffaf0a46f703ffe3"
++checksum = "97c57cefa5fa80e2ba15641578b44d36e7a64279bc5ed43c6dbaf329457a2ed2"
+ dependencies = [
+  "quote",
+  "wasm-bindgen-macro-support",
+@@ -1456,9 +1494,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "wasm-bindgen-macro-support"
+-version = "0.2.63"
++version = "0.2.67"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "3156052d8ec77142051a533cdd686cba889537b213f948cd1d20869926e68e92"
++checksum = "841a6d1c35c6f596ccea1f82504a192a60378f64b3bb0261904ad8f2f5657556"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+@@ -1469,15 +1507,15 @@ dependencies = [
+ 
+ [[package]]
+ name = "wasm-bindgen-shared"
+-version = "0.2.63"
++version = "0.2.67"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c9ba19973a58daf4db6f352eda73dc0e289493cd29fb2632eb172085b6521acd"
++checksum = "93b162580e34310e5931c4b792560108b10fd14d64915d7fff8ff00180e70092"
+ 
+ [[package]]
+ name = "web-sys"
+-version = "0.3.40"
++version = "0.3.44"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7b72fe77fd39e4bd3eaa4412fd299a0be6b3dfe9d2597e2f1c20beb968f41d17"
++checksum = "dda38f4e5ca63eda02c059d243aa25b5f35ab98451e518c51612cd0f1bd19a47"
+ dependencies = [
+  "js-sys",
+  "wasm-bindgen",
+@@ -1494,9 +1532,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "winapi"
+-version = "0.3.8"
++version = "0.3.9"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+ dependencies = [
+  "winapi-i686-pc-windows-gnu",
+  "winapi-x86_64-pc-windows-gnu",
+-- 
+2.28.0
+
diff --git a/contrib/src/rav1e/0005-CI-Update-nasm-to-2.15.04.patch b/contrib/src/rav1e/0005-CI-Update-nasm-to-2.15.04.patch
new file mode 100644
index 00000000000..fac267f9d63
--- /dev/null
+++ b/contrib/src/rav1e/0005-CI-Update-nasm-to-2.15.04.patch
@@ -0,0 +1,76 @@
+From 8eef712585385eaa53c8e613dc97cade1515b940 Mon Sep 17 00:00:00 2001
+From: David Michael Barr <b at rr-dav.id.au>
+Date: Sun, 30 Aug 2020 13:06:42 +0900
+Subject: [PATCH 5/5] CI: Update nasm to 2.15.04
+
+Note that homebrew has moved on to 2.14.05 already.
+---
+ .github/workflows/deploy.yml |  6 +++---
+ .github/workflows/rav1e.yml  | 10 +++++-----
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
+index 244be38b..975e4893 100644
+--- a/.github/workflows/deploy.yml
++++ b/.github/workflows/deploy.yml
+@@ -28,7 +28,7 @@ jobs:
+ 
+     - name: Install nasm
+       run: |
+-        $NASM_VERSION="2.14.02"
++        $NASM_VERSION="2.15.04"
+         $LINK="https://www.nasm.us/pub/nasm/releasebuilds/$NASM_VERSION/win64"
+         curl --ssl-no-revoke -LO "$LINK/nasm-$NASM_VERSION-win64.zip"
+         7z e -y "nasm-$NASM_VERSION-win64.zip" -o"C:\nasm"
+@@ -149,9 +149,9 @@ jobs:
+       if: matrix.target == 'x86_64-unknown-linux-musl'
+       env:
+         LINK: http://debian-archive.trafficmanager.net/debian/pool/main/n/nasm
+-        NASM_VERSION: 2.14.02-1
++        NASM_VERSION: 2.15.04-1
+         NASM_SHA256: >-
+-          5225d0654783134ae616f56ce8649e4df09cba191d612a0300cfd0494bb5a3ef
++          7801f43bc3bce0fba50ecaaa9f5bd337708b5d2335b20feecf52ed6f15e188d2
+       run: |
+         curl -O "$LINK/nasm_${NASM_VERSION}_amd64.deb"
+         echo "$NASM_SHA256 nasm_${NASM_VERSION}_amd64.deb" | sha256sum --check
+diff --git a/.github/workflows/rav1e.yml b/.github/workflows/rav1e.yml
+index 0a20ea50..64a9415c 100644
+--- a/.github/workflows/rav1e.yml
++++ b/.github/workflows/rav1e.yml
+@@ -20,9 +20,9 @@ jobs:
+     - name: Install nasm
+       env:
+         LINK: http://debian-archive.trafficmanager.net/debian/pool/main/n/nasm
+-        NASM_VERSION: 2.14.02-1
++        NASM_VERSION: 2.15.04-1
+         NASM_SHA256: >-
+-          5225d0654783134ae616f56ce8649e4df09cba191d612a0300cfd0494bb5a3ef
++          7801f43bc3bce0fba50ecaaa9f5bd337708b5d2335b20feecf52ed6f15e188d2
+       run: |
+         curl -O "$LINK/nasm_${NASM_VERSION}_amd64.deb"
+         echo "$NASM_SHA256 nasm_${NASM_VERSION}_amd64.deb" | sha256sum --check
+@@ -109,9 +109,9 @@ jobs:
+     - name: Add nasm
+       env:
+         LINK: http://debian-archive.trafficmanager.net/debian/pool/main/n/nasm
+-        NASM_VERSION: 2.14.02-1
++        NASM_VERSION: 2.15.04-1
+         NASM_SHA256: >-
+-          5225d0654783134ae616f56ce8649e4df09cba191d612a0300cfd0494bb5a3ef
++          7801f43bc3bce0fba50ecaaa9f5bd337708b5d2335b20feecf52ed6f15e188d2
+       run: |
+         echo "$LINK/nasm_${NASM_VERSION}_amd64.deb" >> DEBS
+         echo "$NASM_SHA256 nasm_${NASM_VERSION}_amd64.deb" >> CHECKSUMS
+@@ -399,7 +399,7 @@ jobs:
+         echo "::add-path::$Env:GITHUB_WORKSPACE/$SCCACHE_FILE"
+     - name: Install nasm
+       run: |
+-        $NASM_VERSION="2.14.02"
++        $NASM_VERSION="2.15.04"
+         $LINK = "https://www.nasm.us/pub/nasm/releasebuilds/$NASM_VERSION/win64"
+         $NASM_FILE = "nasm-$NASM_VERSION-win64"
+         curl --ssl-no-revoke -LO "$LINK/$NASM_FILE.zip"
+-- 
+2.28.0
+
diff --git a/contrib/src/rav1e/rules.mak b/contrib/src/rav1e/rules.mak
index 8a42b343610..fa204288865 100644
--- a/contrib/src/rav1e/rules.mak
+++ b/contrib/src/rav1e/rules.mak
@@ -24,6 +24,11 @@ endif
 
 rav1e: rav1e-$(RAV1E_VERSION).tar.gz .sum-rav1e .rav1e-vendor
 	$(UNPACK)
+	$(APPLY) $(SRC)/rav1e/0001-arm-tables-Remove-superfluous-symbols.patch
+	$(APPLY) $(SRC)/rav1e/0002-Bug-fix-inter-tx-split-cause-desync-with-bottomup-pa.patch
+	$(APPLY) $(SRC)/rav1e/0003-Do-not-use-C-impossible-types-in-the-API.patch
+	$(APPLY) $(SRC)/rav1e/0004-Bump-the-Cargo.lock.patch
+	$(APPLY) $(SRC)/rav1e/0005-CI-Update-nasm-to-2.15.04.patch
 	$(CARGO_VENDOR_SETUP)
 	$(MOVE)
 
-- 
2.28.0




More information about the vlc-devel mailing list