diff --git a/src/client.rs b/src/client.rs index a2e893c49..66eccfe20 100644 --- a/src/client.rs +++ b/src/client.rs @@ -944,12 +944,7 @@ impl VideoHandler { } match &vf.union { Some(frame) => { - // windows && flutter_texture_render, fmt is ImageFormat::ABGR - #[cfg(all(target_os = "windows", feature = "flutter_texture_render"))] - let fmt = ImageFormat::ABGR; - #[cfg(not(all(target_os = "windows", feature = "flutter_texture_render")))] - let fmt = ImageFormat::ARGB; - let res = self.decoder.handle_video_frame(frame, STRIDE_ALIGN, fmt, &mut self.rgb); + let res = self.decoder.handle_video_frame(frame, STRIDE_ALIGN, ImageFormat::ARGB, &mut self.rgb); if self.record { self.recorder .lock() diff --git a/src/flutter.rs b/src/flutter.rs index 4984dbdb4..76583eb3d 100644 --- a/src/flutter.rs +++ b/src/flutter.rs @@ -154,7 +154,7 @@ pub struct FlutterHandler { #[cfg(feature = "flutter_texture_render")] pub type FlutterRgbaRendererPluginOnRgba = - unsafe extern "C" fn(texture_rgba: *mut c_void, buffer: *const u8, width: c_int, height: c_int); + unsafe extern "C" fn(texture_rgba: *mut c_void, buffer: *const u8, len: c_int, width: c_int, height: c_int, stride_align: c_int); // Video Texture Renderer in Flutter #[cfg(feature = "flutter_texture_render")] @@ -223,8 +223,10 @@ impl VideoRenderer { func( self.ptr as _, rgba.as_ptr() as _, + rgba.len() as _, self.width as _, self.height as _, + crate::common::STRIDE_ALIGN as _, ) }; }