server fix
This commit is contained in:
parent
9b8a01a32e
commit
374d323bf5
@ -33,18 +33,38 @@ pub async fn spawn_camera(
|
|||||||
|
|
||||||
sink.set_callbacks(
|
sink.set_callbacks(
|
||||||
gst_app::AppSinkCallbacks::builder()
|
gst_app::AppSinkCallbacks::builder()
|
||||||
|
// .new_sample(move |sink| {
|
||||||
|
// let sample = sink.pull_sample().map_err(|_| gst::FlowError::Eos)?;
|
||||||
|
// let buffer = sample.buffer().ok_or(gst::FlowError::Error)?;
|
||||||
|
|
||||||
|
// let map = buffer.map_readable().map_err(|_| gst::FlowError::Error)?;
|
||||||
|
// let pkt = VideoPacket {
|
||||||
|
// id,
|
||||||
|
// pts: buffer.pts().nseconds() / 1_000, // → µs
|
||||||
|
// data: map.as_slice().to_vec(),
|
||||||
|
// };
|
||||||
|
// // ignore back‑pressure: drop oldest if channel is full
|
||||||
|
// let _ = tx.try_send(Ok(pkt));
|
||||||
|
// Ok(gst::FlowSuccess::Ok)
|
||||||
|
// })
|
||||||
|
// .build(),
|
||||||
.new_sample(move |sink| {
|
.new_sample(move |sink| {
|
||||||
let sample = sink.pull_sample().map_err(|_| gst::FlowError::Eos)?;
|
let sample = sink.pull_sample().map_err(|_| gst::FlowError::Eos)?;
|
||||||
let buffer = sample.buffer().ok_or(gst::FlowError::Error)?;
|
let buffer = sample.buffer().ok_or(gst::FlowError::Error)?;
|
||||||
|
|
||||||
|
let pts_us = buffer
|
||||||
|
.pts()
|
||||||
|
.map(|t| t.nseconds() / 1_000) // ns → µs
|
||||||
|
.unwrap_or(0);
|
||||||
|
|
||||||
let map = buffer.map_readable().map_err(|_| gst::FlowError::Error)?;
|
let map = buffer.map_readable().map_err(|_| gst::FlowError::Error)?;
|
||||||
|
|
||||||
let pkt = VideoPacket {
|
let pkt = VideoPacket {
|
||||||
id,
|
id,
|
||||||
pts: buffer.pts().nseconds() / 1_000, // → µs
|
pts: pts_us,
|
||||||
data: map.as_slice().to_vec(),
|
data: map.as_slice().to_vec(),
|
||||||
};
|
};
|
||||||
// ignore back‑pressure: drop oldest if channel is full
|
let _ = tx.try_send(Ok(pkt)); // drop on overflow
|
||||||
let _ = tx.try_send(Ok(pkt));
|
|
||||||
Ok(gst::FlowSuccess::Ok)
|
Ok(gst::FlowSuccess::Ok)
|
||||||
})
|
})
|
||||||
.build(),
|
.build(),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user