Blob Blame History Raw
From 418a8c70fef6c26637550ee5c0bab1948b528b96 Mon Sep 17 00:00:00 2001
From: Fabio Valentini <decathorpe@gmail.com>
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<T: Pixel>(luma_plane: &Plane<T>) -> 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<T: Pixel> ContextInner<T> {
     }
   }
 
-  #[profiling::function]
   pub fn send_frame(
     &mut self, mut frame: Option<Arc<Frame<T>>>,
     params: Option<FrameParameters>,
@@ -647,7 +646,6 @@ impl<T: Pixel> ContextInner<T> {
   /// `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<T: Pixel> ContextInner<T> {
       });
   }
 
-  #[profiling::function]
   pub fn compute_keyframe_placement(
     lookahead_frames: &[&Arc<Frame<T>>], keyframes_forced: &BTreeSet<u64>,
     keyframe_detector: &mut SceneChangeDetector<T>,
@@ -879,7 +876,6 @@ impl<T: Pixel> ContextInner<T> {
     *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<T: Pixel> ContextInner<T> {
     }
   }
 
-  #[profiling::function]
   fn update_block_importances(
     fi: &FrameInvariants<T>, me_stats: &crate::me::FrameMEStats,
     frame: &Frame<T>, reference_frame: &Frame<T>, bit_depth: usize,
@@ -1055,7 +1050,6 @@ impl<T: Pixel> ContextInner<T> {
   }
 
   /// 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<T: Pixel> ContextInner<T> {
     }
   }
 
