From 9742af361136463ac62213d234653b9ddd298078 Mon Sep 17 00:00:00 2001 From: Fabio Valentini Date: Jun 27 2023 21:22:29 +0000 Subject: Update to version 0.6.6; Fixes RHBZ#2149770 --- diff --git a/.gitignore b/.gitignore index 9946bff..f73aa3b 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /rav1e-0.4.1.crate /rav1e-0.5.0.crate /rav1e-0.5.1.crate +/rav1e-0.6.6.crate diff --git a/0001-remove-references-to-removed-built-and-rust_hawktrac.patch b/0001-remove-references-to-removed-built-and-rust_hawktrac.patch new file mode 100644 index 0000000..c2b7f99 --- /dev/null +++ b/0001-remove-references-to-removed-built-and-rust_hawktrac.patch @@ -0,0 +1,952 @@ +From c9f67758165ad7d4967fd5932d3c5b93923afa00 Mon Sep 17 00:00:00 2001 +From: Fabio Valentini +Date: Tue, 27 Jun 2023 20:30:34 +0200 +Subject: [PATCH] remove references to removed built and rust_hawktracer crates + +The "built" crate embeds information about the state of the git +repository into the binary, but this is useless when using tarballs. + +The macros from the "rust_hawktracer" crate are compiled down to +no-ops since the required features are disabled in release builds. +--- + build.rs | 2 -- + src/activity.rs | 3 --- + src/api/internal.rs | 11 -------- + src/api/lookahead.rs | 5 ---- + src/bin/common.rs | 9 +------ + src/bin/muxer/ivf.rs | 2 -- + src/bin/muxer/y4m.rs | 2 -- + src/bin/rav1e-ch.rs | 10 ------- + src/bin/rav1e.rs | 56 --------------------------------------- + src/bin/stats.rs | 2 -- + src/cdef.rs | 5 ---- + src/context/block_unit.rs | 2 -- + src/deblock.rs | 4 --- + src/encoder.rs | 14 ---------- + src/lib.rs | 5 ---- + src/lrf.rs | 6 ----- + src/me.rs | 9 ------- + src/rate.rs | 3 --- + src/rdo.rs | 9 ------- + src/scenechange/fast.rs | 3 --- + src/scenechange/mod.rs | 2 -- + src/segmentation.rs | 3 --- + 22 files changed, 1 insertion(+), 166 deletions(-) + +diff --git a/build.rs b/build.rs +index 52e544e..64aad99 100644 +--- a/build.rs ++++ b/build.rs +@@ -251,8 +251,6 @@ fn rustc_version_check() { + fn main() { + rustc_version_check(); + +- built::write_built_file().expect("Failed to acquire build-time information"); +- + let arch = env::var("CARGO_CFG_TARGET_ARCH").unwrap(); + let os = env::var("CARGO_CFG_TARGET_OS").unwrap(); + // let env = env::var("CARGO_CFG_TARGET_ENV").unwrap(); +diff --git a/src/activity.rs b/src/activity.rs +index ae29826..df9ac8d 100644 +--- a/src/activity.rs ++++ b/src/activity.rs +@@ -12,7 +12,6 @@ use crate::rdo::DistortionScale; + use crate::tiling::*; + use crate::util::*; + use itertools::izip; +-use rust_hawktracer::*; + + #[derive(Debug, Default, Clone)] + pub struct ActivityMask { +@@ -20,7 +19,6 @@ pub struct ActivityMask { + } + + impl ActivityMask { +- #[hawktracer(ActivityMask_from_plane)] + pub fn from_plane(luma_plane: &Plane) -> ActivityMask { + let PlaneConfig { width, height, .. } = luma_plane.cfg; + +@@ -55,7 +53,6 @@ impl ActivityMask { + ActivityMask { variances: variances.into_boxed_slice() } + } + +- #[hawktracer(ActivityMask_fill_scales)] + pub fn fill_scales( + &self, bit_depth: usize, activity_scales: &mut Box<[DistortionScale]>, + ) { +diff --git a/src/api/internal.rs b/src/api/internal.rs +index b6cfaba..f1c9dbf 100644 +--- a/src/api/internal.rs ++++ b/src/api/internal.rs +@@ -28,7 +28,6 @@ use crate::stats::EncoderStats; + use crate::tiling::Area; + use crate::util::Pixel; + use arrayvec::ArrayVec; +-use rust_hawktracer::*; + use std::cmp; + use std::collections::{BTreeMap, BTreeSet}; + use std::env; +@@ -316,7 +315,6 @@ impl ContextInner { + } + } + +- #[hawktracer(send_frame)] + pub fn send_frame( + &mut self, mut frame: Option>>, + params: Option, +@@ -649,7 +647,6 @@ impl ContextInner { + /// `rec_buffer` and `lookahead_rec_buffer` on the `FrameInvariants`. This + /// function must be called after every new `FrameInvariants` is initially + /// computed. +- #[hawktracer(compute_lookahead_motion_vectors)] + fn compute_lookahead_motion_vectors(&mut self, output_frameno: u64) { + let frame_data = self.frame_data.get(&output_frameno).unwrap(); + +@@ -862,7 +859,6 @@ impl ContextInner { + }); + } + +- #[hawktracer(compute_keyframe_placement)] + pub fn compute_keyframe_placement( + lookahead_frames: &[&Arc>], keyframes_forced: &BTreeSet, + keyframe_detector: &mut SceneChangeDetector, +@@ -881,7 +877,6 @@ impl ContextInner { + *next_lookahead_frame += 1; + } + +- #[hawktracer(compute_frame_invariants)] + pub fn compute_frame_invariants(&mut self) { + while self.set_frame_properties(self.next_lookahead_output_frameno).is_ok() + { +@@ -894,7 +889,6 @@ impl ContextInner { + } + } + +- #[hawktracer(update_block_importances)] + fn update_block_importances( + fi: &FrameInvariants, me_stats: &crate::me::FrameMEStats, + frame: &Frame, reference_frame: &Frame, bit_depth: usize, +@@ -1057,7 +1051,6 @@ impl ContextInner { + } + + /// Computes the block importances for the current output frame. +- #[hawktracer(compute_block_importances)] + fn compute_block_importances(&mut self) { + // SEF don't need block importances. + if self.frame_data[&self.output_frameno] +@@ -1281,7 +1274,6 @@ impl ContextInner { + } + } + +- #[hawktracer(encode_show_existing_packet)] + pub fn encode_show_existing_packet( + &mut self, cur_output_frameno: u64, + ) -> Result, EncoderStatus> { +@@ -1317,7 +1309,6 @@ impl ContextInner { + self.finalize_packet(rec, source, input_frameno, frame_type, qp, enc_stats) + } + +- #[hawktracer(encode_normal_packet)] + pub fn encode_normal_packet( + &mut self, cur_output_frameno: u64, + ) -> Result, EncoderStatus> { +@@ -1480,7 +1471,6 @@ impl ContextInner { + } + } + +- #[hawktracer(receive_packet)] + pub fn receive_packet(&mut self) -> Result, EncoderStatus> { + if self.done_processing() { + return Err(EncoderStatus::LimitReached); +@@ -1546,7 +1536,6 @@ impl ContextInner { + }) + } + +- #[hawktracer(garbage_collect)] + fn garbage_collect(&mut self, cur_input_frameno: u64) { + if cur_input_frameno == 0 { + return; +diff --git a/src/api/lookahead.rs b/src/api/lookahead.rs +index 2758d59..fd63293 100644 +--- a/src/api/lookahead.rs ++++ b/src/api/lookahead.rs +@@ -14,7 +14,6 @@ use crate::rayon::iter::*; + use crate::tiling::{Area, PlaneRegion, TileRect}; + use crate::transform::TxSize; + use crate::Pixel; +-use rust_hawktracer::*; + use std::sync::Arc; + use v_frame::frame::Frame; + use v_frame::pixel::CastFromPrimitive; +@@ -26,7 +25,6 @@ pub(crate) const IMP_BLOCK_SIZE_IN_MV_UNITS: i64 = + pub(crate) const IMP_BLOCK_AREA_IN_MV_UNITS: i64 = + IMP_BLOCK_SIZE_IN_MV_UNITS * IMP_BLOCK_SIZE_IN_MV_UNITS; + +-#[hawktracer(estimate_intra_costs)] + pub(crate) fn estimate_intra_costs( + temp_plane: &mut Plane, frame: &Frame, bit_depth: usize, + cpu_feature_level: CpuFeatureLevel, +@@ -120,7 +118,6 @@ pub(crate) fn estimate_intra_costs( + intra_costs.into_boxed_slice() + } + +-#[hawktracer(estimate_importance_block_difference)] + pub(crate) fn estimate_importance_block_difference( + frame: Arc>, ref_frame: Arc>, + ) -> f64 { +@@ -176,7 +173,6 @@ pub(crate) fn estimate_importance_block_difference( + imp_block_costs as f64 / (w_in_imp_b * h_in_imp_b) as f64 + } + +-#[hawktracer(estimate_inter_costs)] + pub(crate) fn estimate_inter_costs( + frame: Arc>, ref_frame: Arc>, bit_depth: usize, + mut config: EncoderConfig, sequence: Arc, buffer: RefMEStats, +@@ -265,7 +261,6 @@ pub(crate) fn estimate_inter_costs( + inter_costs as f64 / (w_in_imp_b * h_in_imp_b) as f64 + } + +-#[hawktracer(compute_motion_vectors)] + pub(crate) fn compute_motion_vectors( + fi: &mut FrameInvariants, fs: &mut FrameState, inter_cfg: &InterConfig, + ) { +diff --git a/src/bin/common.rs b/src/bin/common.rs +index 2c9b120..43bc91f 100644 +--- a/src/bin/common.rs ++++ b/src/bin/common.rs +@@ -22,11 +22,6 @@ use std::io; + use std::io::prelude::*; + use std::path::PathBuf; + +-pub mod built_info { +- // The file has been placed there by the build script. +- include!(concat!(env!("OUT_DIR"), "/built.rs")); +-} +- + #[derive(Clap)] + #[clap( + name = "rav1e", +@@ -273,10 +268,8 @@ fn get_long_version() -> &'static str { + rustflags = "(None)"; + } + format!( +- "{}\n{} {}\nCompiled CPU Features: {}\nAssembly: {}\nThreading: {}\nUnstable Features: {}\nCompiler Flags: {}", ++ "{}\nCompiled CPU Features: {}\nAssembly: {}\nThreading: {}\nUnstable Features: {}\nCompiler Flags: {}", + get_version(), +- built_info::RUSTC_VERSION, +- built_info::TARGET, + option_env!("CARGO_CFG_TARGET_FEATURE").unwrap_or("(None)"), + if cfg!(feature = "asm") { "Enabled" } else { "Disabled" }, + if cfg!(feature = "threading") { "Enabled" } else { "Disabled" }, +diff --git a/src/bin/muxer/ivf.rs b/src/bin/muxer/ivf.rs +index ac26cde..b3a29a6 100644 +--- a/src/bin/muxer/ivf.rs ++++ b/src/bin/muxer/ivf.rs +@@ -12,7 +12,6 @@ use super::Muxer; + use crate::error::*; + use ivf::*; + use rav1e::prelude::*; +-use rust_hawktracer::*; + use std::fs; + use std::fs::File; + use std::io; +@@ -37,7 +36,6 @@ impl Muxer for IvfMuxer { + ); + } + +- #[hawktracer(write_frame)] + fn write_frame(&mut self, pts: u64, data: &[u8], _frame_type: FrameType) { + write_ivf_frame(&mut self.output, pts, data); + } +diff --git a/src/bin/muxer/y4m.rs b/src/bin/muxer/y4m.rs +index fb5db1e..9b5771b 100644 +--- a/src/bin/muxer/y4m.rs ++++ b/src/bin/muxer/y4m.rs +@@ -9,11 +9,9 @@ + + use crate::decoder::VideoDetails; + use rav1e::prelude::*; +-use rust_hawktracer::*; + use std::io::Write; + use std::slice; + +-#[hawktracer(write_y4m_frame)] + pub fn write_y4m_frame( + y4m_enc: &mut y4m::Encoder>, rec: &Frame, + y4m_details: VideoDetails, +diff --git a/src/bin/rav1e-ch.rs b/src/bin/rav1e-ch.rs +index 212d0af..dc411d3 100644 +--- a/src/bin/rav1e-ch.rs ++++ b/src/bin/rav1e-ch.rs +@@ -314,18 +314,8 @@ fn do_encode( + } + + fn main() -> Result<(), Box> { +- #[cfg(feature = "tracing")] +- use rust_hawktracer::*; + init_logger(); + +- #[cfg(feature = "tracing")] +- let instance = HawktracerInstance::new(); +- #[cfg(feature = "tracing")] +- let _listener = instance.create_listener(HawktracerListenerType::ToFile { +- file_path: "trace.bin".into(), +- buffer_size: 4096, +- }); +- + run().map_err(|e| { + error::print_error(&e); + Box::new(e) as Box +diff --git a/src/bin/rav1e.rs b/src/bin/rav1e.rs +index 415acff..d3cf7ee 100644 +--- a/src/bin/rav1e.rs ++++ b/src/bin/rav1e.rs +@@ -54,7 +54,6 @@ use crate::error::*; + use crate::stats::*; + use rav1e::config::CpuFeatureLevel; + use rav1e::prelude::*; +-use rust_hawktracer::*; + + use crate::decoder::{Decoder, FrameBuilder, VideoDetails}; + use crate::muxer::*; +@@ -105,7 +104,6 @@ impl Source { + } + } + +- #[hawktracer(Source_read_frame)] + fn read_frame( + &mut self, ctx: &mut Context, video_info: VideoDetails, + ) -> Result<(), CliError> { +@@ -141,7 +139,6 @@ impl Source { + + // Encode and write a frame. + // Returns frame information in a `Result`. +-#[hawktracer(process_frame)] + fn process_frame( + ctx: &mut Context, output_file: &mut dyn Muxer, source: &mut Source, + pass1file: Option<&mut File>, pass2file: Option<&mut File>, +@@ -306,65 +303,12 @@ fn do_encode( + } + + fn main() { +- #[cfg(feature = "tracing")] +- init_logger(); +- +- #[cfg(feature = "tracing")] +- let instance = HawktracerInstance::new(); +- #[cfg(feature = "tracing")] +- let _listener = instance.create_listener(HawktracerListenerType::ToFile { +- file_path: "trace.bin".into(), +- buffer_size: 4096, +- }); +- + run().unwrap_or_else(|e| { + error::print_error(&e); + exit(1); + }); + } + +-#[cfg(feature = "tracing")] +-fn init_logger() { +- use std::str::FromStr; +- fn level_colored(l: log::Level) -> console::StyledObject<&'static str> { +- use console::style; +- use log::Level; +- match l { +- Level::Trace => style("??").dim(), +- Level::Debug => style("? ").dim(), +- Level::Info => style("> ").green(), +- Level::Warn => style("! ").yellow(), +- Level::Error => style("!!").red(), +- } +- } +- +- let level = std::env::var("RAV1E_LOG") +- .ok() +- .and_then(|l| log::LevelFilter::from_str(&l).ok()) +- .unwrap_or(log::LevelFilter::Info); +- +- fern::Dispatch::new() +- .format(move |out, message, record| { +- out.finish(format_args!( +- "{level} {message}", +- level = level_colored(record.level()), +- message = message, +- )); +- }) +- // set the default log level. to filter out verbose log messages from dependencies, set +- // this to Warn and overwrite the log level for your crate. +- .level(log::LevelFilter::Warn) +- // change log levels for individual modules. Note: This looks for the record's target +- // field which defaults to the module path but can be overwritten with the `target` +- // parameter: +- // `info!(target="special_target", "This log message is about special_target");` +- .level_for("rav1e", level) +- // output to stdout +- .chain(std::io::stderr()) +- .apply() +- .unwrap(); +-} +- + cfg_if::cfg_if! { + if #[cfg(any(target_os = "windows", target_arch = "wasm32"))] { + fn print_rusage() { +diff --git a/src/bin/stats.rs b/src/bin/stats.rs +index 91fca5b..7f8fd1d 100644 +--- a/src/bin/stats.rs ++++ b/src/bin/stats.rs +@@ -12,7 +12,6 @@ use rav1e::data::EncoderStats; + use rav1e::prelude::Rational; + use rav1e::prelude::*; + use rav1e::{Packet, Pixel}; +-use rust_hawktracer::*; + use std::fmt; + use std::time::Instant; + +@@ -30,7 +29,6 @@ pub struct FrameSummary { + pub enc_stats: EncoderStats, + } + +-#[hawktracer(build_frame_summary)] + pub fn build_frame_summary( + packets: Packet, bit_depth: usize, chroma_sampling: ChromaSampling, + metrics_cli: MetricsEnabled, +diff --git a/src/cdef.rs b/src/cdef.rs +index de3fba3..6487b88 100644 +--- a/src/cdef.rs ++++ b/src/cdef.rs +@@ -13,7 +13,6 @@ use crate::encoder::FrameInvariants; + use crate::frame::*; + use crate::tiling::*; + use crate::util::{clamp, msb, CastFromPrimitive, Pixel}; +-use rust_hawktracer::*; + + use crate::cpu_features::CpuFeatureLevel; + use std::cmp; +@@ -322,7 +321,6 @@ fn adjust_strength(strength: i32, var: i32) -> i32 { + } + } + +-#[hawktracer(cdef_analyze_superblock_range)] + pub fn cdef_analyze_superblock_range( + fi: &FrameInvariants, in_frame: &Frame, blocks: &TileBlocks<'_>, + sb_w: usize, sb_h: usize, +@@ -337,7 +335,6 @@ pub fn cdef_analyze_superblock_range( + ret + } + +-#[hawktracer(cdef_analyze_superblock)] + pub fn cdef_analyze_superblock( + fi: &FrameInvariants, in_frame: &Frame, blocks: &TileBlocks<'_>, + sbo: TileSuperBlockOffset, +@@ -398,7 +395,6 @@ pub fn cdef_analyze_superblock( + /// # Panics + /// + /// - If called with invalid parameters +-#[hawktracer(cdef_filter_superblock)] + pub fn cdef_filter_superblock( + fi: &FrameInvariants, input: &Frame, output: &mut TileMut<'_, T>, + blocks: &TileBlocks<'_>, tile_sbo: TileSuperBlockOffset, cdef_index: u8, +@@ -594,7 +590,6 @@ pub fn cdef_filter_superblock( + // tile boundary), the filtering process ignores input pixels that + // don't exist. + +-#[hawktracer(cdef_filter_tile)] + pub fn cdef_filter_tile( + fi: &FrameInvariants, input: &Frame, tb: &TileBlocks, + output: &mut TileMut<'_, T>, +diff --git a/src/context/block_unit.rs b/src/context/block_unit.rs +index 1d53b0d..5d0272f 100644 +--- a/src/context/block_unit.rs ++++ b/src/context/block_unit.rs +@@ -10,7 +10,6 @@ + use super::*; + + use crate::predict::PredictionMode; +-use rust_hawktracer::*; + + pub const MAX_PLANES: usize = 3; + +@@ -1122,7 +1121,6 @@ impl<'a> ContextWriter<'a> { + } + } + +- #[hawktracer(setup_mvref_list)] + fn setup_mvref_list( + &self, bo: TileBlockOffset, ref_frames: [RefType; 2], + mv_stack: &mut ArrayVec, bsize: BlockSize, +diff --git a/src/deblock.rs b/src/deblock.rs +index 775101d..6b8ef51 100644 +--- a/src/deblock.rs ++++ b/src/deblock.rs +@@ -18,7 +18,6 @@ use crate::rayon::iter::*; + use crate::tiling::*; + use crate::util::{clamp, ILog, Pixel}; + use crate::DeblockState; +-use rust_hawktracer::*; + use std::cmp; + + fn deblock_adjusted_level( +@@ -1291,7 +1290,6 @@ fn sse_h_edge( + } + + // Deblocks all edges, vertical and horizontal, in a single plane +-#[hawktracer(deblock_plane)] + pub fn deblock_plane( + deblock: &DeblockState, p: &mut PlaneRegionMut, pli: usize, + blocks: &TileBlocks, crop_w: usize, crop_h: usize, bd: usize, +@@ -1541,7 +1539,6 @@ fn sse_plane( + } + + // Deblocks all edges in all planes of a frame +-#[hawktracer(deblock_filter_frame)] + pub fn deblock_filter_frame( + deblock: &DeblockState, tile: &mut TileMut, blocks: &TileBlocks, + crop_w: usize, crop_h: usize, bd: usize, planes: usize, +@@ -1617,7 +1614,6 @@ fn sse_optimize( + level + } + +-#[hawktracer(deblock_filter_optimize)] + pub fn deblock_filter_optimize( + fi: &FrameInvariants, rec: &Tile, input: &Tile, + blocks: &TileBlocks, crop_w: usize, crop_h: usize, +diff --git a/src/encoder.rs b/src/encoder.rs +index 18c360c..7f846a9 100644 +--- a/src/encoder.rs ++++ b/src/encoder.rs +@@ -41,7 +41,6 @@ use crate::wasm_bindgen::*; + use arg_enum_proc_macro::ArgEnum; + use arrayvec::*; + use bitstream_io::{BigEndian, BitWrite, BitWriter}; +-use rust_hawktracer::*; + + use std::collections::VecDeque; + use std::io::Write; +@@ -570,7 +569,6 @@ pub struct SegmentationState { + } + + impl SegmentationState { +- #[hawktracer(SegmentationState_update_threshold)] + pub fn update_threshold(&mut self, base_q_idx: u8, bd: usize) { + let base_ac_q = ac_q(base_q_idx, 0, bd).get() as u64; + let real_ac_q = ArrayVec::<_, MAX_SEGMENTS>::from_iter( +@@ -748,7 +746,6 @@ impl CodedFrameData { + + // Assumes that we have already computed activity scales and distortion scales + // Returns -0.5 log2(mean(scale)) +- #[hawktracer(compute_spatiotemporal_scores)] + pub fn compute_spatiotemporal_scores(&mut self) -> i64 { + let mut scores = self + .distortion_scales +@@ -774,7 +771,6 @@ impl CodedFrameData { + + // Assumes that we have already computed distortion_scales + // Returns -0.5 log2(mean(scale)) +- #[hawktracer(compute_temporal_scores)] + pub fn compute_temporal_scores(&mut self) -> i64 { + let inv_mean = DistortionScale::inv_mean(&self.distortion_scales); + for scale in self.distortion_scales.iter_mut() { +@@ -1657,7 +1653,6 @@ pub fn encode_tx_block( + /// # Panics + /// + /// - If the block size is invalid for subsampling +-#[hawktracer(motion_compensate)] + pub fn motion_compensate( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, luma_mode: PredictionMode, ref_frames: [RefType; 2], +@@ -1886,7 +1881,6 @@ pub fn save_block_motion( + } + } + +-#[hawktracer(encode_block_pre_cdef)] + pub fn encode_block_pre_cdef( + seq: &Sequence, ts: &TileStateMut<'_, T>, cw: &mut ContextWriter, w: &mut W, + bsize: BlockSize, tile_bo: TileBlockOffset, skip: bool, +@@ -1927,7 +1921,6 @@ pub fn encode_block_pre_cdef( + /// + /// - If chroma and luma do not match for inter modes + /// - If an invalid motion vector is found +-#[hawktracer(encode_block_post_cdef)] + pub fn encode_block_post_cdef( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, w: &mut W, luma_mode: PredictionMode, +@@ -2552,7 +2545,6 @@ pub fn write_tx_tree( + (partition_has_coeff, tx_dist) + } + +-#[hawktracer(encode_block_with_modes)] + pub fn encode_block_with_modes( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, w_pre_cdef: &mut W, w_post_cdef: &mut W, +@@ -2619,7 +2611,6 @@ pub fn encode_block_with_modes( + ); + } + +-#[hawktracer(encode_partition_bottomup)] + fn encode_partition_bottomup( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, w_pre_cdef: &mut W, w_post_cdef: &mut W, +@@ -3222,7 +3213,6 @@ fn get_initial_cdfcontext(fi: &FrameInvariants) -> CDFContext { + cdf.unwrap_or_else(|| CDFContext::new(fi.base_q_idx)) + } + +-#[hawktracer(encode_tile_group)] + fn encode_tile_group( + fi: &FrameInvariants, fs: &mut FrameState, inter_cfg: &InterConfig, + ) -> Vec { +@@ -3361,7 +3351,6 @@ pub struct SBSQueueEntry { + pub w_post_cdef: WriterBase, + } + +-#[hawktracer(check_lf_queue)] + fn check_lf_queue( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, w: &mut WriterBase, +@@ -3453,7 +3442,6 @@ fn check_lf_queue( + } + } + +-#[hawktracer(encode_tile)] + fn encode_tile<'a, T: Pixel>( + fi: &FrameInvariants, ts: &'a mut TileStateMut<'_, T>, + fc: &'a mut CDFContext, blocks: &'a mut TileBlocksMut<'a>, +@@ -3678,7 +3666,6 @@ fn write_tile_group_header(tile_start_and_end_present_flag: bool) -> Vec { + /// # Panics + /// + /// - If the frame packets cannot be written +-#[hawktracer(encode_show_existing_frame)] + pub fn encode_show_existing_frame( + fi: &FrameInvariants, fs: &mut FrameState, inter_cfg: &InterConfig, + ) -> Vec { +@@ -3753,7 +3740,6 @@ fn get_initial_segmentation( + /// # Panics + /// + /// - If the frame packets cannot be written +-#[hawktracer(encode_frame)] + pub fn encode_frame( + fi: &FrameInvariants, fs: &mut FrameState, inter_cfg: &InterConfig, + ) -> Vec { +diff --git a/src/lib.rs b/src/lib.rs +index 9f23e51..e6df48d 100644 +--- a/src/lib.rs ++++ b/src/lib.rs +@@ -77,11 +77,6 @@ extern crate pretty_assertions; + #[macro_use] + extern crate log; + +-pub(crate) mod built_info { +- // The file has been placed there by the build script. +- include!(concat!(env!("OUT_DIR"), "/built.rs")); +-} +- + mod serialize { + cfg_if::cfg_if! { + if #[cfg(feature="serialize")] { +diff --git a/src/lrf.rs b/src/lrf.rs +index 9c8285d..039dd5e 100644 +--- a/src/lrf.rs ++++ b/src/lrf.rs +@@ -24,7 +24,6 @@ use crate::frame::{ + }; + use crate::tiling::{Area, PlaneRegion, PlaneRegionMut, Rect}; + use crate::util::{clamp, CastFromPrimitive, ILog, Pixel}; +-use rust_hawktracer::*; + use std::cmp; + use std::iter::FusedIterator; + use std::ops::{Index, IndexMut}; +@@ -526,7 +525,6 @@ impl<'a, T: Pixel> Iterator for HorzPaddedIter<'a, T> { + impl ExactSizeIterator for HorzPaddedIter<'_, T> {} + impl FusedIterator for HorzPaddedIter<'_, T> {} + +-#[hawktracer(setup_integral_image)] + pub fn setup_integral_image( + integral_image_buffer: &mut IntegralImageBuffer, + integral_image_stride: usize, crop_w: usize, crop_h: usize, stripe_w: usize, +@@ -626,7 +624,6 @@ pub fn setup_integral_image( + } + } + +-#[hawktracer(sgrproj_stripe_filter)] + pub fn sgrproj_stripe_filter( + set: u8, xqd: [i8; 2], fi: &FrameInvariants, + integral_image_buffer: &IntegralImageBuffer, integral_image_stride: usize, +@@ -843,7 +840,6 @@ pub fn sgrproj_stripe_filter( + + // Input params follow the same rules as sgrproj_stripe_filter. + // Inputs are relative to the colocated slice views. +-#[hawktracer(sgrproj_solve)] + pub fn sgrproj_solve( + set: u8, fi: &FrameInvariants, + integral_image_buffer: &IntegralImageBuffer, input: &PlaneRegion<'_, T>, +@@ -1095,7 +1091,6 @@ pub fn sgrproj_solve( + } + } + +-#[hawktracer(wiener_stripe_filter)] + fn wiener_stripe_filter( + coeffs: [[i8; 3]; 2], fi: &FrameInvariants, crop_w: usize, crop_h: usize, + stripe_w: usize, stripe_h: usize, stripe_x: usize, stripe_y: isize, +@@ -1484,7 +1479,6 @@ impl RestorationState { + } + } + +- #[hawktracer(lrf_filter_frame)] + pub fn lrf_filter_frame( + &mut self, out: &mut Frame, pre_cdef: &Frame, + fi: &FrameInvariants, +diff --git a/src/me.rs b/src/me.rs +index 20fa201..a650985 100644 +--- a/src/me.rs ++++ b/src/me.rs +@@ -24,7 +24,6 @@ use crate::util::{clamp, Pixel}; + use crate::FrameInvariants; + + use arrayvec::*; +-use rust_hawktracer::*; + use std::ops::{Index, IndexMut}; + use std::sync::{Arc, RwLock, RwLockReadGuard, RwLockWriteGuard}; + +@@ -383,7 +382,6 @@ impl MotionEstimationSubsets { + } + } + +-#[hawktracer(get_subset_predictors)] + fn get_subset_predictors( + tile_bo: TileBlockOffset, tile_me_stats: &TileMEStats<'_>, + frame_ref_opt: Option>, ref_frame_id: usize, +@@ -690,7 +688,6 @@ fn refine_subsampled_motion_estimate( + } + } + +-#[hawktracer(full_pixel_me)] + fn full_pixel_me( + fi: &FrameInvariants, ts: &TileStateMut<'_, T>, + org_region: &PlaneRegion, p_ref: &Plane, tile_bo: TileBlockOffset, +@@ -882,7 +879,6 @@ fn sub_pixel_me( + ); + } + +-#[hawktracer(get_best_predictor)] + fn get_best_predictor( + fi: &FrameInvariants, po: PlaneOffset, org_region: &PlaneRegion, + p_ref: &Plane, predictors: &[MotionVector], bit_depth: usize, +@@ -953,7 +949,6 @@ const DIAMOND_R1_PATTERN: [MotionVector; 4] = search_pattern!( + /// For each step size, candidate motion vectors are examined for improvement + /// to the current search location. The search location is moved to the best + /// candidate (if any). This is repeated until the search location stops moving. +-#[hawktracer(fullpel_diamond_search)] + fn fullpel_diamond_search( + fi: &FrameInvariants, po: PlaneOffset, org_region: &PlaneRegion, + p_ref: &Plane, current: &mut MotionSearchResult, bit_depth: usize, +@@ -1053,7 +1048,6 @@ const SQUARE_REFINE_PATTERN: [MotionVector; 8] = search_pattern!( + /// + /// `current` provides the initial search location and serves as + /// the output for the final search results. +-#[hawktracer(hexagon_search)] + fn hexagon_search( + fi: &FrameInvariants, po: PlaneOffset, org_region: &PlaneRegion, + p_ref: &Plane, current: &mut MotionSearchResult, bit_depth: usize, +@@ -1168,7 +1162,6 @@ const UMH_PATTERN: [MotionVector; 16] = search_pattern!( + /// the output for the final search results. + /// + /// `me_range` parameter determines how far these stages can search. +-#[hawktracer(uneven_multi_hex_search)] + fn uneven_multi_hex_search( + fi: &FrameInvariants, po: PlaneOffset, org_region: &PlaneRegion, + p_ref: &Plane, current: &mut MotionSearchResult, bit_depth: usize, +@@ -1309,7 +1302,6 @@ fn uneven_multi_hex_search( + /// For each step size, candidate motion vectors are examined for improvement + /// to the current search location. The search location is moved to the best + /// candidate (if any). This is repeated until the search location stops moving. +-#[hawktracer(subpel_diamond_search)] + fn subpel_diamond_search( + fi: &FrameInvariants, po: PlaneOffset, org_region: &PlaneRegion, + _p_ref: &Plane, bit_depth: usize, pmv: [MotionVector; 2], lambda: u32, +@@ -1462,7 +1454,6 @@ fn compute_mv_rd( + MVCandidateRD { cost: 256 * sad as u64 + rate as u64 * lambda as u64, sad } + } + +-#[hawktracer(full_search)] + fn full_search( + fi: &FrameInvariants, x_lo: isize, x_hi: isize, y_lo: isize, y_hi: isize, + w: usize, h: usize, org_region: &PlaneRegion, p_ref: &Plane, +diff --git a/src/rate.rs b/src/rate.rs +index 16e0598..3ae7b09 100644 +--- a/src/rate.rs ++++ b/src/rate.rs +@@ -14,7 +14,6 @@ use crate::quantize::{ac_q, dc_q, select_ac_qi, select_dc_qi}; + use crate::util::{ + bexp64, bexp_q24, blog64, clamp, q24_to_q57, q57, q57_to_q24, Pixel, + }; +-use rust_hawktracer::*; + use std::cmp; + + // The number of frame sub-types for which we track distinct parameters. +@@ -720,7 +719,6 @@ impl RCState { + } + + // TODO: Separate quantizers for Cb and Cr. +- #[hawktracer(select_qi)] + pub(crate) fn select_qi( + &self, ctx: &ContextInner, output_frameno: u64, fti: usize, + maybe_prev_log_base_q: Option, log_isqrt_mean_scale: i64, +@@ -1069,7 +1067,6 @@ impl RCState { + (log_base_q, log_q) + } + +- #[hawktracer(RCState_update_state)] + pub fn update_state( + &mut self, bits: i64, fti: usize, show_frame: bool, log_target_q: i64, + trial: bool, droppable: bool, +diff --git a/src/rdo.rs b/src/rdo.rs +index 34d751e..03be0b5 100644 +--- a/src/rdo.rs ++++ b/src/rdo.rs +@@ -46,7 +46,6 @@ use crate::{encode_block_post_cdef, encode_block_pre_cdef}; + + use arrayvec::*; + use itertools::izip; +-use rust_hawktracer::*; + use std::fmt; + use std::mem::MaybeUninit; + +@@ -811,7 +810,6 @@ const fn dmv_in_range(mv: MotionVector, ref_mv: MotionVector) -> bool { + } + + #[inline] +-#[hawktracer(luma_chroma_mode_rdo)] + fn luma_chroma_mode_rdo( + luma_mode: PredictionMode, fi: &FrameInvariants, bsize: BlockSize, + tile_bo: TileBlockOffset, ts: &mut TileStateMut<'_, T>, +@@ -958,7 +956,6 @@ fn luma_chroma_mode_rdo( + /// + /// - If the best RD found is negative. + /// This should never happen and indicates a development error. +-#[hawktracer(rdo_mode_decision)] + pub fn rdo_mode_decision( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, bsize: BlockSize, tile_bo: TileBlockOffset, +@@ -1116,7 +1113,6 @@ pub fn rdo_mode_decision( + } + } + +-#[hawktracer(inter_frame_rdo_mode_decision)] + fn inter_frame_rdo_mode_decision( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, bsize: BlockSize, tile_bo: TileBlockOffset, +@@ -1389,7 +1385,6 @@ fn inter_frame_rdo_mode_decision( + best + } + +-#[hawktracer(intra_frame_rdo_mode_decision)] + fn intra_frame_rdo_mode_decision( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, bsize: BlockSize, tile_bo: TileBlockOffset, +@@ -1586,7 +1581,6 @@ fn intra_frame_rdo_mode_decision( + /// # Panics + /// + /// - If the block size is invalid for subsampling. +-#[hawktracer(rdo_cfl_alpha)] + pub fn rdo_cfl_alpha( + ts: &mut TileStateMut<'_, T>, tile_bo: TileBlockOffset, bsize: BlockSize, + luma_tx_size: TxSize, fi: &FrameInvariants, +@@ -1941,7 +1935,6 @@ fn rdo_partition_simple( + /// + /// - If the best RD found is negative. + /// This should never happen, and indicates a development error. +-#[hawktracer(rdo_partition_decision)] + pub fn rdo_partition_decision( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, w_pre_cdef: &mut W, w_post_cdef: &mut W, +@@ -2019,7 +2012,6 @@ pub fn rdo_partition_decision( + } + } + +-#[hawktracer(rdo_loop_plane_error)] + fn rdo_loop_plane_error( + base_sbo: TileSuperBlockOffset, offset_sbo: TileSuperBlockOffset, + sb_w: usize, sb_h: usize, fi: &FrameInvariants, ts: &TileStateMut<'_, T>, +@@ -2096,7 +2088,6 @@ fn rdo_loop_plane_error( + /// # Panics + /// + /// - If both CDEF and LRF are disabled. +-#[hawktracer(rdo_loop_decision)] + pub fn rdo_loop_decision( + base_sbo: TileSuperBlockOffset, fi: &FrameInvariants, + ts: &mut TileStateMut<'_, T>, cw: &mut ContextWriter, w: &mut W, +diff --git a/src/scenechange/fast.rs b/src/scenechange/fast.rs +index 8b1dd39..1ca2a0d 100644 +--- a/src/scenechange/fast.rs ++++ b/src/scenechange/fast.rs +@@ -8,7 +8,6 @@ use crate::{ + scenechange::fast_idiv, + }; + use debug_unreachable::debug_unreachable; +-use rust_hawktracer::*; + use v_frame::pixel::Pixel; + + use super::{ScaleFunction, SceneChangeDetector, ScenecutResult}; +@@ -19,7 +18,6 @@ pub(super) const FAST_THRESHOLD: f64 = 18.0; + impl SceneChangeDetector { + /// The fast algorithm detects fast cuts using a raw difference + /// in pixel values between the scaled frames. +- #[hawktracer(fast_scenecut)] + pub(super) fn fast_scenecut( + &mut self, frame1: Arc>, frame2: Arc>, + ) -> ScenecutResult { +@@ -104,7 +102,6 @@ impl SceneChangeDetector { + } + + /// Calculates the average sum of absolute difference (SAD) per pixel between 2 planes +- #[hawktracer(delta_in_planes)] + fn delta_in_planes(&self, plane1: &Plane, plane2: &Plane) -> f64 { + let delta = sad_plane::sad_plane(plane1, plane2, self.cpu_feature_level); + +diff --git a/src/scenechange/mod.rs b/src/scenechange/mod.rs +index 7414f09..aa0184f 100644 +--- a/src/scenechange/mod.rs ++++ b/src/scenechange/mod.rs +@@ -17,7 +17,6 @@ use crate::frame::*; + use crate::me::RefMEStats; + use crate::util::Pixel; + use debug_unreachable::debug_unreachable; +-use rust_hawktracer::*; + use std::collections::BTreeMap; + use std::sync::Arc; + use std::{cmp, u64}; +@@ -164,7 +163,6 @@ impl SceneChangeDetector { + /// to the second frame in `frame_set`. + /// + /// This will gracefully handle the first frame in the video as well. +- #[hawktracer(analyze_next_frame)] + pub fn analyze_next_frame( + &mut self, frame_set: &[&Arc>], input_frameno: u64, + previous_keyframe: u64, +diff --git a/src/segmentation.rs b/src/segmentation.rs +index 454d372..36ee42f 100644 +--- a/src/segmentation.rs ++++ b/src/segmentation.rs +@@ -16,11 +16,9 @@ use crate::tiling::TileStateMut; + use crate::util::Pixel; + use crate::FrameInvariants; + use crate::FrameState; +-use rust_hawktracer::*; + + pub const MAX_SEGMENTS: usize = 8; + +-#[hawktracer(segmentation_optimize)] + pub fn segmentation_optimize( + fi: &FrameInvariants, fs: &mut FrameState, + ) { +@@ -160,7 +158,6 @@ fn segmentation_optimize_inner( + fs.segmentation.update_threshold(fi.base_q_idx, fi.config.bit_depth); + } + +-#[hawktracer(select_segment)] + pub fn select_segment( + fi: &FrameInvariants, ts: &TileStateMut<'_, T>, tile_bo: TileBlockOffset, + bsize: BlockSize, skip: bool, +-- +2.41.0 + diff --git a/0001-remove-unused-hawktracer-usage.patch b/0001-remove-unused-hawktracer-usage.patch deleted file mode 100644 index fc92b16..0000000 --- a/0001-remove-unused-hawktracer-usage.patch +++ /dev/null @@ -1,435 +0,0 @@ -From 0dc6dc69be65915666c3d70455d181d4d1b5b78c Mon Sep 17 00:00:00 2001 -From: Fabio Valentini -Date: Mon, 8 Aug 2022 20:48:47 +0200 -Subject: [PATCH 1/3] remove unused hawktracer usage - ---- - src/activity.rs | 3 --- - src/api/internal.rs | 9 --------- - src/api/lookahead.rs | 5 ----- - src/bin/muxer/ivf.rs | 2 -- - src/bin/rav1e-ch.rs | 10 ---------- - src/bin/rav1e.rs | 10 ---------- - src/bin/stats.rs | 3 --- - src/cdef.rs | 2 -- - src/deblock.rs | 4 ---- - src/encoder.rs | 3 --- - src/lrf.rs | 2 -- - src/me.rs | 3 --- - src/scenechange/mod.rs | 5 ----- - 13 files changed, 61 deletions(-) - -diff --git a/src/activity.rs b/src/activity.rs -index 99d9137..7ebcd0e 100644 ---- a/src/activity.rs -+++ b/src/activity.rs -@@ -12,7 +12,6 @@ use crate::rdo::{ssim_boost, DistortionScale}; - use crate::tiling::*; - use crate::util::*; - use itertools::izip; --use rust_hawktracer::*; - - #[derive(Debug, Default, Clone)] - pub struct ActivityMask { -@@ -20,7 +19,6 @@ pub struct ActivityMask { - } - - impl ActivityMask { -- #[hawktracer(activity_mask_from_plane)] - pub fn from_plane(luma_plane: &Plane) -> ActivityMask { - let PlaneConfig { width, height, .. } = luma_plane.cfg; - -@@ -55,7 +53,6 @@ impl ActivityMask { - ActivityMask { variances: variances.into_boxed_slice() } - } - -- #[hawktracer(activity_mask_fill_scales)] - pub fn fill_scales( - &self, bit_depth: usize, activity_scales: &mut Box<[DistortionScale]>, - ) { -diff --git a/src/api/internal.rs b/src/api/internal.rs -index c1613c8..5bfa3ab 100644 ---- a/src/api/internal.rs -+++ b/src/api/internal.rs -@@ -27,7 +27,6 @@ use crate::stats::EncoderStats; - use crate::tiling::Area; - use crate::util::Pixel; - use arrayvec::ArrayVec; --use rust_hawktracer::*; - use std::cmp; - use std::collections::{BTreeMap, BTreeSet}; - use std::env; -@@ -312,7 +311,6 @@ impl ContextInner { - } - } - -- #[hawktracer(send_frame)] - pub fn send_frame( - &mut self, mut frame: Option>>, - params: Option, -@@ -591,7 +589,6 @@ impl ContextInner { - /// `rec_buffer` and `lookahead_rec_buffer` on the `FrameInvariants`. This - /// function must be called after every new `FrameInvariants` is initially - /// computed. -- #[hawktracer(compute_lookahead_motion_vectors)] - fn compute_lookahead_motion_vectors(&mut self, output_frameno: u64) { - let qps = { - let frame_data = self.frame_data.get(&output_frameno).unwrap(); -@@ -752,7 +749,6 @@ impl ContextInner { - - /// Computes lookahead intra cost approximations and fills in - /// `lookahead_intra_costs` on the `FrameInvariants`. -- #[hawktracer(compute_lookahead_intra_costs)] - fn compute_lookahead_intra_costs(&mut self, output_frameno: u64) { - let frame_data = self.frame_data.get(&output_frameno).unwrap(); - let fi = &frame_data.fi; -@@ -774,7 +770,6 @@ impl ContextInner { - ); - } - -- #[hawktracer(compute_keyframe_placement)] - pub fn compute_keyframe_placement( - &mut self, lookahead_frames: &[Arc>], - ) { -@@ -791,7 +786,6 @@ impl ContextInner { - self.next_lookahead_frame += 1; - } - -- #[hawktracer(compute_frame_invariants)] - pub fn compute_frame_invariants(&mut self) { - while self.set_frame_properties(self.next_lookahead_output_frameno).is_ok() - { -@@ -804,7 +798,6 @@ impl ContextInner { - } - } - -- #[hawktracer(update_block_importances)] - fn update_block_importances( - fi: &FrameInvariants, me_stats: &crate::me::FrameMEStats, - frame: &Frame, reference_frame: &Frame, bit_depth: usize, -@@ -963,7 +956,6 @@ impl ContextInner { - } - - /// Computes the block importances for the current output frame. -- #[hawktracer(compute_block_importances)] - fn compute_block_importances(&mut self) { - // SEF don't need block importances. - if self.frame_data[&self.output_frameno].fi.show_existing_frame { -@@ -1296,7 +1288,6 @@ impl ContextInner { - } - } - -- #[hawktracer(receive_packet)] - pub fn receive_packet(&mut self) -> Result, EncoderStatus> { - if self.done_processing() { - return Err(EncoderStatus::LimitReached); -diff --git a/src/api/lookahead.rs b/src/api/lookahead.rs -index 690acd2..30297d3 100644 ---- a/src/api/lookahead.rs -+++ b/src/api/lookahead.rs -@@ -14,7 +14,6 @@ use crate::rayon::iter::*; - use crate::tiling::{Area, TileRect}; - use crate::transform::TxSize; - use crate::{Frame, Pixel}; --use rust_hawktracer::*; - use std::sync::Arc; - use v_frame::pixel::CastFromPrimitive; - -@@ -24,7 +23,6 @@ pub(crate) const IMP_BLOCK_SIZE_IN_MV_UNITS: i64 = - pub(crate) const IMP_BLOCK_AREA_IN_MV_UNITS: i64 = - IMP_BLOCK_SIZE_IN_MV_UNITS * IMP_BLOCK_SIZE_IN_MV_UNITS; - --#[hawktracer(estimate_intra_costs)] - pub(crate) fn estimate_intra_costs( - frame: &Frame, bit_depth: usize, cpu_feature_level: CpuFeatureLevel, - ) -> Box<[u32]> { -@@ -116,7 +114,6 @@ pub(crate) fn estimate_intra_costs( - intra_costs.into_boxed_slice() - } - --#[hawktracer(estimate_importance_block_difference)] - pub(crate) fn estimate_importance_block_difference( - frame: Arc>, ref_frame: Arc>, - ) -> Box<[u32]> { -@@ -174,7 +171,6 @@ pub(crate) fn estimate_importance_block_difference( - inter_costs.into_boxed_slice() - } - --#[hawktracer(estimate_inter_costs)] - pub(crate) fn estimate_inter_costs( - frame: Arc>, ref_frame: Arc>, bit_depth: usize, - mut config: EncoderConfig, sequence: Arc, -@@ -236,7 +232,6 @@ pub(crate) fn estimate_inter_costs( - inter_costs.into_boxed_slice() - } - --#[hawktracer(compute_motion_vectors)] - pub(crate) fn compute_motion_vectors( - fi: &mut FrameInvariants, fs: &mut FrameState, inter_cfg: &InterConfig, - ) { -diff --git a/src/bin/muxer/ivf.rs b/src/bin/muxer/ivf.rs -index d89e541..2157a58 100644 ---- a/src/bin/muxer/ivf.rs -+++ b/src/bin/muxer/ivf.rs -@@ -12,7 +12,6 @@ use super::Muxer; - use crate::error::*; - use ivf::*; - use rav1e::prelude::*; --use rust_hawktracer::*; - use std::fs; - use std::fs::File; - use std::io; -@@ -37,7 +36,6 @@ impl Muxer for IvfMuxer { - ); - } - -- #[hawktracer(write_frame)] - fn write_frame(&mut self, pts: u64, data: &[u8], _frame_type: FrameType) { - write_ivf_frame(&mut self.output, pts, data); - } -diff --git a/src/bin/rav1e-ch.rs b/src/bin/rav1e-ch.rs -index d9081dd..80b6f9a 100644 ---- a/src/bin/rav1e-ch.rs -+++ b/src/bin/rav1e-ch.rs -@@ -303,18 +303,8 @@ fn do_encode( - } - - fn main() -> Result<(), Box> { -- #[cfg(feature = "tracing")] -- use rust_hawktracer::*; - init_logger(); - -- #[cfg(feature = "tracing")] -- let instance = HawktracerInstance::new(); -- #[cfg(feature = "tracing")] -- let _listener = instance.create_listener(HawktracerListenerType::ToFile { -- file_path: "trace.bin".into(), -- buffer_size: 4096, -- }); -- - run().map_err(|e| { - error::print_error(&e); - Box::new(e) as Box -diff --git a/src/bin/rav1e.rs b/src/bin/rav1e.rs -index da6d664..2d9eac3 100644 ---- a/src/bin/rav1e.rs -+++ b/src/bin/rav1e.rs -@@ -295,18 +295,8 @@ fn do_encode( - } - - fn main() { -- #[cfg(feature = "tracing")] -- use rust_hawktracer::*; - init_logger(); - -- #[cfg(feature = "tracing")] -- let instance = HawktracerInstance::new(); -- #[cfg(feature = "tracing")] -- let _listener = instance.create_listener(HawktracerListenerType::ToFile { -- file_path: "trace.bin".into(), -- buffer_size: 4096, -- }); -- - run().unwrap_or_else(|e| { - error::print_error(&e); - exit(1); -diff --git a/src/bin/stats.rs b/src/bin/stats.rs -index d363d0c..09e3b77 100644 ---- a/src/bin/stats.rs -+++ b/src/bin/stats.rs -@@ -12,7 +12,6 @@ use rav1e::data::EncoderStats; - use rav1e::prelude::Rational; - use rav1e::prelude::*; - use rav1e::{Packet, Pixel}; --use rust_hawktracer::*; - use std::fmt; - use std::time::Instant; - -@@ -30,7 +29,6 @@ pub struct FrameSummary { - pub enc_stats: EncoderStats, - } - --#[hawktracer(build_frame_summary)] - pub fn build_frame_summary( - packets: Packet, bit_depth: usize, chroma_sampling: ChromaSampling, - metrics_cli: MetricsEnabled, -@@ -742,7 +740,6 @@ pub enum MetricsEnabled { - All, - } - --#[hawktracer(calculate_frame_metrics)] - pub fn calculate_frame_metrics( - frame1: &Frame, frame2: &Frame, bit_depth: usize, cs: ChromaSampling, - metrics: MetricsEnabled, -diff --git a/src/cdef.rs b/src/cdef.rs -index 6eeddb0..26e8ae1 100644 ---- a/src/cdef.rs -+++ b/src/cdef.rs -@@ -13,7 +13,6 @@ use crate::encoder::FrameInvariants; - use crate::frame::*; - use crate::tiling::*; - use crate::util::{clamp, msb, CastFromPrimitive, Pixel}; --use rust_hawktracer::*; - - use crate::cpu_features::CpuFeatureLevel; - use std::cmp; -@@ -586,7 +585,6 @@ pub fn cdef_filter_superblock( - // tile boundary), the filtering process ignores input pixels that - // don't exist. - --#[hawktracer(cdef_filter_tile)] - pub fn cdef_filter_tile( - fi: &FrameInvariants, input: &Frame, tb: &TileBlocks, - output: &mut TileMut<'_, T>, -diff --git a/src/deblock.rs b/src/deblock.rs -index ff70368..61b7cd4 100644 ---- a/src/deblock.rs -+++ b/src/deblock.rs -@@ -17,7 +17,6 @@ use crate::quantize::*; - use crate::tiling::*; - use crate::util::{clamp, ILog, Pixel}; - use crate::DeblockState; --use rust_hawktracer::*; - use std::cmp; - - use crate::rayon::iter::*; -@@ -1313,7 +1312,6 @@ fn sse_h_edge( - } - - // Deblocks all edges, vertical and horizontal, in a single plane --#[hawktracer(deblock_plane)] - pub fn deblock_plane( - deblock: &DeblockState, p: &mut PlaneRegionMut, pli: usize, - blocks: &TileBlocks, crop_w: usize, crop_h: usize, bd: usize, -@@ -1563,7 +1561,6 @@ fn sse_plane( - } - - // Deblocks all edges in all planes of a frame --#[hawktracer(deblock_filter_frame)] - pub fn deblock_filter_frame( - deblock: &DeblockState, tile: &mut TileMut, blocks: &TileBlocks, - crop_w: usize, crop_h: usize, bd: usize, planes: usize, -@@ -1641,7 +1638,6 @@ fn sse_optimize( - level - } - --#[hawktracer(deblock_filter_optimize)] - pub fn deblock_filter_optimize( - fi: &FrameInvariants, rec: &Tile, input: &Tile, - blocks: &TileBlocks, crop_w: usize, crop_h: usize, -diff --git a/src/encoder.rs b/src/encoder.rs -index c0b31fa..5fc753f 100644 ---- a/src/encoder.rs -+++ b/src/encoder.rs -@@ -48,7 +48,6 @@ use std::sync::Arc; - use std::{fmt, io, mem}; - - use crate::rayon::iter::*; --use rust_hawktracer::*; - - #[allow(dead_code)] - #[derive(Debug, Clone, PartialEq)] -@@ -2949,7 +2948,6 @@ fn get_initial_cdfcontext(fi: &FrameInvariants) -> CDFContext { - cdf.unwrap_or_else(|| CDFContext::new(fi.base_q_idx)) - } - --#[hawktracer(encode_tile_group)] - fn encode_tile_group( - fi: &FrameInvariants, fs: &mut FrameState, inter_cfg: &InterConfig, - ) -> Vec { -@@ -3181,7 +3179,6 @@ fn check_lf_queue( - } - } - --#[hawktracer(encode_tile)] - fn encode_tile<'a, T: Pixel>( - fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, - fc: &'a mut CDFContext, blocks: &'a mut TileBlocksMut<'a>, -diff --git a/src/lrf.rs b/src/lrf.rs -index 2fc3b33..4399c4c 100644 ---- a/src/lrf.rs -+++ b/src/lrf.rs -@@ -23,7 +23,6 @@ use crate::frame::{ - }; - use crate::tiling::{Area, PlaneRegion, PlaneRegionMut, Rect}; - use crate::util::{clamp, CastFromPrimitive, ILog, Pixel}; --use rust_hawktracer::*; - - use crate::api::SGRComplexityLevel; - use std::cmp; -@@ -1461,7 +1460,6 @@ impl RestorationState { - } - } - -- #[hawktracer(lrf_filter_frame)] - pub fn lrf_filter_frame( - &mut self, out: &mut Frame, pre_cdef: &Frame, - fi: &FrameInvariants, -diff --git a/src/me.rs b/src/me.rs -index 6f849a4..7ed64e4 100644 ---- a/src/me.rs -+++ b/src/me.rs -@@ -29,8 +29,6 @@ use crate::util::ILog; - use std::ops::{Index, IndexMut}; - use std::sync::Arc; - --use rust_hawktracer::*; -- - #[derive(Debug, Copy, Clone, Default)] - pub struct MEStats { - pub mv: MotionVector, -@@ -98,7 +96,6 @@ enum MVSamplingMode { - CORNER { right: bool, bottom: bool }, - } - --#[hawktracer(estimate_tile_motion)] - pub fn estimate_tile_motion( - fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, - inter_cfg: &InterConfig, -diff --git a/src/scenechange/mod.rs b/src/scenechange/mod.rs -index 20479f0..126329d 100644 ---- a/src/scenechange/mod.rs -+++ b/src/scenechange/mod.rs -@@ -14,7 +14,6 @@ use crate::encoder::Sequence; - use crate::frame::*; - use crate::sad_row; - use crate::util::Pixel; --use rust_hawktracer::*; - use std::sync::Arc; - use std::{cmp, u64}; - -@@ -123,7 +122,6 @@ impl SceneChangeDetector { - /// to the second frame in `frame_set`. - /// - /// This will gracefully handle the first frame in the video as well. -- #[hawktracer(analyze_next_frame)] - pub fn analyze_next_frame( - &mut self, frame_set: &[Arc>], input_frameno: u64, - previous_keyframe: u64, -@@ -345,7 +343,6 @@ impl SceneChangeDetector { - - /// The fast algorithm detects fast cuts using a raw difference - /// in pixel values between the scaled frames. -- #[hawktracer(fast_scenecut)] - fn fast_scenecut( - &mut self, frame1: Arc>, frame2: Arc>, - ) -> ScenecutResult { -@@ -424,7 +421,6 @@ impl SceneChangeDetector { - /// We gather both intra and inter costs for the frames, - /// as well as an importance-block-based difference, - /// and use all three metrics. -- #[hawktracer(cost_scenecut)] - fn cost_scenecut( - &self, frame1: Arc>, frame2: Arc>, - ) -> ScenecutResult { -@@ -487,7 +483,6 @@ impl SceneChangeDetector { - } - - /// Calculates the average sum of absolute difference (SAD) per pixel between 2 planes -- #[hawktracer(delta_in_planes)] - fn delta_in_planes(&self, plane1: &Plane, plane2: &Plane) -> f64 { - let mut delta = 0; - --- -2.39.2 - diff --git a/0002-Fix-UB-in-pred_max-test.patch b/0002-Fix-UB-in-pred_max-test.patch deleted file mode 100644 index 3f8f29c..0000000 --- a/0002-Fix-UB-in-pred_max-test.patch +++ /dev/null @@ -1,27 +0,0 @@ -From c867cd96956a2c5034496362c4a530b97fefe4b8 Mon Sep 17 00:00:00 2001 -From: Fabio Valentini -Date: Fri, 13 Jan 2023 17:35:44 +0100 -Subject: [PATCH 2/3] Fix UB in pred_max test - -Backport of upstream commit: -https://github.com/xiph/rav1e/commit/d56fe642bbbd8fe3d20c851b950db3fcaea53c7a ---- - src/predict.rs | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/predict.rs b/src/predict.rs -index 8e0108a..6058ccb 100644 ---- a/src/predict.rs -+++ b/src/predict.rs -@@ -1542,7 +1542,7 @@ mod test { - } - } - -- let above_left = unsafe { *above.as_ptr().offset(-1) }; -+ let above_left = max12bit; - - pred_paeth( - &mut o.as_region_mut(), --- -2.39.2 - diff --git a/0003-Disambiguate-ILog-ilog-calls-from-integer-ilog-from-.patch b/0003-Disambiguate-ILog-ilog-calls-from-integer-ilog-from-.patch deleted file mode 100644 index 44758cd..0000000 --- a/0003-Disambiguate-ILog-ilog-calls-from-integer-ilog-from-.patch +++ /dev/null @@ -1,164 +0,0 @@ -From 81ec02d29afbfa503997a56d3fb7c3f039030d8d Mon Sep 17 00:00:00 2001 -From: Fabio Valentini -Date: Fri, 17 Feb 2023 00:54:53 +0100 -Subject: [PATCH 3/3] Disambiguate ILog::ilog calls from {integer}::ilog from - Rust 1.67+ - ---- - src/deblock.rs | 4 ++-- - src/ec.rs | 8 ++++---- - src/encoder.rs | 2 +- - src/lrf.rs | 4 ++-- - src/me.rs | 2 +- - src/rate.rs | 2 +- - src/transform/inverse.rs | 4 ++-- - src/transform/mod.rs | 2 +- - 8 files changed, 14 insertions(+), 14 deletions(-) - -diff --git a/src/deblock.rs b/src/deblock.rs -index 61b7cd4..03048a5 100644 ---- a/src/deblock.rs -+++ b/src/deblock.rs -@@ -1578,8 +1578,8 @@ fn sse_optimize( - ) -> [u8; 4] { - // i64 allows us to accumulate a total of ~ 35 bits worth of pixels - assert!( -- input.planes[0].plane_cfg.width.ilog() -- + input.planes[0].plane_cfg.height.ilog() -+ ILog::ilog(input.planes[0].plane_cfg.width) -+ + ILog::ilog(input.planes[0].plane_cfg.height) - < 35 - ); - let mut level = [0; 4]; -diff --git a/src/ec.rs b/src/ec.rs -index 5d02ffd..c8abc62 100644 ---- a/src/ec.rs -+++ b/src/ec.rs -@@ -192,7 +192,7 @@ impl StorageBackend for WriterBase { - #[inline] - fn store(&mut self, fl: u16, fh: u16, nms: u16) { - let (_l, r) = self.lr_compute(fl, fh, nms); -- let d = 16 - r.ilog(); -+ let d = 16 - ILog::ilog(r); - let mut s = self.cnt + (d as i16); - - self.s.bytes += (s >= 0) as usize + (s >= 8) as usize; -@@ -230,7 +230,7 @@ impl StorageBackend for WriterBase { - #[inline] - fn store(&mut self, fl: u16, fh: u16, nms: u16) { - let (_l, r) = self.lr_compute(fl, fh, nms); -- let d = 16 - r.ilog(); -+ let d = 16 - ILog::ilog(r); - let mut s = self.cnt + (d as i16); - - self.s.bytes += (s >= 0) as usize + (s >= 8) as usize; -@@ -271,7 +271,7 @@ impl StorageBackend for WriterBase { - let (l, r) = self.lr_compute(fl, fh, nms); - let mut low = l + self.s.low; - let mut c = self.cnt; -- let d = 16 - r.ilog(); -+ let d = 16 - ILog::ilog(r); - let mut s = c + (d as i16); - - if s >= 0 { -@@ -584,7 +584,7 @@ where - - // The 9 here counteracts the offset of -9 baked into cnt. Don't include a termination bit. - let pre = Self::frac_compute((self.cnt + 9) as u32, self.rng as u32); -- let d = 16 - r.ilog(); -+ let d = 16 - ILog::ilog(r); - let mut c = self.cnt; - let mut sh = c + (d as i16); - if sh >= 0 { -diff --git a/src/encoder.rs b/src/encoder.rs -index 5fc753f..b5995ed 100644 ---- a/src/encoder.rs -+++ b/src/encoder.rs -@@ -3051,7 +3051,7 @@ fn encode_tile_group( - fs.cdfs.reset_counts(); - } - -- let max_tile_size_bytes = ((max_len.ilog() + 7) / 8) as u32; -+ let max_tile_size_bytes = ((ILog::ilog(max_len) + 7) / 8) as u32; - debug_assert!(max_tile_size_bytes > 0 && max_tile_size_bytes <= 4); - fs.max_tile_size_bytes = max_tile_size_bytes; - -diff --git a/src/lrf.rs b/src/lrf.rs -index 4399c4c..bf59647 100644 ---- a/src/lrf.rs -+++ b/src/lrf.rs -@@ -1408,8 +1408,8 @@ impl RestorationState { - } - - // derive the rest -- let y_unit_log2 = y_unit_size.ilog() - 1; -- let uv_unit_log2 = uv_unit_size.ilog() - 1; -+ let y_unit_log2 = ILog::ilog(y_unit_size) - 1; -+ let uv_unit_log2 = ILog::ilog(uv_unit_size) - 1; - let y_cols = ((fi.width + (y_unit_size >> 1)) / y_unit_size).max(1); - let y_rows = ((fi.height + (y_unit_size >> 1)) / y_unit_size).max(1); - let uv_cols = ((((fi.width + (1 << xdec >> 1)) >> xdec) -diff --git a/src/me.rs b/src/me.rs -index 7ed64e4..3acdb07 100644 ---- a/src/me.rs -+++ b/src/me.rs -@@ -1065,7 +1065,7 @@ fn get_mv_rate( - #[inline(always)] - fn diff_to_rate(diff: i16, allow_high_precision_mv: bool) -> u32 { - let d = if allow_high_precision_mv { diff } else { diff >> 1 }; -- 2 * d.abs().ilog() as u32 -+ 2 * ILog::ilog(d.abs()) as u32 - } - - diff_to_rate(a.row - b.row, allow_high_precision_mv) -diff --git a/src/rate.rs b/src/rate.rs -index 6bc23f3..1a94f08 100644 ---- a/src/rate.rs -+++ b/src/rate.rs -@@ -234,7 +234,7 @@ fn blog64(w: i64) -> i64 { - if w <= 0 { - return -1; - } -- let ipart = w.ilog() as i32 - 1; -+ let ipart = ILog::ilog(w) as i32 - 1; - if ipart > 61 { - w >>= ipart - 61; - } else { -diff --git a/src/transform/inverse.rs b/src/transform/inverse.rs -index 3bf3286..813c784 100644 ---- a/src/transform/inverse.rs -+++ b/src/transform/inverse.rs -@@ -1608,7 +1608,7 @@ pub(crate) mod rust { - - // perform inv txfm on every row - let range = bd + 8; -- let txfm_fn = INV_TXFM_FNS[tx_types_1d.1 as usize][width.ilog() - 3]; -+ let txfm_fn = INV_TXFM_FNS[tx_types_1d.1 as usize][ILog::ilog(width) - 3]; - // 64 point transforms only signal 32 coeffs. We only take chunks of 32 - // and skip over the last 32 transforms here. - for (r, buffer_slice) in (0..height.min(32)).zip(buffer.chunks_mut(width)) -@@ -1634,7 +1634,7 @@ pub(crate) mod rust { - - // perform inv txfm on every col - let range = cmp::max(bd + 6, 16); -- let txfm_fn = INV_TXFM_FNS[tx_types_1d.0 as usize][height.ilog() - 3]; -+ let txfm_fn = INV_TXFM_FNS[tx_types_1d.0 as usize][ILog::ilog(height) - 3]; - for c in 0..width { - let mut temp_in: [i32; 64] = [0; 64]; - let mut temp_out: [i32; 64] = [0; 64]; -diff --git a/src/transform/mod.rs b/src/transform/mod.rs -index 304df73..96e9457 100644 ---- a/src/transform/mod.rs -+++ b/src/transform/mod.rs -@@ -288,7 +288,7 @@ pub enum TxSet { - #[inline] - pub fn get_rect_tx_log_ratio(col: usize, row: usize) -> i8 { - debug_assert!(col > 0 && row > 0); -- col.ilog() as i8 - row.ilog() as i8 -+ ILog::ilog(col) as i8 - ILog::ilog(row) as i8 - } - - // performs half a butterfly --- -2.39.2 - diff --git a/README.md b/README.md deleted file mode 100644 index 747a48d..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# rust-rav1e - -The rust-rav1e package \ No newline at end of file diff --git a/d56fe64.patch b/d56fe64.patch deleted file mode 100644 index 753d37e..0000000 --- a/d56fe64.patch +++ /dev/null @@ -1,23 +0,0 @@ -From d56fe642bbbd8fe3d20c851b950db3fcaea53c7a Mon Sep 17 00:00:00 2001 -From: redzic <48274562+redzic@users.noreply.github.com> -Date: Thu, 29 Sep 2022 15:17:00 -0500 -Subject: [PATCH] Fix UB in pred_max test - ---- - src/predict.rs | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/src/predict.rs b/src/predict.rs -index 85cdd69abb..75140830db 100644 ---- a/src/predict.rs -+++ b/src/predict.rs -@@ -1558,8 +1558,7 @@ mod test { - } - } - -- // SAFETY: ??? -- let above_left = unsafe { *above.as_ptr().offset(-1) }; -+ let above_left = max12bit; - - pred_paeth( - &mut o.as_region_mut(), diff --git a/rav1e-fix-metadata-auto.diff b/rav1e-fix-metadata-auto.diff index 807eb5e..6d5048d 100644 --- a/rav1e-fix-metadata-auto.diff +++ b/rav1e-fix-metadata-auto.diff @@ -1,11 +1,12 @@ ---- rav1e-0.5.1/Cargo.toml 1970-01-01T00:00:01+00:00 -+++ rav1e-0.5.1/Cargo.toml 1970-01-01T00:00:01+00:00 -@@ -232,22 +232,6 @@ - tracing = ["rust_hawktracer/profiling_enabled"] +--- rav1e-0.6.6/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ rav1e-0.6.6/Cargo.toml 2023-06-27T18:50:13.590213+00:00 +@@ -342,24 +342,6 @@ unstable = [] wasm = ["wasm-bindgen"] + -[target."cfg(any(decode_test, decode_test_dav1d))".dependencies.system-deps] --version = "~3.1.2" +-version = "6" +- -[target."cfg(fuzzing)".dependencies.arbitrary] -version = "0.4" - @@ -20,6 +21,7 @@ - -[target."cfg(fuzzing)".dependencies.rand_chacha] -version = "0.3" +- [target."cfg(unix)".dependencies.signal-hook] version = "0.3" optional = true diff --git a/rav1e-fix-metadata.diff b/rav1e-fix-metadata.diff index b3db2e2..86da400 100644 --- a/rav1e-fix-metadata.diff +++ b/rav1e-fix-metadata.diff @@ -1,35 +1,58 @@ ---- rav1e-0.5.1/Cargo.toml 1970-01-01T00:00:01+00:00 -+++ rav1e-0.5.1/Cargo.toml 2022-08-08T18:36:33.822505+00:00 -@@ -22,7 +22,7 @@ +--- rav1e-0.6.6/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ rav1e-0.6.6/Cargo.toml 2023-06-27T18:52:48.813784+00:00 +@@ -30,7 +30,7 @@ default-run = "rav1e" description = "The fastest and safest AV1 encoder" readme = "README.md" -license = "BSD-2-Clause" +license = "BSD-2-Clause AND ISC" repository = "https://github.com/xiph/rav1e/" + [package.metadata.docs.rs] - no-default-features = true -@@ -90,7 +90,7 @@ - default-features = false +@@ -72,11 +72,6 @@ + "unstable", + ] - [dependencies.console] --version = "0.14" -+version = "0.15" +-[[bench]] +-name = "bench" +-path = "benches/bench.rs" +-harness = false +- + [dependencies.aom-sys] + version = "0.3.2" optional = true +@@ -88,7 +83,7 @@ + version = "0.7" - [dependencies.crossbeam] -@@ -98,7 +98,7 @@ + [dependencies.av-metrics] +-version = "=0.9.0" ++version = "0.9.0" optional = true + default-features = false + +@@ -111,7 +106,7 @@ + version = "1.0" - [dependencies.dav1d-sys] --version = "0.3.4" -+version = "0.5" + [dependencies.clap] +-version = "=4.0.32" ++version = "4.0.32" + features = [ + "color", + "std", +@@ -125,10 +120,6 @@ + version = "4.0.3" optional = true - [dependencies.fern] -@@ -139,9 +139,6 @@ - [dependencies.rayon] - version = "1.0" +-[dependencies.clap_lex] +-version = "=0.3.0" +-optional = true +- + [dependencies.console] + version = "0.15" + optional = true +@@ -191,9 +182,6 @@ + default-features = false + package = "maybe-rayon" -[dependencies.rust_hawktracer] -version = "0.7.0" @@ -37,32 +60,94 @@ [dependencies.scan_fmt] version = "0.2.3" optional = true -@@ -165,18 +162,11 @@ +@@ -221,12 +209,8 @@ [dependencies.v_frame] - version = "0.2.5" + version = "0.3.3" -[dependencies.wasm-bindgen] -version = "0.2.63" -optional = true - + [dependencies.winnow] +-version = "=0.4.1" ++version = "0.4.1" + optional = true + [dependencies.y4m] - version = "0.7" +@@ -234,10 +218,7 @@ optional = true + [dev-dependencies.assert_cmd] - version = "2.0" +-version = "=2.0.8" - -[dev-dependencies.criterion] --version = "0.3" +-version = "0.4" ++version = "2.0.8" [dev-dependencies.interpolate_name] version = "0.2.2" -@@ -229,9 +219,7 @@ +@@ -246,13 +227,13 @@ + version = "7.1.1" + + [dev-dependencies.predicates] +-version = "=2.1.5" ++version = "2.1.5" + + [dev-dependencies.predicates-core] +-version = "=1.0.5" ++version = "1.0.5" + + [dev-dependencies.predicates-tree] +-version = "=1.0.7" ++version = "1.0.7" + + [dev-dependencies.pretty_assertions] + version = "1.3.0" +@@ -271,10 +252,6 @@ + + [dev-dependencies.semver] + version = "1.0" +- +-[build-dependencies.built] +-version = "0.5.2" +-features = [] + + [build-dependencies.cc] + version = "1.0" +@@ -294,7 +271,6 @@ + "nasm-rs", + "cc", + ] +-bench = [] + binaries = [ + "ivf", + "y4m", +@@ -316,7 +292,6 @@ + "asm", + "threading", + "signal_support", +- "git_version", + ] + desync_finder = ["backtrace"] + dump_ivf = ["ivf"] +@@ -324,7 +299,6 @@ + "byteorder", + "image", + ] +-git_version = ["built/git2"] + quick_test = [] scenechange = [] - serialize = ["serde", "toml", "v_frame/serialize", "arrayvec/serde"] + serialize = [ +@@ -335,12 +309,7 @@ + ] signal_support = ["signal-hook"] --tracing = ["rust_hawktracer/profiling_enabled"] + threading = ["rayon/threads"] +-tracing = [ +- "rust_hawktracer/profiling_enabled", +- "rust_hawktracer/pkg_config", +-] unstable = [] -wasm = ["wasm-bindgen"] + [target."cfg(unix)".dependencies.signal-hook] version = "0.3" - optional = true diff --git a/rust-rav1e.spec b/rust-rav1e.spec index b93f5ba..ebec0c9 100644 --- a/rust-rav1e.spec +++ b/rust-rav1e.spec @@ -1,52 +1,45 @@ -# Generated by rust2rpm 22 +# Generated by rust2rpm 24 %bcond_without check # Apache-2.0 OR MIT +# Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT # BSD-2-Clause # BSD-2-Clause AND ISC # MIT # MIT OR Apache-2.0 -%global binary_license BSD-2-Clause AND ISC AND MIT +# Unlicense OR MIT +%global binary_license BSD-2-Clause AND ISC AND MIT AND (Apache-2.0 OR MIT) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND (Unlicense OR MIT) +# LICENSE.dependencies contains a full license breakdown %global crate rav1e Name: rust-rav1e -Version: 0.5.1 +Version: 0.6.6 Release: %autorelease Summary: Fastest and safest AV1 encoder -# Upstream license specification: BSD-2-Clause -# src/ext/x86/x86inc.asm is under ISC, https://github.com/xiph/rav1e/issues/2181 +# rav1e is published under the terms of the BSD-2-Clause license, +# with the exception of one file: "src/ext/x86/x86inc.asm" (ISC license) License: BSD-2-Clause AND ISC URL: https://crates.io/crates/rav1e Source: %{crates_source} # Automatically generated patch to strip foreign dependencies Patch: rav1e-fix-metadata-auto.diff # Manually created patch for downstream crate metadata changes -# * Fix license in Cargo.toml -# * Bump console from 0.14 to 0.15 -# * Bump dav1d-sys from 0.3.4 to 0.5 -# * Remove useless rust_hawktracer dependency -# * Remove unused wasm-bindgen dependency -# * Remove unused criterion dev-dependency -# * Drop unused tracing feature -# * Drop unused wasm feature +# * update license expression in crate metadata +# * drop references to benchmarks +# * relax stricter-than-SemVer version requirements +# * drop unused, no-op rust_hawktracer dependency and tracing feature +# * drop unused and outdated optional clap_lex dependency +# * drop WASM-specific wasm-bindgen dependency and wasm feature +# * drop unused, benchmark-only criterion dev-dependency Patch: rav1e-fix-metadata.diff -# * Remove useless / no-op hawktracer macros -Patch: 0001-remove-unused-hawktracer-usage.patch -# * Backported patch to fix UB / crash in test code -# https://github.com/xiph/rav1e/commit/d56fe64: -Patch: 0002-Fix-UB-in-pred_max-test.patch -# * Disambiguate code which is ambiguous with Rust 1.67+ due to the -# stabilization of {integer}::ilog -Patch: 0003-Disambiguate-ILog-ilog-calls-from-integer-ilog-from-.patch +Patch: 0001-remove-references-to-removed-built-and-rust_hawktrac.patch -ExclusiveArch: %{rust_arches} - -BuildRequires: rust-packaging >= 21 +BuildRequires: rust-packaging >= 23 %global _description %{expand: -Fastest and safest AV1 encoder.} +The fastest and safest AV1 encoder.} %description %{_description} @@ -58,9 +51,11 @@ License: %{binary_license} %files -n %{crate} %license LICENSE +%license LICENSE.dependencies %license PATENTS %doc README.md %{_bindir}/rav1e +%{_bindir}/rav1e-ch %package -n %{crate}-libs Summary: Library files for rav1e @@ -71,6 +66,7 @@ Library files for rav1e, the fastest and safest AV1 encoder. %files -n %{crate}-libs %license LICENSE +%license LICENSE.dependencies %license PATENTS %doc README.md %{_libdir}/librav1e.so.0* @@ -162,18 +158,6 @@ use the "backtrace" feature of the "%{crate}" crate. %files -n %{name}+backtrace-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+bench-devel -Summary: %{summary} -BuildArch: noarch - -%description -n %{name}+bench-devel %{_description} - -This package contains library source intended for building other packages which -use the "bench" feature of the "%{crate}" crate. - -%files -n %{name}+bench-devel -%ghost %{crate_instdir}/Cargo.toml - %package -n %{name}+binaries-devel Summary: %{summary} BuildArch: noarch @@ -258,6 +242,18 @@ use the "clap" feature of the "%{crate}" crate. %files -n %{name}+clap-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+clap_complete-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+clap_complete-devel %{_description} + +This package contains library source intended for building other packages which +use the "clap_complete" feature of the "%{crate}" crate. + +%files -n %{name}+clap_complete-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+console-devel Summary: %{summary} BuildArch: noarch @@ -402,28 +398,28 @@ use the "nasm-rs" feature of the "%{crate}" crate. %files -n %{name}+nasm-rs-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+quick_test-devel +%package -n %{name}+nom-devel Summary: %{summary} BuildArch: noarch -%description -n %{name}+quick_test-devel %{_description} +%description -n %{name}+nom-devel %{_description} This package contains library source intended for building other packages which -use the "quick_test" feature of the "%{crate}" crate. +use the "nom" feature of the "%{crate}" crate. -%files -n %{name}+quick_test-devel +%files -n %{name}+nom-devel %ghost %{crate_instdir}/Cargo.toml -%package -n %{name}+regex-devel +%package -n %{name}+quick_test-devel Summary: %{summary} BuildArch: noarch -%description -n %{name}+regex-devel %{_description} +%description -n %{name}+quick_test-devel %{_description} This package contains library source intended for building other packages which -use the "regex" feature of the "%{crate}" crate. +use the "quick_test" feature of the "%{crate}" crate. -%files -n %{name}+regex-devel +%files -n %{name}+quick_test-devel %ghost %{crate_instdir}/Cargo.toml %package -n %{name}+scan_fmt-devel @@ -462,6 +458,18 @@ use the "serde" feature of the "%{crate}" crate. %files -n %{name}+serde-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+serde-big-array-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+serde-big-array-devel %{_description} + +This package contains library source intended for building other packages which +use the "serde-big-array" feature of the "%{crate}" crate. + +%files -n %{name}+serde-big-array-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+serialize-devel Summary: %{summary} BuildArch: noarch @@ -498,6 +506,18 @@ use the "signal_support" feature of the "%{crate}" crate. %files -n %{name}+signal_support-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+threading-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+threading-devel %{_description} + +This package contains library source intended for building other packages which +use the "threading" feature of the "%{crate}" crate. + +%files -n %{name}+threading-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+toml-devel Summary: %{summary} BuildArch: noarch @@ -522,6 +542,18 @@ use the "unstable" feature of the "%{crate}" crate. %files -n %{name}+unstable-devel %ghost %{crate_instdir}/Cargo.toml +%package -n %{name}+winnow-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+winnow-devel %{_description} + +This package contains library source intended for building other packages which +use the "winnow" feature of the "%{crate}" crate. + +%files -n %{name}+winnow-devel +%ghost %{crate_instdir}/Cargo.toml + %package -n %{name}+y4m-devel Summary: %{summary} BuildArch: noarch @@ -539,21 +571,23 @@ use the "y4m" feature of the "%{crate}" crate. %cargo_prep %generate_buildrequires -# We need optional dependencies for cargo-c to build +# cargo-c requires all optional dependencies to be available %cargo_generate_buildrequires -a echo "cargo-c" %build -%cargo_build +%cargo_build -f binaries,channel-api,unstable %__cargo cbuild --release \ --destdir=%{buildroot} \ --prefix=%{_prefix} \ --libdir=%{_libdir} \ --includedir=%{_includedir} \ --pkgconfigdir=%{_libdir}/pkgconfig +%cargo_license_summary -f binaries,channel-api,unstable +%{cargo_license -f binaries,channel-api,unstable} > LICENSE.dependencies %install -%cargo_install +%cargo_install -f binaries,channel-api,unstable %__cargo cinstall --release \ --destdir=%{buildroot} \ --prefix=%{_prefix} \ @@ -564,7 +598,7 @@ rm -v %{buildroot}%{_libdir}/librav1e.a %if %{with check} %check -%cargo_test +%cargo_test -f binaries,channel-api,unstable %endif %changelog diff --git a/sources b/sources index 8774d88..c005a15 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (rav1e-0.5.1.crate) = 83a5117f82840575fe6d62b7d959cec94d0e86a9b6f89e400b261ac681f821b6be1a65689b75c12fd2f2e4f0f49daa05a1e0d020612ef790ba66722288115365 +SHA512 (rav1e-0.6.6.crate) = e2c8502da92cb954c587049e544bd136514a5b9f26acaf3430d6e727da4c050de2cabb6a6e0d017ba79194ec45d9078aa7846746e823837373b4ed391db6e70a