#[repr(C)]pub struct CGDisplayStream { /* private fields */ }
CGDisplayStream
only.Expand description
An opaque reference to a CGDisplayStream object
A CGDisplayStream provides a streaming API for capturing display updates in a realtime manner. It can also provide scaling and color space conversion services, as well as allow capturing sub regions of the display. Callbacks can be targetted at either a traditional CFRunLoop, or at a dispatch queue.
See also Apple’s documentation
Implementations§
Source§impl CGDisplayStream
impl CGDisplayStream
Sourcepub unsafe fn new(
display: CGDirectDisplayID,
output_width: usize,
output_height: usize,
pixel_format: i32,
properties: Option<&CFDictionary>,
handler: CGDisplayStreamFrameAvailableHandler,
) -> Option<CFRetained<CGDisplayStream>>
👎Deprecated: Please use ScreenCaptureKit instead.Available on crate feature CGDirectDisplay
and crate feature block2
and crate feature objc2-io-surface
and non-watchOS only.
pub unsafe fn new( display: CGDirectDisplayID, output_width: usize, output_height: usize, pixel_format: i32, properties: Option<&CFDictionary>, handler: CGDisplayStreamFrameAvailableHandler, ) -> Option<CFRetained<CGDisplayStream>>
CGDirectDisplay
and crate feature block2
and crate feature objc2-io-surface
and non-watchOS only.Creates a new CGDisplayStream intended to be used with a CFRunLoop
This function creates a new CGDisplayStream that is to be used to get a stream of frame updates from a particular display.
Parameter display
: The CGDirectDisplayID to use as the source for generated frames
Parameter outputWidth
: The output width (in pixels, not points) of the frames to be generated. Must not be zero.
Parameter outputHeight
: The output height (in pixels, not points) of the frames to be generated. Must not be zero.
Parameter pixelFormat
: The desired CoreVideo/CoreMedia-style pixel format of the output IOSurfaces. The currently
supported values are:
‘BGRA’ Packed Little Endian ARGB8888 ‘l10r’ Packed Little Endian ARGB2101010 ‘420v’ 2-plane “video” range YCbCr 4:2:0 ‘420f’ 2-plane “full” range YCbCr 4:2:0
Parameter properties
: Any optional properties of the CGDisplayStream
Parameter handler
: A block that will be called for frame deliver.
Returns: The new CGDisplayStream object.
Sourcepub unsafe fn with_dispatch_queue(
display: CGDirectDisplayID,
output_width: usize,
output_height: usize,
pixel_format: i32,
properties: Option<&CFDictionary>,
queue: &DispatchQueue,
handler: CGDisplayStreamFrameAvailableHandler,
) -> Option<CFRetained<CGDisplayStream>>
👎Deprecated: Please use ScreenCaptureKit instead.Available on crate feature CGDirectDisplay
and crate feature block2
and crate feature dispatch2
and crate feature objc2-io-surface
and non-watchOS only.
pub unsafe fn with_dispatch_queue( display: CGDirectDisplayID, output_width: usize, output_height: usize, pixel_format: i32, properties: Option<&CFDictionary>, queue: &DispatchQueue, handler: CGDisplayStreamFrameAvailableHandler, ) -> Option<CFRetained<CGDisplayStream>>
CGDirectDisplay
and crate feature block2
and crate feature dispatch2
and crate feature objc2-io-surface
and non-watchOS only.Creates a new CGDisplayStream intended to be serviced by a block handler
This function creates a new CGDisplayStream that is to be used to get a stream of frame updates from a particular display.
Parameter display
: The CGDirectDisplayID to use as the source for generated frames
Parameter outputWidth
: The output width (in pixels, not points) of the frames to be generated. Must not be zero.
Parameter outputHeight
: The output height (in pixels, not points) of the frames to be generated. Must not be zero.
Parameter pixelFormat
: The desired CoreVideo/CoreMedia-style pixel format of the output IOSurfaces
Parameter properties
: Any optional properties of the CGDisplayStream
Parameter queue
: The dispatch_queue_t that will be used to invoke the callback handler.
Parameter handler
: A block that will be called for frame deliver.
Returns: The new CGDisplayStream object.
Sourcepub unsafe fn start(display_stream: Option<&CGDisplayStream>) -> CGError
👎Deprecated: Please use ScreenCaptureKit instead.Available on crate feature CGError
only.
pub unsafe fn start(display_stream: Option<&CGDisplayStream>) -> CGError
CGError
only.Begin delivering frame updates to the handler block.
Parameter displayStream
: to be started
Returns: kCGErrorSuccess If the display stream was started, otherwise an error.
Sourcepub unsafe fn stop(display_stream: Option<&CGDisplayStream>) -> CGError
👎Deprecated: Please use ScreenCaptureKit instead.Available on crate feature CGError
only.
pub unsafe fn stop(display_stream: Option<&CGDisplayStream>) -> CGError
CGError
only.End delivery of frame updates to the handler block.
Parameter displayStream
: to be stopped
Returns: kCGErrorSuccess If the display stream was stopped, otherwise an error.
After this call returns, the CGDisplayStream callback function will eventually be called with a status of kCGDisplayStreamFrameStatusStopped. After that point it is safe to release the CGDisplayStream. It is safe to call this function from within the handler block, but the previous caveat still applies.
Sourcepub unsafe fn run_loop_source(
display_stream: Option<&CGDisplayStream>,
) -> Option<CFRetained<CFRunLoopSource>>
👎Deprecated: Please use ScreenCaptureKit instead.
pub unsafe fn run_loop_source( display_stream: Option<&CGDisplayStream>, ) -> Option<CFRetained<CFRunLoopSource>>
Return the singleton CFRunLoopSourceRef for a CGDisplayStream.
Parameter displayStream
: The CGDisplayStream object
Returns: The CFRunLoopSource for this displayStream. Note: This function will return NULL if the display stream was created via CGDisplayStreamCreateWithDispatchQueue().
Methods from Deref<Target = CFType>§
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: ConcreteType,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: ConcreteType,
Attempt to downcast the type to that of type T
.
This is the reference-variant. Use CFRetained::downcast
if you
want to convert a retained type. See also ConcreteType
for more
details on which types support being converted to.
Sourcepub fn retain_count(&self) -> usize
pub fn retain_count(&self) -> usize
Get the reference count of the object.
This function may be useful for debugging. You normally do not use this function otherwise.
Beware that some things (like CFNumber
s, small CFString
s etc.) may
not have a normal retain count for optimization purposes, and can
return usize::MAX
in that case.
Trait Implementations§
Source§impl AsRef<AnyObject> for CGDisplayStream
impl AsRef<AnyObject> for CGDisplayStream
Source§impl AsRef<CFType> for CGDisplayStream
impl AsRef<CFType> for CGDisplayStream
Source§impl AsRef<CGDisplayStream> for CGDisplayStream
impl AsRef<CGDisplayStream> for CGDisplayStream
Source§impl Borrow<AnyObject> for CGDisplayStream
impl Borrow<AnyObject> for CGDisplayStream
Source§impl Borrow<CFType> for CGDisplayStream
impl Borrow<CFType> for CGDisplayStream
Source§impl ConcreteType for CGDisplayStream
impl ConcreteType for CGDisplayStream
Source§impl Debug for CGDisplayStream
impl Debug for CGDisplayStream
Source§impl Deref for CGDisplayStream
impl Deref for CGDisplayStream
Source§impl Hash for CGDisplayStream
impl Hash for CGDisplayStream
Source§impl Message for CGDisplayStream
impl Message for CGDisplayStream
Source§impl PartialEq for CGDisplayStream
impl PartialEq for CGDisplayStream
Source§impl RefEncode for CGDisplayStream
impl RefEncode for CGDisplayStream
Source§const ENCODING_REF: Encoding
const ENCODING_REF: Encoding
Source§impl Type for CGDisplayStream
impl Type for CGDisplayStream
Source§fn retain(&self) -> CFRetained<Self>where
Self: Sized,
fn retain(&self) -> CFRetained<Self>where
Self: Sized,
Source§fn as_concrete_TypeRef(&self) -> &Self
fn as_concrete_TypeRef(&self) -> &Self
core-foundation
crate.Source§unsafe fn wrap_under_get_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
unsafe fn wrap_under_get_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
core-foundation
crate. Read moreSource§fn as_CFTypeRef(&self) -> &CFType
fn as_CFTypeRef(&self) -> &CFType
core-foundation
crate.Source§unsafe fn wrap_under_create_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
unsafe fn wrap_under_create_rule(ptr: *const Self) -> CFRetained<Self>where
Self: Sized,
core-foundation
crate. Read more