1 | [package] |
2 | name = "rav1e" |
3 | version = "0.7.1" |
4 | authors = ["Thomas Daede <tdaede@xiph.org>" ] |
5 | edition = "2021" |
6 | rust-version = "1.70.0" |
7 | build = "build.rs" |
8 | include = [ |
9 | "/Cargo.toml" , |
10 | "/LICENSE" , |
11 | "/PATENTS" , |
12 | "/README.md" , |
13 | "/build.rs" , |
14 | "/cbindgen.toml" , |
15 | "/src/**" , |
16 | ] |
17 | license = "BSD-2-Clause" |
18 | description = "The fastest and safest AV1 encoder" |
19 | readme = "README.md" |
20 | repository = "https://github.com/xiph/rav1e/" |
21 | autobenches = false |
22 | autobins = false |
23 | default-run = "rav1e" |
24 | |
25 | [features] |
26 | unstable = [] |
27 | channel-api = ["crossbeam" ] |
28 | decode_test = ["aom-sys" ] |
29 | decode_test_dav1d = ["dav1d-sys" ] |
30 | binaries = [ |
31 | "ivf" , |
32 | "y4m" , |
33 | "clap" , |
34 | "clap_complete" , |
35 | "scan_fmt" , |
36 | "fern" , |
37 | "console" , |
38 | "av-metrics" , |
39 | "nom" , |
40 | ] |
41 | default = ["binaries" , "asm" , "threading" , "signal_support" , "git_version" ] |
42 | git_version = ["built/git2" ] |
43 | asm = ["nasm-rs" , "cc" ] |
44 | threading = ["rayon/threads" ] |
45 | signal_support = ["signal-hook" ] |
46 | dump_ivf = ["ivf" ] |
47 | quick_test = [] |
48 | desync_finder = ["backtrace" ] |
49 | bench = [] |
50 | check_asm = [] |
51 | capi = ["scan_fmt" ] |
52 | tracing = [ |
53 | "profiling/profile-with-tracing" , |
54 | "tracing-subscriber" , |
55 | "tracing-chrome" , |
56 | "dep:tracing" |
57 | ] |
58 | scenechange = [] |
59 | serialize = ["serde" , "toml" , "v_frame/serialize" , "serde-big-array" , "av1-grain/serialize" ] |
60 | wasm = ["wasm-bindgen" ] |
61 | |
62 | # Enables debug dumping of lookahead computation results, specifically: |
63 | # - i-qres.png: quarter-resolution luma planes, |
64 | # - i-hres.png: half-resolution luma planes, |
65 | # - i-mvs.bin: motion vectors, |
66 | # - i-imps.bin: block importances, |
67 | # - i-activity_scales.bin: spatial scales, |
68 | # - i-distortion_scales.bin: temporal scales, |
69 | # - i-spatiotemporal_scales.bin, |
70 | # - i-thresholds.bin: segmentation thresholds. |
71 | dump_lookahead_data = ["byteorder" , "image" ] |
72 | |
73 | [dependencies] |
74 | arg_enum_proc_macro = "0.3.4" |
75 | bitstream-io = "2" |
76 | cfg-if = "1.0" |
77 | clap = { version = "4.4.11" , optional = true, default-features = false, features = [ |
78 | "color" , |
79 | "std" , |
80 | "wrap_help" , |
81 | "derive" , |
82 | ] } |
83 | clap_complete = { version = "4.4.5" , optional = true } |
84 | libc = "0.2" |
85 | y4m = { version = "0.8" , optional = true } |
86 | backtrace = { version = "0.3" , optional = true } |
87 | num-traits = "0.2" |
88 | num-derive = "0.4" |
89 | paste = "1.0" |
90 | noop_proc_macro = "0.3.0" |
91 | serde = { version = "1.0" , features = ["derive" ], optional = true } |
92 | dav1d-sys = { version = "0.6.0" , package = "libdav1d-sys" , optional = true } |
93 | aom-sys = { version = "0.3.3" , optional = true } |
94 | scan_fmt = { version = "0.2.6" , optional = true, default-features = false } |
95 | ivf = { version = "0.1" , path = "ivf/" , optional = true } |
96 | v_frame = "0.3.7" |
97 | av-metrics = { version = "0.9.1" , optional = true, default-features = false } |
98 | rayon = { package = "maybe-rayon" , version = "0.1" , default-features = false } |
99 | crossbeam = { version = "0.8" , optional = true } |
100 | toml = { version = "0.8" , optional = true } |
101 | arrayvec = "0.7" |
102 | thiserror = "1.0" |
103 | byteorder = { version = "1.5.0" , optional = true } |
104 | log = "0.4" |
105 | console = { version = "0.15" , optional = true } |
106 | fern = { version = "0.6" , optional = true } |
107 | itertools = "0.12" |
108 | simd_helpers = "0.1" |
109 | wasm-bindgen = { version = "0.2.89" , optional = true } |
110 | nom = { version = "7.1.3" , optional = true } |
111 | new_debug_unreachable = "1.0.4" |
112 | once_cell = "1.19.0" |
113 | av1-grain = "0.2.2" |
114 | serde-big-array = { version = "0.5.1" , optional = true } |
115 | profiling = { version = "1" } |
116 | tracing-subscriber = { version = "0.3.18" , optional = true } |
117 | tracing-chrome = { version = "0.7.1" , optional = true } |
118 | tracing = { version = "0.1.40" , optional = true } |
119 | |
120 | [dependencies.image] |
121 | version = "0.24.7" |
122 | optional = true |
123 | default-features = false |
124 | features = ["png" ] |
125 | |
126 | [build-dependencies] |
127 | cc = { version = "1.0" , optional = true, features = ["parallel" ] } |
128 | built = { version = "0.7.1" , features = [] } |
129 | |
130 | [build-dependencies.nasm-rs] |
131 | version = "0.2" |
132 | optional = true |
133 | features = ["parallel" ] |
134 | |
135 | [target.'cfg(unix)'.dependencies] |
136 | signal-hook = { version = "0.3" , optional = true } |
137 | |
138 | [dev-dependencies] |
139 | assert_cmd = "2.0" |
140 | criterion = "0.5" |
141 | pretty_assertions = "1.4.0" |
142 | interpolate_name = "0.2.4" |
143 | nom = "7.1.3" |
144 | quickcheck = "1.0" |
145 | rand = "0.8" |
146 | rand_chacha = "0.3" |
147 | semver = "1.0" |
148 | |
149 | [target.'cfg(fuzzing)'.dependencies] |
150 | arbitrary = "1.3" |
151 | interpolate_name = "0.2.4" |
152 | libfuzzer-sys = "0.4.7" |
153 | rand = "0.8" |
154 | rand_chacha = "0.3" |
155 | |
156 | [target.'cfg(any(decode_test, decode_test_dav1d))'.dependencies] |
157 | system-deps = "6" |
158 | |
159 | [[bin]] |
160 | name = "rav1e" |
161 | required-features = ["binaries" ] |
162 | bench = false |
163 | |
164 | [[bin]] |
165 | name = "rav1e-ch" |
166 | required-features = ["binaries" , "channel-api" , "unstable" ] |
167 | bench = false |
168 | |
169 | [lib] |
170 | bench = false |
171 | |
172 | [[bench]] |
173 | name = "bench" |
174 | path = "benches/bench.rs" |
175 | required-features = ["bench" ] |
176 | harness = false |
177 | |
178 | [profile.dev] |
179 | opt-level = 1 |
180 | |
181 | [profile.release] |
182 | debug = true |
183 | incremental = true |
184 | lto = "thin" |
185 | |
186 | # windows-gnu should use it until rust-lang/rust#98302 is not fixed |
187 | [profile.release-no-lto] |
188 | inherits = "release" |
189 | lto = "off" |
190 | |
191 | [profile.release-strip] |
192 | inherits = "release" |
193 | strip = "symbols" |
194 | |
195 | [profile.bench] |
196 | incremental = true |
197 | |
198 | [workspace] |
199 | members = ["." , "ivf" ] |
200 | |
201 | [package.metadata.docs.rs] |
202 | no-default-features = true |
203 | |