video-info: Use unions for setting extension fields instead of pointer arithmetic

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1674>
This commit is contained in:
Sebastian Dröge 2025-03-17 10:06:02 +02:00 committed by GStreamer Marge Bot
parent 15f1ba0c94
commit 60901e27d1

View file

@ -422,18 +422,15 @@ impl<'a> VideoInfoBuilder<'a> {
}
if let Some(multiview_mode) = self.multiview_mode {
let ptr = &mut info.ABI._gst_reserved as *mut _ as *mut i32;
ptr::write(ptr.offset(0), multiview_mode.into_glib());
info.ABI.abi.multiview_mode = multiview_mode.into_glib();
}
if let Some(multiview_flags) = self.multiview_flags {
let ptr = &mut info.ABI._gst_reserved as *mut _ as *mut u32;
ptr::write(ptr.offset(1), multiview_flags.into_glib());
info.ABI.abi.multiview_flags = multiview_flags.into_glib();
}
if let Some(field_order) = self.field_order {
let ptr = &mut info.ABI._gst_reserved as *mut _ as *mut i32;
ptr::write(ptr.offset(2), field_order.into_glib());
info.ABI.abi.field_order = field_order.into_glib();
}
Ok(VideoInfo(info))