Skip to content

Commit 52b35fa

Browse files
Merge branch 'master' into CDEF-paralelization
2 parents 54bddec + 2ec4e67 commit 52b35fa

File tree

114 files changed

+43467
-5021
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

114 files changed

+43467
-5021
lines changed

.github/workflows/deploy.yml

+15-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929

3030
- name: Install cargo-c
3131
run: |
32-
$LINK = "https://github.com/lu-zero/cargo-c/releases/download/v0.7.1"
32+
$LINK = "https://github.com/lu-zero/cargo-c/releases/download/v0.8.0"
3333
$CARGO_C_FILE = "cargo-c-windows-msvc"
3434
curl -LO "$LINK/$CARGO_C_FILE.zip"
3535
7z e -y "$CARGO_C_FILE.zip" -o"${env:USERPROFILE}\.cargo\bin"
@@ -89,6 +89,12 @@ jobs:
8989
7z a "$ZIP_PREFIX-${{ matrix.conf }}.zip" `
9090
"C:\usr\rav1e-windows-${{ matrix.conf }}-sdk"
9191
92+
- name: Build rav1e-ch (unstable)
93+
if: matrix.conf == 'msvc'
94+
env:
95+
RUSTFLAGS: "-C target-feature=+avx2,+fma"
96+
run: cargo build --release --features=unstable,channel-api --bin=rav1e-ch
97+
9298
- name: Upload rav1e msvc binary
9399
if: matrix.conf == 'msvc'
94100
uses: actions/upload-artifact@v2
@@ -108,6 +114,12 @@ jobs:
108114
with:
109115
path: rav1e-${{ steps.tagName.outputs.version }}-windows-${{ matrix.conf }}.zip
110116

117+
- name: Upload rav1e-ch msvc binary (unstable)
118+
if: matrix.conf == 'msvc'
119+
uses: actions/upload-artifact@v2
120+
with:
121+
path: target/release/rav1e-ch.exe
122+
111123
linux-binaries:
112124
strategy:
113125
matrix:
@@ -310,6 +322,7 @@ jobs:
310322
files: |
311323
Cargo.lock
312324
rav1e.exe
325+
rav1e-ch.exe
313326
rav1e-linux.tar.gz
314327
rav1e-aarch64-linux.tar.gz
315328
rav1e-macos.zip
@@ -327,6 +340,7 @@ jobs:
327340
files: |
328341
Cargo.lock
329342
rav1e.exe
343+
rav1e-ch.exe
330344
rav1e-linux.tar.gz
331345
rav1e-aarch64-linux.tar.gz
332346
rav1e-macos.zip

.github/workflows/rav1e.yml

+33-10
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ jobs:
5454
- cargo-c
5555
- check-no-default
5656
- check-extra-feats
57+
- check-unstable-feats
5758
- fuzz
5859
include:
5960
- conf: beta-build
@@ -78,6 +79,8 @@ jobs:
7879
toolchain: stable
7980
- conf: check-extra-feats
8081
toolchain: stable
82+
- conf: check-unstable-feats
83+
toolchain: stable
8184
- conf: fuzz
8285
toolchain: stable
8386

@@ -120,33 +123,49 @@ jobs:
120123
run: |
121124
echo "$LINK/nasm_${NASM_VERSION}_amd64.deb" >> DEBS
122125
echo "$NASM_SHA256 nasm_${NASM_VERSION}_amd64.deb" >> CHECKSUMS
126+
- name: Add libvmaf
127+
if: >
128+
matrix.conf == '1.51.0-tests' || matrix.conf == 'aom-tests' ||
129+
matrix.conf == 'grcov-coveralls'
130+
env:
131+
LINK: https://www.deb-multimedia.org/pool/main/v/vmaf-dmo
132+
LIBVMAF_VERSION: 2.2.0-dmo1
133+
LIBVMAF_SHA256: >-
134+
88dace39e1aa0c88973a397640c457b85fd86746b4e79399e4aefdf5167aae92
135+
LIBVMAF_DEV_SHA256: >-
136+
bfaecbeba9fc413e69e2301d88720b2c72d35986778b30381d11eee0274ba78f
137+
run: |
138+
echo "$LINK/libvmaf1_${LIBVMAF_VERSION}_amd64.deb" >> DEBS
139+
echo "$LINK/libvmaf-dev_${LIBVMAF_VERSION}_amd64.deb" >> DEBS
140+
echo "$LIBVMAF_SHA256 libvmaf1_${LIBVMAF_VERSION}_amd64.deb" >> CHECKSUMS
141+
echo "$LIBVMAF_DEV_SHA256 libvmaf-dev_${LIBVMAF_VERSION}_amd64.deb" >> CHECKSUMS
123142
- name: Add aom
124143
if: >
125144
matrix.conf == '1.51.0-tests' || matrix.conf == 'aom-tests' ||
126145
matrix.conf == 'grcov-coveralls'
127146
env:
128147
LINK: https://www.deb-multimedia.org/pool/main/a/aom-dmo
129-
AOM_VERSION: 2.0.2-dmo0~bpo10+1
148+
AOM_VERSION: 3.1.2-dmo1
130149
AOM_DEV_SHA256: >-
131-
d31eee6524ea64c080312eeafc65355e378e043b1d738ff9b9bde3734a85779c
150+
63cf8804e1a010431e06f6da02582c5b95fae546c0e47ba75b1921aa7cbd9d3a
132151
AOM_LIB_SHA256: >-
133-
db8a04ca0984604f410c6bd8810ee31666a3bfd3964f3109cdb8f1ae33fec664
152+
5df58fa6f6b1f28e64dfec77959516ea714ba6fd753c2b7e85527ac892932777
134153
run: |
135154
echo "$LINK/libaom-dev_${AOM_VERSION}_amd64.deb" >> DEBS
136-
echo "$LINK/libaom2_${AOM_VERSION}_amd64.deb" >> DEBS
155+
echo "$LINK/libaom3_${AOM_VERSION}_amd64.deb" >> DEBS
137156
echo "$AOM_DEV_SHA256 libaom-dev_${AOM_VERSION}_amd64.deb" >> CHECKSUMS
138-
echo "$AOM_LIB_SHA256 libaom2_${AOM_VERSION}_amd64.deb" >> CHECKSUMS
157+
echo "$AOM_LIB_SHA256 libaom3_${AOM_VERSION}_amd64.deb" >> CHECKSUMS
139158
- name: Add dav1d
140159
if: >
141160
matrix.conf == '1.51.0-tests' || matrix.conf == 'dav1d-tests' ||
142161
matrix.conf == 'grcov-coveralls' || matrix.conf == 'fuzz' || matrix.conf == 'no-asm-tests'
143162
env:
144163
LINK: https://www.deb-multimedia.org/pool/main/d/dav1d-dmo
145-
DAV1D_VERSION: 0.8.2-dmo1
164+
DAV1D_VERSION: 0.9.2-dmo1
146165
DAV1D_DEV_SHA256: >-
147-
04d30fc34056467b91a627563c61b9a0046a2e084bb649791cd31887a6c76d8e
166+
2ed10b35fa2663d2e7ba04d8fe01f0518602008d066cadcb311a5b8105f70f14
148167
DAV1D_LIB_SHA256: >-
149-
0c3debb3a926e10009503e639dddcfd4082ed6e012340ca49682b738c243dedc
168+
1c4336743115b8a512fb984d289cac65c49ad249ba1456940258e53d9c91bd0c
150169
run: |
151170
echo "$LINK/libdav1d-dev_${DAV1D_VERSION}_amd64.deb" >> DEBS
152171
echo "$LINK/libdav1d5_${DAV1D_VERSION}_amd64.deb" >> DEBS
@@ -174,7 +193,7 @@ jobs:
174193
if: matrix.conf == 'cargo-c'
175194
env:
176195
LINK: https://github.com/lu-zero/cargo-c/releases/download
177-
CARGO_C_VERSION: 0.7.1
196+
CARGO_C_VERSION: 0.8.0
178197
run: |
179198
curl -L "$LINK/v$CARGO_C_VERSION/cargo-c-linux.tar.gz" |
180199
tar xz -C $HOME/.cargo/bin
@@ -252,6 +271,10 @@ jobs:
252271
if: matrix.toolchain == 'stable' && matrix.conf == 'check-extra-feats'
253272
run: |
254273
cargo check --features=check_asm,capi,dump_lookahead_data,serialize
274+
- name: Check extra features
275+
if: matrix.toolchain == 'stable' && matrix.conf == 'check-unstable-feats'
276+
run: |
277+
cargo check --features=unstable,channel-api
255278
- name: Run cargo-c
256279
if: matrix.conf == 'cargo-c'
257280
run: |
@@ -449,7 +472,7 @@ jobs:
449472
- name: Install cargo-c
450473
if: matrix.conf == 'cargo-c'
451474
run: |
452-
$LINK = "https://github.com/lu-zero/cargo-c/releases/download/v0.7.3"
475+
$LINK = "https://github.com/lu-zero/cargo-c/releases/download/v0.8.0"
453476
$CARGO_C_FILE = "cargo-c-windows-msvc"
454477
curl -LO "$LINK/$CARGO_C_FILE.zip"
455478
7z e -y "$CARGO_C_FILE.zip" -o"${env:USERPROFILE}\.cargo\bin"

.travis/install-aom.sh

+15-7
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,29 @@
11
#!/bin/bash
22
set -ex
33

4-
AOM_VERSION="2.0.2-dmo0~bpo10+1"
4+
AOM_VERSION="3.1.1-dmo0~bpo10+1"
5+
LIBVMAF_VERSION="2.1.1-dmo0~bpo10+3"
56
PKG_URL="https://www.deb-multimedia.org/pool/main/a/aom-dmo"
7+
LIBVMAF_URL="https://www.deb-multimedia.org/pool/main/v/vmaf-dmo"
68
ARCH="arm64"
79

810
cd "$DEPS_DIR"
911

10-
[ -f "libaom-dev_${AOM_VERSION}_${ARCH}.deb" ] &&
12+
[ -f "libvmaf-dev_${LIBVMAF_VERSION}_${ARCH}.deb" ] && [ -f "libvmaf1_${LIBVMAF_VERSION}_${ARCH}.deb" ] && [ -f "libaom-dev_${AOM_VERSION}_${ARCH}.deb" ] &&
1113
[ -f "libaom2_${AOM_VERSION}_${ARCH}.deb" ] ||
12-
curl -O "${PKG_URL}/libaom-dev_${AOM_VERSION}_${ARCH}.deb" \
13-
-O "${PKG_URL}/libaom2_${AOM_VERSION}_${ARCH}.deb"
14+
curl -O "${LIBVMAF_URL}/libvmaf1_${LIBVMAF_VERSION}_${ARCH}.deb" \
15+
-O "${LIBVMAF_URL}/libvmaf-dev_${LIBVMAF_VERSION}_${ARCH}.deb" \
16+
-O "${PKG_URL}/libaom-dev_${AOM_VERSION}_${ARCH}.deb" \
17+
-O "${PKG_URL}/libaom3_${AOM_VERSION}_${ARCH}.deb"
1418

1519
sha256sum --check --ignore-missing <<EOF
16-
2352aa82e15f3936c2dd21d3aee6633b8338e96c09b38b2912aa2c1555a758a2 libaom2_${AOM_VERSION}_${ARCH}.deb
17-
80e7c9ea59f4fc9ac6518e071ee8f86ba2ccec2d5500ea222982fa6dfa21356c libaom-dev_${AOM_VERSION}_${ARCH}.deb
20+
fe9321dd8d5901ddf74e407c1b213243c357430a03fad17249ec4d07c3cf8e93 libaom3_${AOM_VERSION}_${ARCH}.deb
21+
f926f0af6db4faac5f9bd67051115ce3dfa4324ddb41647e773d17ff11fa8f3 libaom-dev_${AOM_VERSION}_${ARCH}.deb
22+
d9dd550ab3a296019333ced63b80d47743eacef072b17cad96a990f67f587a42 libvmaf1_${LIBVMAF_VERSION}_${ARCH}.deb
23+
ea706661c22df60005200608f54e29fc7f1cf41b47c1fc2def9df56dea10eac1 libvmaf-dev_${LIBVMAF_VERSION}_${ARCH}.deb
1824
EOF
1925

20-
sudo dpkg -i "libaom2_${AOM_VERSION}_${ARCH}.deb" \
26+
sudo dpkg -i "libvmaf1_${LIBVMAF_VERSION}_${ARCH}.deb" \
27+
"libvmaf-dev_${LIBVMAF_VERSION}_${ARCH}.deb" \
28+
"libaom3_${AOM_VERSION}_${ARCH}.deb" \
2129
"libaom-dev_${AOM_VERSION}_${ARCH}.deb"

.travis/install-dav1d.sh

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22
set -ex
33

4-
DAV1D_VERSION="0.8.2-dmo1"
4+
DAV1D_VERSION="0.9.0-dmo1"
55
PKG_URL="https://www.deb-multimedia.org/pool/main/d/dav1d-dmo"
66

77
case "$ARCH" in
@@ -17,10 +17,10 @@ curl -O "$PKG_URL/libdav1d-dev_${DAV1D_VERSION}_$ARCH.deb" \
1717
-O "$PKG_URL/libdav1d5_${DAV1D_VERSION}_$ARCH.deb"
1818

1919
sha256sum --check --ignore-missing <<EOF
20-
04d30fc34056467b91a627563c61b9a0046a2e084bb649791cd31887a6c76d8e libdav1d-dev_${DAV1D_VERSION}_amd64.deb
21-
0ec130514ce8748a84f4db3d624bf6f20e28dfb0f8a64659a75a8087642269fc libdav1d-dev_${DAV1D_VERSION}_arm64.deb
22-
0c3debb3a926e10009503e639dddcfd4082ed6e012340ca49682b738c243dedc libdav1d5_${DAV1D_VERSION}_amd64.deb
23-
3c29f1782d89f85ac1cc158560828d7e604c7070985e92b7c03135825af478cc libdav1d5_${DAV1D_VERSION}_arm64.deb
20+
ce6bd5c710d287306d3b6d45fa3843b35231da37f4d18d82ff24ba088916cfae libdav1d-dev_${DAV1D_VERSION}_amd64.deb
21+
f415b4453a044d311426658b36b73efc0e13dcf9876923d1b1c661fb51e5d5b1 libdav1d-dev_${DAV1D_VERSION}_arm64.deb
22+
54c8ff504523101b96fa994963fb24b7104221a5b011f8b525baac8260640994 libdav1d5_${DAV1D_VERSION}_amd64.deb
23+
ee8af3bb6d2204477291f007b484394d9c100f6f55e11be22af3605b9f83282b libdav1d5_${DAV1D_VERSION}_arm64.deb
2424
EOF
2525

2626
sudo dpkg -i "libdav1d5_${DAV1D_VERSION}_$ARCH.deb" \

Cargo.toml

+11-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "rav1e"
3-
version = "0.5.0-alpha"
3+
version = "0.5.0-beta.2"
44
authors = ["Thomas Daede <[email protected]>"]
55
edition = "2018"
66
build = "build.rs"
@@ -69,12 +69,12 @@ num-derive = "0.3"
6969
paste = "1.0"
7070
noop_proc_macro = "0.3.0"
7171
serde = { version = "1.0", features = ["derive"], optional = true }
72-
dav1d-sys = { version = "0.3.2", optional = true }
73-
aom-sys = { version = "0.2.1", optional = true }
72+
dav1d-sys = { version = "0.3.4", optional = true }
73+
aom-sys = { version = "0.3.0", optional = true }
7474
scan_fmt = { version = "0.2.3", optional = true, default-features = false }
7575
ivf = { version = "0.1", path = "ivf/", optional = true }
76-
v_frame = { version = "0.2.1", path = "v_frame/" }
77-
av-metrics = { version = "0.6.2", optional = true, default-features = false }
76+
v_frame = { version = "0.2.4", path = "v_frame/" }
77+
av-metrics = { version = "0.7.1", optional = true, default-features = false }
7878
rayon = "1.0"
7979
crossbeam = { version = "0.8", optional = true }
8080
toml = { version = "0.5", optional = true }
@@ -100,7 +100,7 @@ cc = { version = "1.0", optional = true, features = ["parallel"] }
100100
# Vendored to remove the dependency on `failure`,
101101
# which takes a long time to build.
102102
vergen = { version = "3", path = "crates/vergen" }
103-
rustc_version = "0.3"
103+
rustc_version = "0.4"
104104
regex = { version = "1", optional = true }
105105

106106
[build-dependencies.nasm-rs]
@@ -112,13 +112,13 @@ features = ["parallel"]
112112
signal-hook = { version = "0.3", optional = true }
113113

114114
[dev-dependencies]
115-
assert_cmd = "1.0"
115+
assert_cmd = "2.0"
116116
criterion = "0.3"
117117
pretty_assertions = "0.7"
118118
interpolate_name = "0.2.2"
119119
rand = "0.8"
120120
rand_chacha = "0.3"
121-
semver = "0.11"
121+
semver = "1.0"
122122

123123
[target.'cfg(fuzzing)'.dependencies]
124124
arbitrary = "0.4"
@@ -127,6 +127,9 @@ libfuzzer-sys = "0.3"
127127
rand = "0.8"
128128
rand_chacha = "0.3"
129129

130+
[target.'cfg(any(decode_test, decode_test_dav1d))'.dependencies]
131+
system-deps = "~3.1.2"
132+
130133
[[bin]]
131134
name = "rav1e"
132135
required-features = ["binaries"]

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
BSD 2-Clause License
22

3-
Copyright (c) 2017-2020, the rav1e contributors
3+
Copyright (c) 2017-2021, the rav1e contributors
44
All rights reserved.
55

66
Redistribution and use in source and binary forms, with or without

README.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ rav1e currently requires Rust 1.51.0 or later to build.
5353

5454
### Dependency: NASM
5555
Some `x86_64`-specific optimizations require [NASM](https://nasm.us/) `2.14.02` or newer and are enabled by default.
56+
`strip` will be used if available to remove the local symbols from the asm objects.
5657

5758
The CI is testing against `nasm 2.15.05`, so bugs for other versions might happen. If you find one please open an issue!
5859

@@ -138,6 +139,8 @@ cargo install cargo-c
138139
cargo cinstall --release
139140
```
140141

