diff --git a/utils/togglerecord/src/togglerecord/imp.rs b/utils/togglerecord/src/togglerecord/imp.rs index 74fdaba0..ee6fea71 100644 --- a/utils/togglerecord/src/togglerecord/imp.rs +++ b/utils/togglerecord/src/togglerecord/imp.rs @@ -444,6 +444,17 @@ impl ToggleRecord { let current_running_time = state.in_segment.to_running_time(dts_or_pts); let current_running_time_end = state.in_segment.to_running_time(dts_or_pts_end); + let (current_running_time, current_running_time_end) = state + .in_segment + .clip(current_running_time, current_running_time_end) + .ok_or_else(|| { + gst::element_imp_error!( + self, + gst::StreamError::Format, + ["Received a buffer in the main stream without a valid running time"] + ); + gst::FlowError::Error + })?; state.current_running_time = current_running_time .opt_max(state.current_running_time) @@ -452,9 +463,6 @@ impl ToggleRecord { .opt_max(state.current_running_time_end) .or(current_running_time_end); - // FIXME we should probably return if either current_running_time or current_running_time_end - // are None at this point - // Wake up everybody, we advanced a bit // Important: They will only be able to advance once we're done with this // function or waiting for them to catch up below, otherwise they might