base: Lower debug logging on allocation query errors

This happens often and is not fatal

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1678>
This commit is contained in:
Thibault Saunier 2025-03-12 09:33:13 -03:00 committed by Backport Bot
parent 256e4319e9
commit cba5e1d0c7
3 changed files with 25 additions and 4 deletions

View file

@ -577,7 +577,7 @@ unsafe extern "C" fn base_sink_propose_allocation<T: BaseSinkImpl>(
match imp.propose_allocation(query) {
Ok(()) => true,
Err(err) => {
err.log_with_imp(imp);
err.log_with_imp_and_level(imp, gst::DebugLevel::Info);
false
}
}

View file

@ -1173,7 +1173,7 @@ unsafe extern "C" fn base_transform_propose_allocation<T: BaseTransformImpl>(
match imp.propose_allocation(decide_query, query) {
Ok(()) => true,
Err(err) => {
err.log_with_imp(imp);
err.log_with_imp_and_level(imp, gst::DebugLevel::Info);
false
}
}

View file

@ -111,10 +111,15 @@ impl LoggableError {
#[inline(never)]
fn log_with_object_internal(&self, obj: &glib::Object) {
self.log_with_object_internal_and_level(obj, crate::DebugLevel::Error);
}
#[inline(never)]
fn log_with_object_internal_and_level(&self, obj: &glib::Object, level: crate::DebugLevel) {
self.bool_error.filename.run_with_gstr(|filename| {
self.category.log(
Some(obj),
crate::DebugLevel::Error,
level,
filename,
self.bool_error.function,
self.bool_error.line,
@ -126,7 +131,23 @@ impl LoggableError {
pub fn log_with_imp(&self, imp: &impl glib::subclass::types::ObjectSubclass) {
use glib::subclass::prelude::*;
self.log_with_object_internal(unsafe { imp.obj().unsafe_cast_ref::<glib::Object>() });
self.log_with_object_internal_and_level(
unsafe { imp.obj().unsafe_cast_ref::<glib::Object>() },
crate::DebugLevel::Error,
);
}
pub fn log_with_imp_and_level(
&self,
imp: &impl glib::subclass::types::ObjectSubclass,
level: crate::DebugLevel,
) {
use glib::subclass::prelude::*;
self.log_with_object_internal_and_level(
unsafe { imp.obj().unsafe_cast_ref::<glib::Object>() },
level,
);
}
pub fn category(&self) -> crate::DebugCategory {