-  #[profiling::function]
   pub fn encode_show_existing_packet(
     &mut self, cur_output_frameno: u64,
   ) -> Result<Packet<T>, EncoderStatus> {
@@ -1315,7 +1308,6 @@ impl<T: Pixel> ContextInner<T> {
     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<Packet<T>, EncoderStatus> {
@@ -1478,7 +1470,6 @@ impl<T: Pixel> ContextInner<T> {
     }
   }
 
-  #[profiling::function]
   pub fn receive_packet(&mut self) -> Result<Packet<T>, EncoderStatus> {
     if self.done_processing() {
       return Err(EncoderStatus::LimitReached);
@@ -1544,7 +1535,6 @@ impl<T: Pixel> ContextInner<T> {
     })
   }
 
-  #[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<T: Pixel>(
   temp_plane: &mut Plane<T>, frame: &Frame<T>, bit_depth: usize,
   cpu_feature_level: CpuFeatureLevel,
@@ -122,7 +121,6 @@ pub(crate) fn estimate_intra_costs<T: Pixel>(
   intra_costs.into_boxed_slice()
 }
 
-#[profiling::function]
 pub(crate) fn estimate_importance_block_difference<T: Pixel>(
   frame: Arc<Frame<T>>, ref_frame: Arc<Frame<T>>,
 ) -> f64 {
@@ -178,7 +176,6 @@ pub(crate) fn estimate_importance_block_difference<T: Pixel>(
   imp_block_costs as f64 / (w_in_imp_b * h_in_imp_b) as f64
 }
 
-#[profiling::function]
 pub(crate) fn estimate_inter_costs<T: Pixel>(
   frame: Arc<Frame<T>>, ref_frame: Arc<Frame<T>>, bit_depth: usize,
   mut config: EncoderConfig, sequence: Arc<Sequence>, buffer: RefMEStats,
@@ -267,7 +264,6 @@ pub(crate) fn estimate_inter_costs<T: Pixel>(
   inter_costs as f64 / (w_in_imp_b * h_in_imp_b) as f64
 }
 
-#[profiling::function]
 pub(crate) fn compute_motion_vectors<T: Pixel>(
   fi: &mut FrameInvariants<T>, fs: &mut FrameState<T>, 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<T: Pixel>(
   y4m_enc: &mut y4m::Encoder<Box<dyn Write + Send>>, rec: &Frame<T>,
   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<D: Decoder> Source<D> {
     }
   }
 
-  #[profiling::function]
   fn read_frame<T: Pixel>(
     &mut self, ctx: &mut Context<T>, video_info: VideoDetails,
   ) -> Result<(), CliError> {
@@ -183,7 +182,6 @@ impl<D: Decoder> Source<D> {
 
 // Encode and write a frame.
 // Returns frame information in a `Result`.
-#[profiling::function]
 fn process_frame<T: Pixel, D: Decoder>(
   ctx: &mut Context<T>, output_file: &mut dyn Muxer, source: &mut Source<D>,
   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<T: Pixel>(
   packets: Packet<T>, 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<T: Pixel>(
   fi: &FrameInvariants<T>, in_frame: &Frame<T>, blocks: &TileBlocks<'_>,
   sb_w: usize, sb_h: usize,
@@ -336,7 +335,6 @@ pub fn cdef_analyze_superblock_range<T: Pixel>(
   ret
 }
 
-#[profiling::function]
 pub fn cdef_analyze_superblock<T: Pixel>(
   fi: &FrameInvariants<T>, in_frame: &Frame<T>, blocks: &TileBlocks<'_>,
   sbo: TileSuperBlockOffset,
@@ -397,7 +395,6 @@ pub fn cdef_analyze_superblock<T: Pixel>(
 /// # Panics
 ///
 /// - If called with invalid parameters
-#[profiling::function]
 pub fn cdef_filter_superblock<T: Pixel>(
   fi: &FrameInvariants<T>, input: &Frame<T>, output: &mut TileMut<'_, T>,
   blocks: &TileBlocks<'_>, tile_sbo: TileSuperBlockOffset, cdef_index: u8,
@@ -593,7 +590,6 @@ pub fn cdef_filter_superblock<T: Pixel>(
 //   tile boundary), the filtering process ignores input pixels that
 //   don't exist.
 
-#[profiling::function]
 pub fn cdef_filter_tile<T: Pixel>(
   fi: &FrameInvariants<T>, input: &Frame<T>, 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<T: Pixel>(
     &self, bo: TileBlockOffset, ref_frames: [RefType; 2],
     mv_stack: &mut ArrayVec<CandidateMV, 9>, 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<T: Pixel>(
 }
 
 // Deblocks all edges, vertical and horizontal, in a single plane
-#[profiling::function]
 pub fn deblock_plane<T: Pixel>(
   deblock: &DeblockState, p: &mut PlaneRegionMut<T>, pli: usize,
   blocks: &TileBlocks, crop_w: usize, crop_h: usize, bd: usize,
@@ -1540,7 +1539,6 @@ fn sse_plane<T: Pixel>(
 }
 
 // Deblocks all edges in all planes of a frame
-#[profiling::function]
 pub fn deblock_filter_frame<T: Pixel>(
   deblock: &DeblockState, tile: &mut TileMut<T>, blocks: &TileBlocks,
   crop_w: usize, crop_h: usize, bd: usize, planes: usize,
@@ -1616,7 +1614,6 @@ fn sse_optimize<T: Pixel>(
   level
 }
 
-#[profiling::function]
 pub fn deblock_filter_optimize<T: Pixel, U: Pixel>(
   fi: &FrameInvariants<T>, rec: &Tile<U>, input: &Tile<U>,
   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<T: Pixel> CodedFrameData<T> {
 
   // 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<T: Pixel> CodedFrameData<T> {
 
   // 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<T: Pixel, W: Writer>(
 /// # Panics
 ///
 /// - If the block size is invalid for subsampling
-#[profiling::function]
 pub fn motion_compensate<T: Pixel>(
   fi: &FrameInvariants<T>, ts: &mut TileStateMut<'_, T>,
   cw: &mut ContextWriter, luma_mode: PredictionMode, ref_frames: [RefType; 2],
@@ -1893,7 +1889,6 @@ pub fn save_block_motion<T: Pixel>(
   }
 }
 
-#[profiling::function]
 pub fn encode_block_pre_cdef<T: Pixel, W: Writer>(
   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<T: Pixel, W: Writer>(
 ///
 /// - 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<T: Pixel, W: Writer>(
   fi: &FrameInvariants<T>, ts: &mut TileStateMut<'_, T>,
   cw: &mut ContextWriter, w: &mut W, luma_mode: PredictionMode,
@@ -2564,7 +2558,6 @@ pub fn write_tx_tree<T: Pixel, W: Writer>(
   (partition_has_coeff, tx_dist)
 }
 
-#[profiling::function]
 pub fn encode_block_with_modes<T: Pixel, W: Writer>(
   fi: &FrameInvariants<T>, 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<T: Pixel, W: Writer>(
   );
 }
 
-#[profiling::function]
 fn encode_partition_bottomup<T: Pixel, W: Writer>(
   fi: &FrameInvariants<T>, 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<T: Pixel>(fi: &FrameInvariants<T>) -> CDFContext {
   cdf.unwrap_or_else(|| CDFContext::new(fi.base_q_idx))
 }
 
-#[profiling::function]
 fn encode_tile_group<T: Pixel>(
   fi: &FrameInvariants<T>, fs: &mut FrameState<T>, inter_cfg: &InterConfig,
 ) -> Vec<u8> {
@@ -3373,7 +3364,6 @@ pub struct SBSQueueEntry {
   pub w_post_cdef: WriterBase<WriterRecorder>,
 }
 
-#[profiling::function]
 fn check_lf_queue<T: Pixel>(
   fi: &FrameInvariants<T>, ts: &mut TileStateMut<'_, T>,
   cw: &mut ContextWriter, w: &mut WriterBase<WriterEncoder>,
@@ -3465,7 +3455,6 @@ fn check_lf_queue<T: Pixel>(
   }
 }
 
-#[profiling::function]
 fn encode_tile<'a, T: Pixel>(
   fi: &FrameInvariants<T>, 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<u8> {
 /// # Panics
 ///
 /// - If the frame packets cannot be written
-#[profiling::function]
 pub fn encode_show_existing_frame<T: Pixel>(
   fi: &FrameInvariants<T>, fs: &mut FrameState<T>, inter_cfg: &InterConfig,
 ) -> Vec<u8> {
@@ -3765,7 +3753,6 @@ fn get_initial_segmentation<T: Pixel>(
 /// # Panics
 ///
 /// - If the frame packets cannot be written
-#[profiling::function]
 pub fn encode_frame<T: Pixel>(
   fi: &FrameInvariants<T>, fs: &mut FrameState<T>, inter_cfg: &InterConfig,
 ) -> Vec<u8> {
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<T: Pixel> ExactSizeIterator for HorzPaddedIter<'_, T> {}
 impl<T: Pixel> FusedIterator for HorzPaddedIter<'_, T> {}
 
-#[profiling::function]
 pub fn setup_integral_image<T: Pixel>(
   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<T: Pixel>(
   }
 }
 
-#[profiling::function]
 pub fn sgrproj_stripe_filter<T: Pixel, U: Pixel>(
   set: u8, xqd: [i8; 2], fi: &FrameInvariants<T>,
   integral_image_buffer: &IntegralImageBuffer, integral_image_stride: usize,
@@ -842,7 +840,6 @@ pub fn sgrproj_stripe_filter<T: Pixel, U: Pixel>(
 
 // Input params follow the same rules as sgrproj_stripe_filter.
 // Inputs are relative to the colocated slice views.
-#[profiling::function]
 pub fn sgrproj_solve<T: Pixel>(
   set: u8, fi: &FrameInvariants<T>,
   integral_image_buffer: &IntegralImageBuffer, input: &PlaneRegion<'_, T>,
@@ -1094,7 +1091,6 @@ pub fn sgrproj_solve<T: Pixel>(
   }
 }
 
-#[profiling::function]
 fn wiener_stripe_filter<T: Pixel>(
   coeffs: [[i8; 3]; 2], fi: &FrameInvariants<T>, 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<T: Pixel>(
     &mut self, out: &mut Frame<T>, pre_cdef: &Frame<T>,
     fi: &FrameInvariants<T>,
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<ReadGuardMEStats<'_>>, ref_frame_id: usize,
@@ -689,7 +688,6 @@ fn refine_subsampled_motion_estimate<T: Pixel>(
   }
 }
 
-#[profiling::function]
 fn full_pixel_me<T: Pixel>(
   fi: &FrameInvariants<T>, ts: &TileStateMut<'_, T>,
   org_region: &PlaneRegion<T>, p_ref: &Plane<T>, tile_bo: TileBlockOffset,
@@ -880,7 +878,6 @@ fn sub_pixel_me<T: Pixel>(
   );
 }
 
-#[profiling::function]
 fn get_best_predictor<T: Pixel>(
   fi: &FrameInvariants<T>, po: PlaneOffset, org_region: &PlaneRegion<T>,
   p_ref: &Plane<T>, 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<T: Pixel>(
   fi: &FrameInvariants<T>, po: PlaneOffset, org_region: &PlaneRegion<T>,
   p_ref: &Plane<T>, 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<T: Pixel>(
   fi: &FrameInvariants<T>, po: PlaneOffset, org_region: &PlaneRegion<T>,
   p_ref: &Plane<T>, 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<T: Pixel>(
   fi: &FrameInvariants<T>, po: PlaneOffset, org_region: &PlaneRegion<T>,
   p_ref: &Plane<T>, current: &mut MotionSearchResult, bit_depth: usize,
@@ -1307,7 +1301,6 @@ fn uneven_multi_hex_search<T: Pixel>(
 /// 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<T: Pixel>(
   fi: &FrameInvariants<T>, po: PlaneOffset, org_region: &PlaneRegion<T>,
   _p_ref: &Plane<T>, bit_depth: usize, pmv: [MotionVector; 2], lambda: u32,
@@ -1460,7 +1453,6 @@ fn compute_mv_rd<T: Pixel>(
   MVCandidateRD { cost: 256 * sad as u64 + rate as u64 * lambda as u64, sad }
 }
 
-#[profiling::function]
 fn full_search<T: Pixel>(
   fi: &FrameInvariants<T>, x_lo: isize, x_hi: isize, y_lo: isize, y_hi: isize,
   w: usize, h: usize, org_region: &PlaneRegion<T>, p_ref: &Plane<T>,
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<T: Pixel>(
     &self, ctx: &ContextInner<T>, output_frameno: u64, fti: usize,
     maybe_prev_log_base_q: Option<i64>, 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<T: Pixel>(
   luma_mode: PredictionMode, fi: &FrameInvariants<T>, bsize: BlockSize,
   tile_bo: TileBlockOffset, ts: &mut TileStateMut<'_, T>,
@@ -957,7 +956,6 @@ fn luma_chroma_mode_rdo<T: Pixel>(
 ///
 /// - If the best RD found is negative.
 ///   This should never happen and indicates a development error.
-#[profiling::function]
 pub fn rdo_mode_decision<T: Pixel>(
   fi: &FrameInvariants<T>, ts: &mut TileStateMut<'_, T>,
   cw: &mut ContextWriter, bsize: BlockSize, tile_bo: TileBlockOffset,
@@ -1115,7 +1113,6 @@ pub fn rdo_mode_decision<T: Pixel>(
   }
 }
 
-#[profiling::function]
 fn inter_frame_rdo_mode_decision<T: Pixel>(
   fi: &FrameInvariants<T>, ts: &mut TileStateMut<'_, T>,
   cw: &mut ContextWriter, bsize: BlockSize, tile_bo: TileBlockOffset,
@@ -1388,7 +1385,6 @@ fn inter_frame_rdo_mode_decision<T: Pixel>(
   best
 }
 
-#[profiling::function]
 fn intra_frame_rdo_mode_decision<T: Pixel>(
   fi: &FrameInvariants<T>, ts: &mut TileStateMut<'_, T>,
   cw: &mut ContextWriter, bsize: BlockSize, tile_bo: TileBlockOffset,
@@ -1587,7 +1583,6 @@ fn intra_frame_rdo_mode_decision<T: Pixel>(
 /// # Panics
 ///
 /// - If the block size is invalid for subsampling.
-#[profiling::function]
 pub fn rdo_cfl_alpha<T: Pixel>(
   ts: &mut TileStateMut<'_, T>, tile_bo: TileBlockOffset, bsize: BlockSize,
   luma_tx_size: TxSize, fi: &FrameInvariants<T>,
@@ -1943,7 +1938,6 @@ fn rdo_partition_simple<T: Pixel, W: Writer>(
 ///
 /// - If the best RD found is negative.
 ///   This should never happen, and indicates a development error.
-#[profiling::function]
 pub fn rdo_partition_decision<T: Pixel, W: Writer>(
   fi: &FrameInvariants<T>, 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<T: Pixel, W: Writer>(
   }
 }
 
-#[profiling::function]
 fn rdo_loop_plane_error<T: Pixel>(
   base_sbo: TileSuperBlockOffset, offset_sbo: TileSuperBlockOffset,
   sb_w: usize, sb_h: usize, fi: &FrameInvariants<T>, ts: &TileStateMut<'_, T>,
@@ -2098,7 +2091,6 @@ fn rdo_loop_plane_error<T: Pixel>(
 /// # Panics
 ///
 /// - If both CDEF and LRF are disabled.
-#[profiling::function]
 pub fn rdo_loop_decision<T: Pixel, W: Writer>(
   base_sbo: TileSuperBlockOffset, fi: &FrameInvariants<T>,
   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<T: Pixel> SceneChangeDetector<T> {
   /// 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<Frame<T>>, frame2: Arc<Frame<T>>,
   ) -> ScenecutResult {
@@ -67,7 +66,6 @@ impl<T: Pixel> SceneChangeDetector<T> {
   }
 
   /// Calculates the average sum of absolute difference (SAD) per pixel between 2 planes
-  #[profiling::function]
   fn delta_in_planes(&self, plane1: &Plane<T>, plane2: &Plane<T>) -> 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<T: Pixel> SceneChangeDetector<T> {
   /// 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<Frame<T>>], 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<T: Pixel>(
   fi: &FrameInvariants<T>, fs: &mut FrameState<T>,
 ) {
@@ -159,7 +158,6 @@ fn segmentation_optimize_inner<T: Pixel>(
   fs.segmentation.update_threshold(fi.base_q_idx, fi.config.bit_depth);
 }
 
-#[profiling::function]
 pub fn select_segment<T: Pixel>(
   fi: &FrameInvariants<T>, ts: &TileStateMut<'_, T>, tile_bo: TileBlockOffset,
   bsize: BlockSize, skip: bool,
-- 
2.43.0