mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2024-06-02 21:39:23 +00:00
net/onvif: update with new gst::Signed
features
This commit is contained in:
parent
18f08ae5dc
commit
caefa6d33e
|
@ -20,10 +20,8 @@ fn utc_time_to_pts(
|
||||||
utc_time_running_time_mapping: (gst::ClockTime, gst::Signed<gst::ClockTime>),
|
utc_time_running_time_mapping: (gst::ClockTime, gst::Signed<gst::ClockTime>),
|
||||||
utc_time: gst::ClockTime,
|
utc_time: gst::ClockTime,
|
||||||
) -> Option<gst::ClockTime> {
|
) -> Option<gst::ClockTime> {
|
||||||
let running_time = match utc_time_to_running_time(utc_time_running_time_mapping, utc_time)? {
|
let running_time =
|
||||||
gst::Signed::Positive(running_time) => running_time,
|
utc_time_to_running_time(utc_time_running_time_mapping, utc_time)?.positive()?;
|
||||||
_ => return None,
|
|
||||||
};
|
|
||||||
segment.position_from_running_time(running_time)
|
segment.position_from_running_time(running_time)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,9 +44,10 @@ fn running_time_to_utc_time(
|
||||||
) -> Option<gst::ClockTime> {
|
) -> Option<gst::ClockTime> {
|
||||||
let diff = running_time.checked_sub(utc_time_running_time_mapping.1)?;
|
let diff = running_time.checked_sub(utc_time_running_time_mapping.1)?;
|
||||||
|
|
||||||
|
use gst::Signed::*;
|
||||||
match diff {
|
match diff {
|
||||||
gst::Signed::Positive(diff) => utc_time_running_time_mapping.0.checked_add(diff),
|
Positive(diff) => utc_time_running_time_mapping.0.checked_add(diff),
|
||||||
gst::Signed::Negative(diff) => utc_time_running_time_mapping.0.checked_sub(diff),
|
Negative(diff) => utc_time_running_time_mapping.0.checked_sub(diff),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -230,9 +229,10 @@ impl OnvifMetadataParse {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
use gst::Signed::*;
|
||||||
let initial_utc_time = match utc_time.into_positive().checked_sub(diff) {
|
let initial_utc_time = match utc_time.into_positive().checked_sub(diff) {
|
||||||
Some(gst::Signed::Positive(initial_utc_time)) => initial_utc_time,
|
Some(Positive(initial_utc_time)) => initial_utc_time,
|
||||||
Some(gst::Signed::Negative(initial_utc_time)) => {
|
Some(Negative(initial_utc_time)) => {
|
||||||
gst::warning!(
|
gst::warning!(
|
||||||
CAT,
|
CAT,
|
||||||
obj: pad,
|
obj: pad,
|
||||||
|
@ -494,7 +494,7 @@ impl OnvifMetadataParse {
|
||||||
.and_then(|(current_running_time, earliest_running_time)| {
|
.and_then(|(current_running_time, earliest_running_time)| {
|
||||||
current_running_time.checked_sub(earliest_running_time)
|
current_running_time.checked_sub(earliest_running_time)
|
||||||
})
|
})
|
||||||
.and_then(|queued_time| queued_time.positive_or(()).ok())
|
.and_then(|queued_time| queued_time.positive())
|
||||||
.unwrap_or(gst::ClockTime::ZERO);
|
.unwrap_or(gst::ClockTime::ZERO);
|
||||||
|
|
||||||
gst::trace!(
|
gst::trace!(
|
||||||
|
@ -546,7 +546,7 @@ impl OnvifMetadataParse {
|
||||||
earliest_running_time
|
earliest_running_time
|
||||||
.checked_add_unsigned(base_time + min_latency + state.configured_latency)
|
.checked_add_unsigned(base_time + min_latency + state.configured_latency)
|
||||||
})
|
})
|
||||||
.and_then(|earliest_clock_time| earliest_clock_time.positive_or(()).ok())
|
.and_then(|earliest_clock_time| earliest_clock_time.positive())
|
||||||
{
|
{
|
||||||
if state
|
if state
|
||||||
.clock_wait
|
.clock_wait
|
||||||
|
@ -563,7 +563,7 @@ impl OnvifMetadataParse {
|
||||||
earliest_clock_time,
|
earliest_clock_time,
|
||||||
earliest_running_time
|
earliest_running_time
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.positive_or(())
|
.positive()
|
||||||
.unwrap_or(gst::ClockTime::ZERO)
|
.unwrap_or(gst::ClockTime::ZERO)
|
||||||
.display(),
|
.display(),
|
||||||
clock.time().display(),
|
clock.time().display(),
|
||||||
|
@ -609,7 +609,7 @@ impl OnvifMetadataParse {
|
||||||
utc_time_running_time_mapping,
|
utc_time_running_time_mapping,
|
||||||
drain_utc_time
|
drain_utc_time
|
||||||
))
|
))
|
||||||
.and_then(|running_time| running_time.positive_or(()).ok())
|
.and_then(|running_time| running_time.positive())
|
||||||
.display(),
|
.display(),
|
||||||
out_segment.position().display(),
|
out_segment.position().display(),
|
||||||
out_segment
|
out_segment
|
||||||
|
@ -948,7 +948,7 @@ impl OnvifMetadataParse {
|
||||||
if let Some(utc_time_running_time_mapping) = utc_time_running_time_mapping {
|
if let Some(utc_time_running_time_mapping) = utc_time_running_time_mapping {
|
||||||
let current_running_time = in_segment
|
let current_running_time = in_segment
|
||||||
.to_running_time_full(in_segment.position())
|
.to_running_time_full(in_segment.position())
|
||||||
.unwrap_or(gst::Signed::Negative(gst::ClockTime::MAX));
|
.unwrap_or(gst::ClockTime::MIN_SIGNED);
|
||||||
let current_utc_time = running_time_to_utc_time(
|
let current_utc_time = running_time_to_utc_time(
|
||||||
*utc_time_running_time_mapping,
|
*utc_time_running_time_mapping,
|
||||||
current_running_time,
|
current_running_time,
|
||||||
|
@ -960,7 +960,7 @@ impl OnvifMetadataParse {
|
||||||
obj: element,
|
obj: element,
|
||||||
"Queueing event with UTC time {} / running time {}",
|
"Queueing event with UTC time {} / running time {}",
|
||||||
current_utc_time,
|
current_utc_time,
|
||||||
current_running_time.positive_or(()).ok().display(),
|
current_running_time.positive().display(),
|
||||||
);
|
);
|
||||||
|
|
||||||
let frame = queued_frames
|
let frame = queued_frames
|
||||||
|
@ -986,15 +986,13 @@ impl OnvifMetadataParse {
|
||||||
|
|
||||||
let current_running_time = in_segment
|
let current_running_time = in_segment
|
||||||
.to_running_time_full(in_segment.position())
|
.to_running_time_full(in_segment.position())
|
||||||
.unwrap_or(gst::Signed::Negative(gst::ClockTime::from_nseconds(
|
.unwrap_or(gst::ClockTime::MIN_SIGNED);
|
||||||
u64::MAX,
|
|
||||||
)));
|
|
||||||
|
|
||||||
gst::trace!(
|
gst::trace!(
|
||||||
CAT,
|
CAT,
|
||||||
obj: element,
|
obj: element,
|
||||||
"Pre-queueing event with running time {}",
|
"Pre-queueing event with running time {}",
|
||||||
current_running_time.positive_or(()).ok().display()
|
current_running_time.positive().display()
|
||||||
);
|
);
|
||||||
|
|
||||||
pre_queued_buffers.push(TimedBufferOrEvent::Event(current_running_time, event));
|
pre_queued_buffers.push(TimedBufferOrEvent::Event(current_running_time, event));
|
||||||
|
|
Loading…
Reference in a new issue