From cee8516717b5c580ebc3e94626cdcc1a55f7fa5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= Date: Wed, 20 Aug 2025 09:26:20 -0400 Subject: [PATCH] meta: Remove explicit region from MetaTransformCopy Part-of: --- gstreamer/src/meta.rs | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/gstreamer/src/meta.rs b/gstreamer/src/meta.rs index 0895d2592..a7431570f 100644 --- a/gstreamer/src/meta.rs +++ b/gstreamer/src/meta.rs @@ -1112,19 +1112,27 @@ pub unsafe trait MetaTransform { pub struct MetaTransformCopy(ffi::GstMetaTransformCopy); impl MetaTransformCopy { - pub fn new(region: bool, range: impl RangeBounds) -> Self { + pub fn new(range: impl RangeBounds) -> Self { skip_assert_initialized!(); - let offset = match range.start_bound() { - Bound::Included(idx) => *idx, - Bound::Excluded(idx) => *idx + 1, - Bound::Unbounded => 0, - }; + let region = + !(range.start_bound() == Bound::Unbounded && range.end_bound() == Bound::Unbounded); - let size = match range.end_bound() { - Bound::Included(idx) => *idx + 1, - Bound::Excluded(idx) => *idx, - Bound::Unbounded => usize::MAX, + let (offset, size) = if region { + ( + match range.start_bound() { + Bound::Included(idx) => *idx, + Bound::Excluded(idx) => *idx + 1, + Bound::Unbounded => 0, + }, + match range.end_bound() { + Bound::Included(idx) => *idx + 1, + Bound::Excluded(idx) => *idx, + Bound::Unbounded => usize::MAX, + }, + ) + } else { + (0, usize::MAX) }; Self(ffi::GstMetaTransformCopy { @@ -1305,7 +1313,7 @@ mod tests { { let meta = buffer.meta::().unwrap(); let buffer_dest = buffer_dest.get_mut().unwrap(); - meta.transform(buffer_dest, &MetaTransformCopy::new(false, ..)) + meta.transform(buffer_dest, &MetaTransformCopy::new(..)) .unwrap(); }