commit 2be4f62e4eaa2da072fffa76c4eb5ee5ab4d3dbc Author: Dmitry Samoylik Date: Thu Dec 19 17:02:03 2024 +0300 import rust-rav1e-0.7.1-4.el10 diff --git a/.rust-rav1e.metadata b/.rust-rav1e.metadata new file mode 100644 index 0000000..e69de29 diff --git a/SOURCES/0001-remove-references-to-removed-built-and-profiling-cra.patch b/SOURCES/0001-remove-references-to-removed-built-and-profiling-cra.patch new file mode 100644 index 0000000..e1a7b41 --- /dev/null +++ b/SOURCES/0001-remove-references-to-removed-built-and-profiling-cra.patch @@ -0,0 +1,756 @@ +From 418a8c70fef6c26637550ee5c0bab1948b528b96 Mon Sep 17 00:00:00 2001 +From: Fabio Valentini +Date: Sat, 3 Feb 2024 19:05:21 +0100 +Subject: [PATCH] remove references to removed "built" and "profiling" 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 "profiling" crate are compiled down to no-ops +since the required features are disabled in release builds. +--- + build.rs | 2 -- + src/activity.rs | 2 -- + src/api/internal.rs | 10 ---------- + src/api/lookahead.rs | 4 ---- + src/bin/common.rs | 9 +-------- + src/bin/muxer/ivf.rs | 1 - + src/bin/muxer/y4m.rs | 1 - + src/bin/rav1e.rs | 2 -- + src/bin/stats.rs | 1 - + src/cdef.rs | 4 ---- + src/context/block_unit.rs | 1 - + src/deblock.rs | 3 --- + src/encoder.rs | 13 ------------- + src/lib.rs | 27 +++++---------------------- + src/lrf.rs | 5 ----- + src/me.rs | 8 -------- + src/rate.rs | 2 -- + src/rdo.rs | 8 -------- + src/scenechange/fast.rs | 2 -- + src/scenechange/mod.rs | 1 - + src/segmentation.rs | 2 -- + 21 files changed, 6 insertions(+), 102 deletions(-) + +diff --git a/build.rs b/build.rs +index 87987fc..50af563 100644 +--- a/build.rs ++++ b/build.rs +@@ -247,8 +247,6 @@ fn build_asm_files() { + + #[allow(unused_variables)] + fn main() { +- 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 a4558cb..041185c 100644 +--- a/src/activity.rs ++++ b/src/activity.rs +@@ -19,7 +19,6 @@ pub struct ActivityMask { + } + + impl ActivityMask { +- #[profiling::function] + pub fn from_plane(luma_plane: &Plane) -> ActivityMask { + let PlaneConfig { width, height, .. } = luma_plane.cfg; + +@@ -54,7 +53,6 @@ impl ActivityMask { + ActivityMask { variances: variances.into_boxed_slice() } + } + +- #[profiling::function] + 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 ffaf27c..2aacda6 100644 +--- a/src/api/internal.rs ++++ b/src/api/internal.rs +@@ -315,7 +315,6 @@ impl ContextInner { + } + } + +- #[profiling::function] + pub fn send_frame( + &mut self, mut frame: Option>>, + params: Option, +@@ -647,7 +646,6 @@ impl ContextInner { + /// `rec_buffer` and `lookahead_rec_buffer` on the `FrameInvariants`. This + /// function must be called after every new `FrameInvariants` is initially + /// computed. +- #[profiling::function] + fn compute_lookahead_motion_vectors(&mut self, output_frameno: u64) { + let frame_data = self.frame_data.get(&output_frameno).unwrap(); + +@@ -860,7 +858,6 @@ impl ContextInner { + }); + } + +- #[profiling::function] + pub fn compute_keyframe_placement( + lookahead_frames: &[&Arc>], keyframes_forced: &BTreeSet, + keyframe_detector: &mut SceneChangeDetector, +@@ -879,7 +876,6 @@ impl ContextInner { + *next_lookahead_frame += 1; + } + +- #[profiling::function] + pub fn compute_frame_invariants(&mut self) { + while self.set_frame_properties(self.next_lookahead_output_frameno).is_ok() + { +@@ -892,7 +888,6 @@ impl ContextInner { + } + } + +- #[profiling::function] + fn update_block_importances( + fi: &FrameInvariants, me_stats: &crate::me::FrameMEStats, + frame: &Frame, reference_frame: &Frame, bit_depth: usize, +@@ -1055,7 +1050,6 @@ impl ContextInner { + } + + /// Computes the block importances for the current output frame. +- #[profiling::function] + fn compute_block_importances(&mut self) { + // SEF don't need block importances. + if self.frame_data[&self.output_frameno] +@@ -1279,7 +1273,6 @@ impl ContextInner { + } + } + +- #[profiling::function] + pub fn encode_show_existing_packet( + &mut self, cur_output_frameno: u64, + ) -> Result, EncoderStatus> { +@@ -1315,7 +1308,6 @@ impl ContextInner { + self.finalize_packet(rec, source, input_frameno, frame_type, qp, enc_stats) + } + +- #[profiling::function] + pub fn encode_normal_packet( + &mut self, cur_output_frameno: u64, + ) -> Result, EncoderStatus> { +@@ -1478,7 +1470,6 @@ impl ContextInner { + } + } + +- #[profiling::function] + pub fn receive_packet(&mut self) -> Result, EncoderStatus> { + if self.done_processing() { + return Err(EncoderStatus::LimitReached); +@@ -1544,7 +1535,6 @@ impl ContextInner { + }) + } + +- #[profiling::function] + 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 177f6ad..51450fa 100644 +--- a/src/api/lookahead.rs ++++ b/src/api/lookahead.rs +@@ -26,7 +26,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; + +-#[profiling::function] + pub(crate) fn estimate_intra_costs( + temp_plane: &mut Plane, frame: &Frame, bit_depth: usize, + cpu_feature_level: CpuFeatureLevel, +@@ -122,7 +121,6 @@ pub(crate) fn estimate_intra_costs( + intra_costs.into_boxed_slice() + } + +-#[profiling::function] + pub(crate) fn estimate_importance_block_difference( + frame: Arc>, ref_frame: Arc>, + ) -> f64 { +@@ -178,7 +176,6 @@ pub(crate) fn estimate_importance_block_difference( + imp_block_costs as f64 / (w_in_imp_b * h_in_imp_b) as f64 + } + +-#[profiling::function] + pub(crate) fn estimate_inter_costs( + frame: Arc>, ref_frame: Arc>, bit_depth: usize, + mut config: EncoderConfig, sequence: Arc, buffer: RefMEStats, +@@ -267,7 +264,6 @@ pub(crate) fn estimate_inter_costs( + inter_costs as f64 / (w_in_imp_b * h_in_imp_b) as f64 + } + +-#[profiling::function] + 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 0fc106b..14a91f1 100644 +--- a/src/bin/common.rs ++++ b/src/bin/common.rs +@@ -23,11 +23,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", +@@ -278,10 +273,8 @@ fn get_long_version() -> &'static str { + rustflags = "(None)"; + } + format!( +- "{}\n{} {}\nCompiled CPU Features: {}\nRuntime Assembly Support: {}{}\nThreading: {}\nUnstable Features: {}\nCompiler Flags: {}", ++ "{}\nCompiled CPU Features: {}\nRuntime Assembly Support: {}{}\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 = "asm") { +diff --git a/src/bin/muxer/ivf.rs b/src/bin/muxer/ivf.rs +index 8b1333b..ecc4b8d 100644 +--- a/src/bin/muxer/ivf.rs ++++ b/src/bin/muxer/ivf.rs +@@ -36,7 +36,6 @@ impl Muxer for IvfMuxer { + ); + } + +- #[profiling::function] + 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 0246a14..c6e5152 100644 +--- a/src/bin/muxer/y4m.rs ++++ b/src/bin/muxer/y4m.rs +@@ -12,7 +12,6 @@ use rav1e::prelude::*; + use std::io::Write; + use std::slice; + +-#[profiling::function] + pub fn write_y4m_frame( + y4m_enc: &mut y4m::Encoder>, rec: &Frame, + y4m_details: VideoDetails, +diff --git a/src/bin/rav1e.rs b/src/bin/rav1e.rs +index da7c3ca..4fc67dd 100644 +--- a/src/bin/rav1e.rs ++++ b/src/bin/rav1e.rs +@@ -147,7 +147,6 @@ impl Source { + } + } + +- #[profiling::function] + fn read_frame( + &mut self, ctx: &mut Context, video_info: VideoDetails, + ) -> Result<(), CliError> { +@@ -183,7 +182,6 @@ impl Source { + + // Encode and write a frame. + // Returns frame information in a `Result`. +-#[profiling::function] + fn process_frame( + ctx: &mut Context, output_file: &mut dyn Muxer, source: &mut Source, + pass1file: Option<&mut File>, pass2file: Option<&mut File>, +diff --git a/src/bin/stats.rs b/src/bin/stats.rs +index 548556b..8e2c925 100644 +--- a/src/bin/stats.rs ++++ b/src/bin/stats.rs +@@ -29,7 +29,6 @@ pub struct FrameSummary { + pub enc_stats: EncoderStats, + } + +-#[profiling::function] + 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 72b7d6a..81fabfd 100644 +--- a/src/cdef.rs ++++ b/src/cdef.rs +@@ -321,7 +321,6 @@ fn adjust_strength(strength: i32, var: i32) -> i32 { + } + } + +-#[profiling::function] + pub fn cdef_analyze_superblock_range( + fi: &FrameInvariants, in_frame: &Frame, blocks: &TileBlocks<'_>, + sb_w: usize, sb_h: usize, +@@ -336,7 +335,6 @@ pub fn cdef_analyze_superblock_range( + ret + } + +-#[profiling::function] + pub fn cdef_analyze_superblock( + fi: &FrameInvariants, in_frame: &Frame, blocks: &TileBlocks<'_>, + sbo: TileSuperBlockOffset, +@@ -397,7 +395,6 @@ pub fn cdef_analyze_superblock( + /// # Panics + /// + /// - If called with invalid parameters +-#[profiling::function] + pub fn cdef_filter_superblock( + fi: &FrameInvariants, input: &Frame, output: &mut TileMut<'_, T>, + blocks: &TileBlocks<'_>, tile_sbo: TileSuperBlockOffset, cdef_index: u8, +@@ -593,7 +590,6 @@ pub fn cdef_filter_superblock( + // tile boundary), the filtering process ignores input pixels that + // don't exist. + +-#[profiling::function] + 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 f68bc9c..a2248ce 100644 +--- a/src/context/block_unit.rs ++++ b/src/context/block_unit.rs +@@ -1124,7 +1124,6 @@ impl<'a> ContextWriter<'a> { + } + } + +- #[profiling::function] + 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 7619877..132440c 100644 +--- a/src/deblock.rs ++++ b/src/deblock.rs +@@ -1290,7 +1290,6 @@ fn sse_h_edge( + } + + // Deblocks all edges, vertical and horizontal, in a single plane +-#[profiling::function] + pub fn deblock_plane( + deblock: &DeblockState, p: &mut PlaneRegionMut, pli: usize, + blocks: &TileBlocks, crop_w: usize, crop_h: usize, bd: usize, +@@ -1540,7 +1539,6 @@ fn sse_plane( + } + + // Deblocks all edges in all planes of a frame +-#[profiling::function] + pub fn deblock_filter_frame( + deblock: &DeblockState, tile: &mut TileMut, blocks: &TileBlocks, + crop_w: usize, crop_h: usize, bd: usize, planes: usize, +@@ -1616,7 +1614,6 @@ fn sse_optimize( + level + } + +-#[profiling::function] + 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 357ebf1..2c43575 100644 +--- a/src/encoder.rs ++++ b/src/encoder.rs +@@ -563,7 +563,6 @@ pub struct SegmentationState { + } + + impl SegmentationState { +- #[profiling::function] + 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( +@@ -741,7 +740,6 @@ impl CodedFrameData { + + // Assumes that we have already computed activity scales and distortion scales + // Returns -0.5 log2(mean(scale)) +- #[profiling::function] + pub fn compute_spatiotemporal_scores(&mut self) -> i64 { + let mut scores = self + .distortion_scales +@@ -767,7 +765,6 @@ impl CodedFrameData { + + // Assumes that we have already computed distortion_scales + // Returns -0.5 log2(mean(scale)) +- #[profiling::function] + 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() { +@@ -1664,7 +1661,6 @@ pub fn encode_tx_block( + /// # Panics + /// + /// - If the block size is invalid for subsampling +-#[profiling::function] + pub fn motion_compensate( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, luma_mode: PredictionMode, ref_frames: [RefType; 2], +@@ -1893,7 +1889,6 @@ pub fn save_block_motion( + } + } + +-#[profiling::function] + pub fn encode_block_pre_cdef( + seq: &Sequence, ts: &TileStateMut<'_, T>, cw: &mut ContextWriter, w: &mut W, + bsize: BlockSize, tile_bo: TileBlockOffset, skip: bool, +@@ -1934,7 +1929,6 @@ pub fn encode_block_pre_cdef( + /// + /// - If chroma and luma do not match for inter modes + /// - If an invalid motion vector is found +-#[profiling::function] + pub fn encode_block_post_cdef( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, w: &mut W, luma_mode: PredictionMode, +@@ -2564,7 +2558,6 @@ pub fn write_tx_tree( + (partition_has_coeff, tx_dist) + } + +-#[profiling::function] + 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, +@@ -2631,7 +2624,6 @@ pub fn encode_block_with_modes( + ); + } + +-#[profiling::function] + fn encode_partition_bottomup( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, w_pre_cdef: &mut W, w_post_cdef: &mut W, +@@ -3234,7 +3226,6 @@ fn get_initial_cdfcontext(fi: &FrameInvariants) -> CDFContext { + cdf.unwrap_or_else(|| CDFContext::new(fi.base_q_idx)) + } + +-#[profiling::function] + fn encode_tile_group( + fi: &FrameInvariants, fs: &mut FrameState, inter_cfg: &InterConfig, + ) -> Vec { +@@ -3373,7 +3364,6 @@ pub struct SBSQueueEntry { + pub w_post_cdef: WriterBase, + } + +-#[profiling::function] + fn check_lf_queue( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, w: &mut WriterBase, +@@ -3465,7 +3455,6 @@ fn check_lf_queue( + } + } + +-#[profiling::function] + fn encode_tile<'a, T: Pixel>( + fi: &FrameInvariants, ts: &'a mut TileStateMut<'_, T>, + fc: &'a mut CDFContext, blocks: &'a mut TileBlocksMut<'a>, +@@ -3690,7 +3679,6 @@ fn write_tile_group_header(tile_start_and_end_present_flag: bool) -> Vec { + /// # Panics + /// + /// - If the frame packets cannot be written +-#[profiling::function] + pub fn encode_show_existing_frame( + fi: &FrameInvariants, fs: &mut FrameState, inter_cfg: &InterConfig, + ) -> Vec { +@@ -3765,7 +3753,6 @@ fn get_initial_segmentation( + /// # Panics + /// + /// - If the frame packets cannot be written +-#[profiling::function] + pub fn encode_frame( + fi: &FrameInvariants, fs: &mut FrameState, inter_cfg: &InterConfig, + ) -> Vec { +diff --git a/src/lib.rs b/src/lib.rs +index 7575b1f..263d114 100644 +--- a/src/lib.rs ++++ b/src/lib.rs +@@ -118,11 +118,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")] { +@@ -316,24 +311,12 @@ pub mod version { + } + } + +- cfg_if::cfg_if! { +- if #[cfg(feature="git_version")] { +- fn git_version() -> &'static str { +- crate::built_info::GIT_VERSION.unwrap_or_default() +- } +- +- fn git_hash() -> &'static str { +- crate::built_info::GIT_COMMIT_HASH.unwrap_or_default() +- } +- } else { +- fn git_version() -> &'static str { +- "UNKNOWN" +- } ++ fn git_version() -> &'static str { ++ "UNKNOWN" ++ } + +- fn git_hash() -> &'static str { +- "UNKNOWN" +- } +- } ++ fn git_hash() -> &'static str { ++ "UNKNOWN" + } + /// Commit hash (short) + /// +diff --git a/src/lrf.rs b/src/lrf.rs +index fc663bf..5470f6b 100644 +--- a/src/lrf.rs ++++ b/src/lrf.rs +@@ -525,7 +525,6 @@ impl<'a, T: Pixel> Iterator for HorzPaddedIter<'a, T> { + impl ExactSizeIterator for HorzPaddedIter<'_, T> {} + impl FusedIterator for HorzPaddedIter<'_, T> {} + +-#[profiling::function] + pub fn setup_integral_image( + integral_image_buffer: &mut IntegralImageBuffer, + integral_image_stride: usize, crop_w: usize, crop_h: usize, stripe_w: usize, +@@ -625,7 +624,6 @@ pub fn setup_integral_image( + } + } + +-#[profiling::function] + pub fn sgrproj_stripe_filter( + set: u8, xqd: [i8; 2], fi: &FrameInvariants, + integral_image_buffer: &IntegralImageBuffer, integral_image_stride: usize, +@@ -842,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. +-#[profiling::function] + pub fn sgrproj_solve( + set: u8, fi: &FrameInvariants, + integral_image_buffer: &IntegralImageBuffer, input: &PlaneRegion<'_, T>, +@@ -1094,7 +1091,6 @@ pub fn sgrproj_solve( + } + } + +-#[profiling::function] + 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, +@@ -1483,7 +1479,6 @@ impl RestorationState { + } + } + +- #[profiling::function] + 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 4e7a461..b8ec7a5 100644 +--- a/src/me.rs ++++ b/src/me.rs +@@ -382,7 +382,6 @@ impl MotionEstimationSubsets { + } + } + +-#[profiling::function] + fn get_subset_predictors( + tile_bo: TileBlockOffset, tile_me_stats: &TileMEStats<'_>, + frame_ref_opt: Option>, ref_frame_id: usize, +@@ -689,7 +688,6 @@ fn refine_subsampled_motion_estimate( + } + } + +-#[profiling::function] + fn full_pixel_me( + fi: &FrameInvariants, ts: &TileStateMut<'_, T>, + org_region: &PlaneRegion, p_ref: &Plane, tile_bo: TileBlockOffset, +@@ -880,7 +878,6 @@ fn sub_pixel_me( + ); + } + +-#[profiling::function] + fn get_best_predictor( + fi: &FrameInvariants, po: PlaneOffset, org_region: &PlaneRegion, + p_ref: &Plane, predictors: &[MotionVector], bit_depth: usize, +@@ -951,7 +948,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. +-#[profiling::function] + fn fullpel_diamond_search( + fi: &FrameInvariants, po: PlaneOffset, org_region: &PlaneRegion, + p_ref: &Plane, current: &mut MotionSearchResult, bit_depth: usize, +@@ -1051,7 +1047,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. +-#[profiling::function] + fn hexagon_search( + fi: &FrameInvariants, po: PlaneOffset, org_region: &PlaneRegion, + p_ref: &Plane, current: &mut MotionSearchResult, bit_depth: usize, +@@ -1166,7 +1161,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. +-#[profiling::function] + fn uneven_multi_hex_search( + fi: &FrameInvariants, po: PlaneOffset, org_region: &PlaneRegion, + p_ref: &Plane, current: &mut MotionSearchResult, bit_depth: usize, +@@ -1307,7 +1301,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. +-#[profiling::function] + fn subpel_diamond_search( + fi: &FrameInvariants, po: PlaneOffset, org_region: &PlaneRegion, + _p_ref: &Plane, bit_depth: usize, pmv: [MotionVector; 2], lambda: u32, +@@ -1460,7 +1453,6 @@ fn compute_mv_rd( + MVCandidateRD { cost: 256 * sad as u64 + rate as u64 * lambda as u64, sad } + } + +-#[profiling::function] + 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 2116725..888e6d7 100644 +--- a/src/rate.rs ++++ b/src/rate.rs +@@ -719,7 +719,6 @@ impl RCState { + } + + // TODO: Separate quantizers for Cb and Cr. +- #[profiling::function] + pub(crate) fn select_qi( + &self, ctx: &ContextInner, output_frameno: u64, fti: usize, + maybe_prev_log_base_q: Option, log_isqrt_mean_scale: i64, +@@ -1068,7 +1067,6 @@ impl RCState { + (log_base_q, log_q) + } + +- #[profiling::function] + 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 b86ba7b..ed3764c 100644 +--- a/src/rdo.rs ++++ b/src/rdo.rs +@@ -810,7 +810,6 @@ const fn dmv_in_range(mv: MotionVector, ref_mv: MotionVector) -> bool { + } + + #[inline] +-#[profiling::function] + fn luma_chroma_mode_rdo( + luma_mode: PredictionMode, fi: &FrameInvariants, bsize: BlockSize, + tile_bo: TileBlockOffset, ts: &mut TileStateMut<'_, T>, +@@ -957,7 +956,6 @@ fn luma_chroma_mode_rdo( + /// + /// - If the best RD found is negative. + /// This should never happen and indicates a development error. +-#[profiling::function] + pub fn rdo_mode_decision( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, bsize: BlockSize, tile_bo: TileBlockOffset, +@@ -1115,7 +1113,6 @@ pub fn rdo_mode_decision( + } + } + +-#[profiling::function] + fn inter_frame_rdo_mode_decision( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, bsize: BlockSize, tile_bo: TileBlockOffset, +@@ -1388,7 +1385,6 @@ fn inter_frame_rdo_mode_decision( + best + } + +-#[profiling::function] + fn intra_frame_rdo_mode_decision( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, bsize: BlockSize, tile_bo: TileBlockOffset, +@@ -1587,7 +1583,6 @@ fn intra_frame_rdo_mode_decision( + /// # Panics + /// + /// - If the block size is invalid for subsampling. +-#[profiling::function] + pub fn rdo_cfl_alpha( + ts: &mut TileStateMut<'_, T>, tile_bo: TileBlockOffset, bsize: BlockSize, + luma_tx_size: TxSize, fi: &FrameInvariants, +@@ -1943,7 +1938,6 @@ fn rdo_partition_simple( + /// + /// - If the best RD found is negative. + /// This should never happen, and indicates a development error. +-#[profiling::function] + pub fn rdo_partition_decision( + fi: &FrameInvariants, ts: &mut TileStateMut<'_, T>, + cw: &mut ContextWriter, w_pre_cdef: &mut W, w_post_cdef: &mut W, +@@ -2021,7 +2015,6 @@ pub fn rdo_partition_decision( + } + } + +-#[profiling::function] + fn rdo_loop_plane_error( + base_sbo: TileSuperBlockOffset, offset_sbo: TileSuperBlockOffset, + sb_w: usize, sb_h: usize, fi: &FrameInvariants, ts: &TileStateMut<'_, T>, +@@ -2098,7 +2091,6 @@ fn rdo_loop_plane_error( + /// # Panics + /// + /// - If both CDEF and LRF are disabled. +-#[profiling::function] + 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 2ae8c18..b6220e6 100644 +--- a/src/scenechange/fast.rs ++++ b/src/scenechange/fast.rs +@@ -18,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. +- #[profiling::function] + pub(super) fn fast_scenecut( + &mut self, frame1: Arc>, frame2: Arc>, + ) -> ScenecutResult { +@@ -67,7 +66,6 @@ impl SceneChangeDetector { + } + + /// Calculates the average sum of absolute difference (SAD) per pixel between 2 planes +- #[profiling::function] + 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 b2c89af..2b576e5 100644 +--- a/src/scenechange/mod.rs ++++ b/src/scenechange/mod.rs +@@ -149,7 +149,6 @@ impl SceneChangeDetector { + /// to the second frame in `frame_set`. + /// + /// This will gracefully handle the first frame in the video as well. +- #[profiling::function] + 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 a733398..d97c119 100644 +--- a/src/segmentation.rs ++++ b/src/segmentation.rs +@@ -19,7 +19,6 @@ use crate::FrameState; + + pub const MAX_SEGMENTS: usize = 8; + +-#[profiling::function] + pub fn segmentation_optimize( + fi: &FrameInvariants, fs: &mut FrameState, + ) { +@@ -159,7 +158,6 @@ fn segmentation_optimize_inner( + fs.segmentation.update_threshold(fi.base_q_idx, fi.config.bit_depth); + } + +-#[profiling::function] + pub fn select_segment( + fi: &FrameInvariants, ts: &TileStateMut<'_, T>, tile_bo: TileBlockOffset, + bsize: BlockSize, skip: bool, +-- +2.43.0 + diff --git a/SOURCES/rav1e-0.7.1.crate b/SOURCES/rav1e-0.7.1.crate new file mode 100644 index 0000000..8760562 Binary files /dev/null and b/SOURCES/rav1e-0.7.1.crate differ diff --git a/SOURCES/rav1e-fix-metadata-auto.diff b/SOURCES/rav1e-fix-metadata-auto.diff new file mode 100644 index 0000000..d6d0bf3 --- /dev/null +++ b/SOURCES/rav1e-fix-metadata-auto.diff @@ -0,0 +1,28 @@ +--- rav1e-0.7.1/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ rav1e-0.7.1/Cargo.toml 2024-10-02T17:35:30.801010+00:00 +@@ -335,24 +335,7 @@ + unstable = [] + wasm = ["wasm-bindgen"] + +-[target."cfg(any(decode_test, decode_test_dav1d))".dependencies.system-deps] +-version = "6" +- +-[target."cfg(fuzzing)".dependencies.arbitrary] +-version = "1.3" +- +-[target."cfg(fuzzing)".dependencies.interpolate_name] +-version = "0.2.4" +- +-[target."cfg(fuzzing)".dependencies.libfuzzer-sys] +-version = "0.4.7" +- +-[target."cfg(fuzzing)".dependencies.rand] +-version = "0.8" +- +-[target."cfg(fuzzing)".dependencies.rand_chacha] +-version = "0.3" +- + [target."cfg(unix)".dependencies.signal-hook] + version = "0.3" + optional = true ++ diff --git a/SOURCES/rav1e-fix-metadata.diff b/SOURCES/rav1e-fix-metadata.diff new file mode 100644 index 0000000..bea8bce --- /dev/null +++ b/SOURCES/rav1e-fix-metadata.diff @@ -0,0 +1,171 @@ +--- rav1e-0.7.1/Cargo.toml 1970-01-01T00:00:01+00:00 ++++ rav1e-0.7.1/Cargo.toml 2024-10-02T17:37:50.466711+00:00 +@@ -30,8 +30,11 @@ + 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.capi.library] ++version_suffix_components = 1 + + [package.metadata.docs.rs] + no-default-features = true +@@ -72,16 +75,6 @@ + "unstable", + ] + +-[[bench]] +-name = "bench" +-path = "benches/bench.rs" +-harness = false +-required-features = ["bench"] +- +-[dependencies.aom-sys] +-version = "0.3.3" +-optional = true +- + [dependencies.arg_enum_proc_macro] + version = "0.3.4" + +@@ -102,10 +95,6 @@ + + [dependencies.bitstream-io] + version = "2" +- +-[dependencies.byteorder] +-version = "1.5.0" +-optional = true + + [dependencies.cfg-if] + version = "1.0" +@@ -133,23 +122,12 @@ + version = "0.8" + optional = true + +-[dependencies.dav1d-sys] +-version = "0.6.0" +-optional = true +-package = "libdav1d-sys" +- + [dependencies.fern] + version = "0.6" + optional = true + +-[dependencies.image] +-version = "0.24.7" +-features = ["png"] +-optional = true +-default-features = false +- + [dependencies.itertools] +-version = "0.12" ++version = "0.13" + + [dependencies.ivf] + version = "0.1" +@@ -183,9 +161,6 @@ + [dependencies.paste] + version = "1.0" + +-[dependencies.profiling] +-version = "1" +- + [dependencies.rayon] + version = "0.1" + default-features = false +@@ -215,25 +190,9 @@ + version = "0.8" + optional = true + +-[dependencies.tracing] +-version = "0.1.40" +-optional = true +- +-[dependencies.tracing-chrome] +-version = "0.7.1" +-optional = true +- +-[dependencies.tracing-subscriber] +-version = "0.3.18" +-optional = true +- + [dependencies.v_frame] + version = "0.3.7" + +-[dependencies.wasm-bindgen] +-version = "0.2.89" +-optional = true +- + [dependencies.y4m] + version = "0.8" + optional = true +@@ -241,9 +200,6 @@ + [dev-dependencies.assert_cmd] + version = "2.0" + +-[dev-dependencies.criterion] +-version = "0.5" +- + [dev-dependencies.interpolate_name] + version = "0.2.4" + +@@ -264,10 +220,6 @@ + + [dev-dependencies.semver] + version = "1.0" +- +-[build-dependencies.built] +-version = "0.7.1" +-features = [] + + [build-dependencies.cc] + version = "1.0" +@@ -284,7 +236,6 @@ + "nasm-rs", + "cc", + ] +-bench = [] + binaries = [ + "ivf", + "y4m", +@@ -299,22 +250,14 @@ + capi = ["scan_fmt"] + channel-api = ["crossbeam"] + check_asm = [] +-decode_test = ["aom-sys"] +-decode_test_dav1d = ["dav1d-sys"] + default = [ + "binaries", + "asm", + "threading", + "signal_support", +- "git_version", + ] + desync_finder = ["backtrace"] + dump_ivf = ["ivf"] +-dump_lookahead_data = [ +- "byteorder", +- "image", +-] +-git_version = ["built/git2"] + quick_test = [] + scenechange = [] + serialize = [ +@@ -326,14 +269,7 @@ + ] + signal_support = ["signal-hook"] + threading = ["rayon/threads"] +-tracing = [ +- "profiling/profile-with-tracing", +- "tracing-subscriber", +- "tracing-chrome", +- "dep:tracing", +-] + unstable = [] +-wasm = ["wasm-bindgen"] + + [target."cfg(unix)".dependencies.signal-hook] + version = "0.3" diff --git a/SPECS/rust-rav1e.spec b/SPECS/rust-rav1e.spec new file mode 100644 index 0000000..662dbbf --- /dev/null +++ b/SPECS/rust-rav1e.spec @@ -0,0 +1,643 @@ +## START: Set by rpmautospec +## (rpmautospec version 0.7.2) +## RPMAUTOSPEC: autorelease, autochangelog +%define autorelease(e:s:pb:n) %{?-p:0.}%{lua: + release_number = 4; + base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); + print(release_number + base_release_number - 1); +}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} +## END: Set by rpmautospec + +# Generated by rust2rpm 26 +%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 +# 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.7.1 +Release: %autorelease +Summary: Fastest and safest AV1 encoder + +# 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 dependencies and normalize metadata +Patch: rav1e-fix-metadata-auto.diff +# Manually created patch for downstream crate metadata changes +# * update license expression in crate metadata +# * bump itertools dependency from 0.12 to 0.13 +# * drop references to benchmarks +# * drop unused feature for dumping lookahead data and its dependencies +# * drop unused features for profiling and tracing and their dependencies +# * drop WASM-specific wasm-bindgen dependency and wasm feature +# * drop unused, benchmark-only criterion dev-dependency +# * drop unused aom-sys / libdav1d-sys dependencies (decode tests are not run) +# * compatibility fixes for cargo-c v0.9.26 and newer: +# https://github.com/lu-zero/cargo-c/pull/346 +# https://github.com/lu-zero/cargo-c/pull/352 +Patch: rav1e-fix-metadata.diff +Patch: 0001-remove-references-to-removed-built-and-profiling-cra.patch + +BuildRequires: cargo-rpm-macros >= 24 +BuildRequires: cargo-c + +%global _description %{expand: +The fastest and safest AV1 encoder.} + +%description %{_description} + +%package -n %{crate} +Summary: %{summary} +License: %{binary_license} + +%description -n %{crate} %{_description} + +%files -n %{crate} +%license LICENSE +%license PATENTS +%license LICENSE.dependencies +%doc README.md +%{_bindir}/rav1e +%{_bindir}/rav1e-ch + +%package -n %{crate}-libs +Summary: Library files for rav1e +License: %{binary_license} + +%description -n %{crate}-libs +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* + +%package -n %{crate}-devel +Summary: %{summary} +License: %{binary_license} +Requires: %{crate}-libs%{?_isa} = %{version}-%{release} + +%description -n %{crate}-devel %{_description} + +%files -n %{crate}-devel +%{_includedir}/rav1e/ +%{_libdir}/librav1e.so +%{_libdir}/pkgconfig/rav1e.pc + +%package devel +Summary: %{summary} +BuildArch: noarch + +%description devel %{_description} + +This package contains library source intended for building other packages which +use the "%{crate}" crate. + +%files devel +%license %{crate_instdir}/LICENSE +%license %{crate_instdir}/PATENTS +%doc %{crate_instdir}/README.md +%{crate_instdir}/ + +%package -n %{name}+default-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+default-devel %{_description} + +This package contains library source intended for building other packages which +use the "default" feature of the "%{crate}" crate. + +%files -n %{name}+default-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+asm-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+asm-devel %{_description} + +This package contains library source intended for building other packages which +use the "asm" feature of the "%{crate}" crate. + +%files -n %{name}+asm-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+av-metrics-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+av-metrics-devel %{_description} + +This package contains library source intended for building other packages which +use the "av-metrics" feature of the "%{crate}" crate. + +%files -n %{name}+av-metrics-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+backtrace-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+backtrace-devel %{_description} + +This package contains library source intended for building other packages which +use the "backtrace" feature of the "%{crate}" crate. + +%files -n %{name}+backtrace-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+binaries-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+binaries-devel %{_description} + +This package contains library source intended for building other packages which +use the "binaries" feature of the "%{crate}" crate. + +%files -n %{name}+binaries-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+capi-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+capi-devel %{_description} + +This package contains library source intended for building other packages which +use the "capi" feature of the "%{crate}" crate. + +%files -n %{name}+capi-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+cc-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+cc-devel %{_description} + +This package contains library source intended for building other packages which +use the "cc" feature of the "%{crate}" crate. + +%files -n %{name}+cc-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+channel-api-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+channel-api-devel %{_description} + +This package contains library source intended for building other packages which +use the "channel-api" feature of the "%{crate}" crate. + +%files -n %{name}+channel-api-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+check_asm-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+check_asm-devel %{_description} + +This package contains library source intended for building other packages which +use the "check_asm" feature of the "%{crate}" crate. + +%files -n %{name}+check_asm-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+clap-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+clap-devel %{_description} + +This package contains library source intended for building other packages which +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 + +%description -n %{name}+console-devel %{_description} + +This package contains library source intended for building other packages which +use the "console" feature of the "%{crate}" crate. + +%files -n %{name}+console-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+crossbeam-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+crossbeam-devel %{_description} + +This package contains library source intended for building other packages which +use the "crossbeam" feature of the "%{crate}" crate. + +%files -n %{name}+crossbeam-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+desync_finder-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+desync_finder-devel %{_description} + +This package contains library source intended for building other packages which +use the "desync_finder" feature of the "%{crate}" crate. + +%files -n %{name}+desync_finder-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+dump_ivf-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+dump_ivf-devel %{_description} + +This package contains library source intended for building other packages which +use the "dump_ivf" feature of the "%{crate}" crate. + +%files -n %{name}+dump_ivf-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+fern-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+fern-devel %{_description} + +This package contains library source intended for building other packages which +use the "fern" feature of the "%{crate}" crate. + +%files -n %{name}+fern-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+ivf-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+ivf-devel %{_description} + +This package contains library source intended for building other packages which +use the "ivf" feature of the "%{crate}" crate. + +%files -n %{name}+ivf-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+nasm-rs-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+nasm-rs-devel %{_description} + +This package contains library source intended for building other packages which +use the "nasm-rs" feature of the "%{crate}" crate. + +%files -n %{name}+nasm-rs-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+nom-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+nom-devel %{_description} + +This package contains library source intended for building other packages which +use the "nom" feature of the "%{crate}" crate. + +%files -n %{name}+nom-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+quick_test-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+quick_test-devel %{_description} + +This package contains library source intended for building other packages which +use the "quick_test" feature of the "%{crate}" crate. + +%files -n %{name}+quick_test-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+scan_fmt-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+scan_fmt-devel %{_description} + +This package contains library source intended for building other packages which +use the "scan_fmt" feature of the "%{crate}" crate. + +%files -n %{name}+scan_fmt-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+scenechange-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+scenechange-devel %{_description} + +This package contains library source intended for building other packages which +use the "scenechange" feature of the "%{crate}" crate. + +%files -n %{name}+scenechange-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+serde-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+serde-devel %{_description} + +This package contains library source intended for building other packages which +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 + +%description -n %{name}+serialize-devel %{_description} + +This package contains library source intended for building other packages which +use the "serialize" feature of the "%{crate}" crate. + +%files -n %{name}+serialize-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+signal-hook-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+signal-hook-devel %{_description} + +This package contains library source intended for building other packages which +use the "signal-hook" feature of the "%{crate}" crate. + +%files -n %{name}+signal-hook-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+signal_support-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+signal_support-devel %{_description} + +This package contains library source intended for building other packages which +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 + +%description -n %{name}+toml-devel %{_description} + +This package contains library source intended for building other packages which +use the "toml" feature of the "%{crate}" crate. + +%files -n %{name}+toml-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+unstable-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+unstable-devel %{_description} + +This package contains library source intended for building other packages which +use the "unstable" feature of the "%{crate}" crate. + +%files -n %{name}+unstable-devel +%ghost %{crate_instdir}/Cargo.toml + +%package -n %{name}+y4m-devel +Summary: %{summary} +BuildArch: noarch + +%description -n %{name}+y4m-devel %{_description} + +This package contains library source intended for building other packages which +use the "y4m" feature of the "%{crate}" crate. + +%files -n %{name}+y4m-devel +%ghost %{crate_instdir}/Cargo.toml + +%prep +%autosetup -n %{crate}-%{version} -p1 +%cargo_prep + +%generate_buildrequires +# cargo-c requires all optional dependencies to be available +%cargo_generate_buildrequires -a + +%build +%cargo_build -f channel-api,unstable +%cargo_cbuild -f channel-api,unstable +%{cargo_license_summary -f channel-api,unstable} +%{cargo_license -f channel-api,unstable} > LICENSE.dependencies + +%install +%cargo_install -f channel-api,unstable +%cargo_cinstall -f channel-api,unstable +rm -v %{buildroot}%{_libdir}/librav1e.a + +%if %{with check} +%check +%cargo_test -f channel-api,unstable +%endif + +%changelog +* Thu Dec 19 2024 Dmitriy Samoylik - 0.7.1-4 +- Rebuilt for MSVSphere 10 + +## START: Generated by rpmautospec +* Wed Oct 02 2024 Fabio Valentini - 0.7.1-4 +- Drop unused dump_lookahead_data feature and its dependencies + +* Sat Jul 20 2024 Fedora Release Engineering - 0.7.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu May 23 2024 Fabio Valentini - 0.7.1-2 +- Rebuild with Rust 1.78 to fix incomplete debuginfo and backtraces + +* Sat Feb 03 2024 Fabio Valentini - 0.7.1-1 +- update to version 0.7.1; Fixes RHBZ#2256283 + +* Fri Jan 26 2024 Fedora Release Engineering - 0.6.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Dec 05 2023 Fabio Valentini - 0.6.6-4 +- Compatibility fixes for cargo-c v0.9.26 and newer + +* Sat Sep 30 2023 Fabio Valentini - 0.6.6-3 +- Migrate to new cargo_cbuild and cargo_cinstall macros + +* Fri Jul 21 2023 Fedora Release Engineering - 0.6.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 27 2023 Fabio Valentini - 0.6.6-1 +- Update to version 0.6.6; Fixes RHBZ#2149770 + +* Fri Feb 17 2023 Fabio Valentini - 0.5.1-9 +- Ensure default Rust compiler flags apply to the shared library build + +* Fri Feb 17 2023 Fabio Valentini - 0.5.1-8 +- Disambiguate code which is ambiguous with Rust 1.67+ + +* Sat Jan 21 2023 Fedora Release Engineering - 0.5.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jan 13 2023 Fabio Valentini - 0.5.1-6 +- Backport upstream patch to fix UB / crash in test code + +* Mon Aug 08 2022 Fabio Valentini - 0.5.1-5 +- Remove unused dependencies; split off source-only Rust devel package + +* Sat Jul 23 2022 Fedora Release Engineering - 0.5.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jun 25 2022 Robert-André Mauchin - 0.5.1-3 +- Fix devel package name + +* Thu Jun 23 2022 Robert-André Mauchin - 0.5.1-2 +- Bump dav1d-sys dep + +* Sun Jun 19 2022 Robert-André Mauchin - 0.5.1-1 +- Update to 0.5.1 Close: rhbz#2032033 + +* Tue Feb 22 2022 Fabio Valentini - 0.5.0-6 +- Hack the workaround of the workaround + +* Tue Feb 22 2022 Fabio Valentini - 0.5.0-5 +- Work around codegen issues when compiling doctests with LLVM 13 + +* Mon Feb 21 2022 Fabio Valentini - 0.5.0-4 +- Bump system-deps from 3.1.2 to 6 + +* Tue Feb 15 2022 Zbigniew Jędrzejewski-Szmek - 0.5.0-3 +- Rebuild with package notes + +* Fri Jan 21 2022 Fedora Release Engineering - 0.5.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Sun Nov 21 2021 Robert-André Mauchin - 0.5.0-1 +- Update to 0.5.0 Close: rhbz#1991588 + +* Sat Aug 07 2021 Fabio Valentini - 0.4.1-4 +- Rebuild with crossbeam-deque 0.8.1 / 0.7.4 for CVE-2021-32810 + +* Fri Jul 23 2021 Fedora Release Engineering - 0.4.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sat Jul 10 12:15:47 CEST 2021 Robert-André Mauchin - 0.4.1-2 +- Add patch to fix https://github.com/xiph/rav1e/issues/2662 + +* Wed Apr 7 17:07:05 CEST 2021 Robert-André Mauchin - 0.4.1-1 +- Update to 0.4.1 +- Close: rhbz#1915864 + +* Mon Mar 29 16:18:27 CEST 2021 Robert-André Mauchin - 0.4.0-1 +- Update to 0.4.0 +- Close: rhbz#1915864 + +* Wed Jan 27 2021 Fedora Release Engineering - 0.4.0~alpha-0.3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Dec 28 13:32:03 CET 2020 Igor Raits - 0.4.0~alpha-0.2 +- Rebuild + +* Wed Dec 09 15:17:53 CET 2020 Robert-André Mauchin - 0.4.0~alpha-0.1 +- Update to 0.4.0~alpha + +* Sun Dec 06 04:37:40 CET 2020 Robert-André Mauchin - 0.3.4-3 +- Rebuild with new cargo-c to fix pkgconfig includedir +- Fix: rhbz#1902211 + +* Tue Oct 20 2020 Fabio Valentini - 0.3.4-2 +- Temporarily skip some broken tests on aarch64. + +* Tue Oct 20 2020 Fabio Valentini - 0.3.4-1 +- Update to version 0.3.4. + +* Wed Aug 26 2020 Josh Stone - 0.3.3-3 +- Bump paste to 1.0 + +* Wed Jul 29 2020 Fedora Release Engineering - 0.3.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Thu Jun 11 2020 Josh Stone - 0.3.3-1 +- Update to 0.3.3 + +* Mon Mar 09 17:45:25 CET 2020 Robert-André Mauchin - 0.3.1-2 +- Fix pkgconfig prefix path + +* Thu Feb 20 21:15:47 CET 2020 Igor Raits - 0.3.1-1 +- Update to 0.3.1 + +* Tue Feb 11 01:28:07 CET 2020 Robert-André Mauchin - 0.3.0-1 +- Initial package + +## END: Generated by rpmautospec