mirror of
https://github.com/niri-wm/niri.git
synced 2026-06-23 02:05:33 +07:00
screencasting: Use spans to reduce logging boilerplate
This commit is contained in:
@@ -391,8 +391,7 @@ impl State {
|
|||||||
signal_ctx,
|
signal_ctx,
|
||||||
} => {
|
} => {
|
||||||
let _span = tracy_client::span!("StartCast");
|
let _span = tracy_client::span!("StartCast");
|
||||||
|
let _span = debug_span!("StartCast", session_id, stream_id).entered();
|
||||||
debug!(session_id, stream_id, "StartCast");
|
|
||||||
|
|
||||||
let (target, size, refresh, alpha) = match target {
|
let (target, size, refresh, alpha) = match target {
|
||||||
StreamTargetId::Output { name } => {
|
StreamTargetId::Output { name } => {
|
||||||
@@ -410,10 +409,7 @@ impl State {
|
|||||||
StreamTargetId::Window { id }
|
StreamTargetId::Window { id }
|
||||||
if id == self.niri.casting.dynamic_cast_id_for_portal.get() =>
|
if id == self.niri.casting.dynamic_cast_id_for_portal.get() =>
|
||||||
{
|
{
|
||||||
debug!(
|
debug!("delaying dynamic cast until target is set");
|
||||||
session_id,
|
|
||||||
stream_id, "delaying dynamic cast until target is set"
|
|
||||||
);
|
|
||||||
self.niri.casting.pending_dynamic_casts.push(PendingCast {
|
self.niri.casting.pending_dynamic_casts.push(PendingCast {
|
||||||
session_id,
|
session_id,
|
||||||
stream_id,
|
stream_id,
|
||||||
@@ -700,8 +696,7 @@ impl Niri {
|
|||||||
|
|
||||||
fn stop_cast(&mut self, session_id: usize) {
|
fn stop_cast(&mut self, session_id: usize) {
|
||||||
let _span = tracy_client::span!("Niri::stop_cast");
|
let _span = tracy_client::span!("Niri::stop_cast");
|
||||||
|
let _span = debug_span!("stop_cast", session_id).entered();
|
||||||
debug!(session_id, "StopCast");
|
|
||||||
|
|
||||||
self.casting
|
self.casting
|
||||||
.pending_dynamic_casts
|
.pending_dynamic_casts
|
||||||
|
|||||||
@@ -328,7 +328,8 @@ impl PipeWire {
|
|||||||
let inner = inner.clone();
|
let inner = inner.clone();
|
||||||
let stop_cast = stop_cast.clone();
|
let stop_cast = stop_cast.clone();
|
||||||
move |stream, (), old, new| {
|
move |stream, (), old, new| {
|
||||||
debug!(stream_id, "pw stream: state changed: {old:?} -> {new:?}");
|
let _span = debug_span!("state_changed", stream_id).entered();
|
||||||
|
debug!("{old:?} -> {new:?}");
|
||||||
let mut inner = inner.borrow_mut();
|
let mut inner = inner.borrow_mut();
|
||||||
|
|
||||||
match new {
|
match new {
|
||||||
@@ -336,7 +337,7 @@ impl PipeWire {
|
|||||||
if inner.node_id.is_none() {
|
if inner.node_id.is_none() {
|
||||||
let id = stream.node_id();
|
let id = stream.node_id();
|
||||||
inner.node_id = Some(id);
|
inner.node_id = Some(id);
|
||||||
debug!(stream_id, "pw stream: sending signal with {id}");
|
debug!("sending signal with {id}");
|
||||||
|
|
||||||
let _span = tracy_client::span!("sending PipeWireStreamAdded");
|
let _span = tracy_client::span!("sending PipeWireStreamAdded");
|
||||||
async_io::block_on(async {
|
async_io::block_on(async {
|
||||||
@@ -347,10 +348,7 @@ impl PipeWire {
|
|||||||
.await;
|
.await;
|
||||||
|
|
||||||
if let Err(err) = res {
|
if let Err(err) = res {
|
||||||
warn!(
|
warn!("error sending PipeWireStreamAdded: {err:?}");
|
||||||
stream_id,
|
|
||||||
"error sending PipeWireStreamAdded: {err:?}"
|
|
||||||
);
|
|
||||||
stop_cast();
|
stop_cast();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -380,7 +378,7 @@ impl PipeWire {
|
|||||||
let formats = formats.clone();
|
let formats = formats.clone();
|
||||||
move |stream, (), id, pod| {
|
move |stream, (), id, pod| {
|
||||||
let id = ParamType::from_raw(id);
|
let id = ParamType::from_raw(id);
|
||||||
trace!(stream_id, ?id, "pw stream: param_changed");
|
trace!(stream_id, ?id, "param_changed");
|
||||||
let mut inner = inner.borrow_mut();
|
let mut inner = inner.borrow_mut();
|
||||||
let inner = &mut *inner;
|
let inner = &mut *inner;
|
||||||
|
|
||||||
@@ -388,12 +386,14 @@ impl PipeWire {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let _span = debug_span!("param_changed", stream_id).entered();
|
||||||
|
|
||||||
let Some(pod) = pod else { return };
|
let Some(pod) = pod else { return };
|
||||||
|
|
||||||
let (m_type, m_subtype) = match parse_format(pod) {
|
let (m_type, m_subtype) = match parse_format(pod) {
|
||||||
Ok(x) => x,
|
Ok(x) => x,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
warn!(stream_id, "pw stream: error parsing format: {err:?}");
|
warn!("error parsing format: {err:?}");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -404,19 +404,19 @@ impl PipeWire {
|
|||||||
|
|
||||||
let mut format = VideoInfoRaw::new();
|
let mut format = VideoInfoRaw::new();
|
||||||
format.parse(pod).unwrap();
|
format.parse(pod).unwrap();
|
||||||
debug!(stream_id, "pw stream: got format = {format:?}");
|
debug!("got format = {format:?}");
|
||||||
|
|
||||||
let format_size = Size::from((format.size().width, format.size().height));
|
let format_size = Size::from((format.size().width, format.size().height));
|
||||||
|
|
||||||
let state = &mut inner.state;
|
let state = &mut inner.state;
|
||||||
if format_size != state.expected_format_size() {
|
if format_size != state.expected_format_size() {
|
||||||
if !matches!(&*state, CastState::ResizePending { .. }) {
|
if !matches!(&*state, CastState::ResizePending { .. }) {
|
||||||
warn!(stream_id, "pw stream: wrong size, but we're not resizing");
|
warn!("wrong size, but we're not resizing");
|
||||||
stop_cast();
|
stop_cast();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
debug!(stream_id, "pw stream: wrong size, waiting");
|
debug!("wrong size, waiting");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -437,25 +437,25 @@ impl PipeWire {
|
|||||||
let Some(prop_modifier) =
|
let Some(prop_modifier) =
|
||||||
object.find_prop(spa::utils::Id(FormatProperties::VideoModifier.0))
|
object.find_prop(spa::utils::Id(FormatProperties::VideoModifier.0))
|
||||||
else {
|
else {
|
||||||
warn!(stream_id, "pw stream: modifier prop missing");
|
warn!("modifier prop missing");
|
||||||
stop_cast();
|
stop_cast();
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
if prop_modifier.flags().contains(PodPropFlags::DONT_FIXATE) {
|
if prop_modifier.flags().contains(PodPropFlags::DONT_FIXATE) {
|
||||||
debug!(stream_id, "pw stream: fixating the modifier");
|
debug!("fixating the modifier");
|
||||||
|
|
||||||
let pod_modifier = prop_modifier.value();
|
let pod_modifier = prop_modifier.value();
|
||||||
let Ok((_, modifiers)) = PodDeserializer::deserialize_from::<Choice<i64>>(
|
let Ok((_, modifiers)) = PodDeserializer::deserialize_from::<Choice<i64>>(
|
||||||
pod_modifier.as_bytes(),
|
pod_modifier.as_bytes(),
|
||||||
) else {
|
) else {
|
||||||
warn!(stream_id, "pw stream: wrong modifier property type");
|
warn!("wrong modifier property type");
|
||||||
stop_cast();
|
stop_cast();
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
let ChoiceEnum::Enum { alternatives, .. } = modifiers.1 else {
|
let ChoiceEnum::Enum { alternatives, .. } = modifiers.1 else {
|
||||||
warn!(stream_id, "pw stream: wrong modifier choice type");
|
warn!("wrong modifier choice type");
|
||||||
stop_cast();
|
stop_cast();
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
@@ -468,18 +468,14 @@ impl PipeWire {
|
|||||||
) {
|
) {
|
||||||
Ok(x) => x,
|
Ok(x) => x,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
warn!(
|
warn!("couldn't find preferred modifier: {err:?}");
|
||||||
stream_id,
|
|
||||||
"pw stream: couldn't find preferred modifier: {err:?}"
|
|
||||||
);
|
|
||||||
stop_cast();
|
stop_cast();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
debug!(
|
debug!(
|
||||||
stream_id,
|
"allocation successful \
|
||||||
"pw stream: allocation successful \
|
|
||||||
(modifier={modifier:?}, plane_count={plane_count}), \
|
(modifier={modifier:?}, plane_count={plane_count}), \
|
||||||
moving to confirmation pending"
|
moving to confirmation pending"
|
||||||
);
|
);
|
||||||
@@ -516,7 +512,7 @@ impl PipeWire {
|
|||||||
let mut params = [pod1, make_pod(&mut b2, o2)];
|
let mut params = [pod1, make_pod(&mut b2, o2)];
|
||||||
|
|
||||||
if let Err(err) = stream.update_params(&mut params) {
|
if let Err(err) = stream.update_params(&mut params) {
|
||||||
warn!(stream_id, "error updating stream params: {err:?}");
|
warn!("error updating stream params: {err:?}");
|
||||||
stop_cast();
|
stop_cast();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -557,7 +553,7 @@ impl PipeWire {
|
|||||||
(None, None)
|
(None, None)
|
||||||
};
|
};
|
||||||
|
|
||||||
debug!(stream_id, "pw stream: moving to ready state");
|
debug!("moving to ready state");
|
||||||
|
|
||||||
*state = CastState::Ready {
|
*state = CastState::Ready {
|
||||||
size,
|
size,
|
||||||
@@ -582,15 +578,14 @@ impl PipeWire {
|
|||||||
) {
|
) {
|
||||||
Ok(x) => x,
|
Ok(x) => x,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
warn!(stream_id, "pw stream: test allocation failed: {err:?}");
|
warn!("test allocation failed: {err:?}");
|
||||||
stop_cast();
|
stop_cast();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
debug!(
|
debug!(
|
||||||
stream_id,
|
"allocation successful \
|
||||||
"pw stream: allocation successful \
|
|
||||||
(modifier={modifier:?}, plane_count={plane_count}), \
|
(modifier={modifier:?}, plane_count={plane_count}), \
|
||||||
moving to ready"
|
moving to ready"
|
||||||
);
|
);
|
||||||
@@ -674,7 +669,7 @@ impl PipeWire {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let Err(err) = stream.update_params(&mut params) {
|
if let Err(err) = stream.update_params(&mut params) {
|
||||||
warn!(stream_id, "error updating stream params: {err:?}");
|
warn!("error updating stream params: {err:?}");
|
||||||
stop_cast();
|
stop_cast();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -683,6 +678,7 @@ impl PipeWire {
|
|||||||
let inner = inner.clone();
|
let inner = inner.clone();
|
||||||
let stop_cast = stop_cast.clone();
|
let stop_cast = stop_cast.clone();
|
||||||
move |stream, (), buffer| {
|
move |stream, (), buffer| {
|
||||||
|
let _span = debug_span!("add_buffer", stream_id).entered();
|
||||||
let mut inner = inner.borrow_mut();
|
let mut inner = inner.borrow_mut();
|
||||||
|
|
||||||
let (size, alpha, modifier) = if let CastState::Ready {
|
let (size, alpha, modifier) = if let CastState::Ready {
|
||||||
@@ -694,15 +690,11 @@ impl PipeWire {
|
|||||||
{
|
{
|
||||||
(*size, *alpha, *modifier)
|
(*size, *alpha, *modifier)
|
||||||
} else {
|
} else {
|
||||||
trace!(stream_id, "pw stream: add buffer, but not ready yet");
|
trace!("add_buffer, but not ready yet");
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
trace!(
|
trace!("size={size:?}, alpha={alpha}, modifier={modifier:?}");
|
||||||
stream_id,
|
|
||||||
"pw stream: add_buffer, size={size:?}, alpha={alpha}, \
|
|
||||||
modifier={modifier:?}"
|
|
||||||
);
|
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
let spa_buffer = (*buffer).buffer;
|
let spa_buffer = (*buffer).buffer;
|
||||||
@@ -716,7 +708,7 @@ impl PipeWire {
|
|||||||
let dmabuf = match allocate_dmabuf(&gbm, size, fourcc, modifier) {
|
let dmabuf = match allocate_dmabuf(&gbm, size, fourcc, modifier) {
|
||||||
Ok(dmabuf) => dmabuf,
|
Ok(dmabuf) => dmabuf,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
warn!(stream_id, "error allocating dmabuf: {err:?}");
|
warn!("error allocating dmabuf: {err:?}");
|
||||||
stop_cast();
|
stop_cast();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -747,7 +739,6 @@ impl PipeWire {
|
|||||||
(*chunk).offset = offset;
|
(*chunk).offset = offset;
|
||||||
|
|
||||||
trace!(
|
trace!(
|
||||||
stream_id,
|
|
||||||
"pw buffer plane: fd={}, stride={stride}, offset={offset}",
|
"pw buffer plane: fd={}, stride={stride}, offset={offset}",
|
||||||
(*spa_data).fd
|
(*spa_data).fd
|
||||||
);
|
);
|
||||||
@@ -767,7 +758,7 @@ impl PipeWire {
|
|||||||
.remove_buffer({
|
.remove_buffer({
|
||||||
let inner = inner.clone();
|
let inner = inner.clone();
|
||||||
move |_stream, (), buffer| {
|
move |_stream, (), buffer| {
|
||||||
trace!(stream_id, "pw stream: remove_buffer");
|
trace!(stream_id, "remove_buffer");
|
||||||
let mut inner = inner.borrow_mut();
|
let mut inner = inner.borrow_mut();
|
||||||
|
|
||||||
inner
|
inner
|
||||||
|
|||||||
Reference in New Issue
Block a user