142+
Please refer to the cargo-c [installation](https://github.com/lu-zero/cargo-c#installation) instructions.
143+
141144
## Usage
142145
### Compressing video
143146
Input videos must be in [y4m format](https://wiki.multimedia.cx/index.php/YUV4MPEG2). The monochrome color format is not supported.
@@ -176,5 +179,4 @@ Find a full list in feature-table in [`Cargo.toml`](Cargo.toml)
176179
Please read our guide to [contributing to rav1e](CONTRIBUTING.md).
177180

178181
## Getting in Touch
179-
Come chat with us on the IRC channel #daala on Freenode! If you don't have IRC set
180-
up you can easily connect from your [web browser](http://webchat.freenode.net/?channels=%23daala).
182+
Come chat with us on the IRC channel #daala on [Libera.Chat](https://libera.chat/)! You can also use a [web client](https://web.libera.chat/?channel=#daala) to join with a web browser.

benches/mc.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -543,9 +543,9 @@ fn new_plane<T: Pixel>(
543543
p
544544
}
545545

546-
fn get_params<'a, T: Pixel>(
547-
rec_plane: &'a Plane<T>, po: PlaneOffset, mv: MotionVector,
548-
) -> (i32, i32, PlaneSlice<'a, T>) {
546+
fn get_params<T: Pixel>(
547+
rec_plane: &Plane<T>, po: PlaneOffset, mv: MotionVector,
548+
) -> (i32, i32, PlaneSlice<T>) {
549549
let rec_cfg = &rec_plane.cfg;
550550
let shift_row = 3 + rec_cfg.ydec;
551551
let shift_col = 3 + rec_cfg.xdec;

0 commit comments

Comments
 (0)