@@ -7,6 +7,7 @@ use std::{
use crate::DisplayId;
use collections::HashMap;
use parking_lot::Mutex;
+pub use sys::CVSMPTETime as SmtpeTime;
pub use sys::CVTimeStamp as VideoTimestamp;
pub(crate) struct MacDisplayLinker {
@@ -153,7 +154,7 @@ mod sys {
kCVTimeStampTopField | kCVTimeStampBottomField;
#[repr(C)]
- #[derive(Clone, Copy)]
+ #[derive(Clone, Copy, Default)]
pub struct CVSMPTETime {
pub subframes: i16,
pub subframe_divisor: i16,
@@ -147,18 +147,25 @@ impl Platform for TestPlatform {
fn set_display_link_output_callback(
&self,
_display_id: DisplayId,
- _callback: Box<dyn FnMut(&crate::VideoTimestamp, &crate::VideoTimestamp) + Send>,
+ mut callback: Box<dyn FnMut(&crate::VideoTimestamp, &crate::VideoTimestamp) + Send>,
) {
- unimplemented!()
- }
-
- fn start_display_link(&self, _display_id: DisplayId) {
- unimplemented!()
- }
-
- fn stop_display_link(&self, _display_id: DisplayId) {
- unimplemented!()
- }
+ let timestamp = crate::VideoTimestamp {
+ version: 0,
+ video_time_scale: 0,
+ video_time: 0,
+ host_time: 0,
+ rate_scalar: 0.0,
+ video_refresh_period: 0,
+ smpte_time: crate::SmtpeTime::default(),
+ flags: 0,
+ reserved: 0,
+ };
+ callback(×tamp, ×tamp)
+ }
+
+ fn start_display_link(&self, _display_id: DisplayId) {}
+
+ fn stop_display_link(&self, _display_id: DisplayId) {}
fn open_url(&self, _url: &str) {
unimplemented!()