av_foundation/
capture_output_base.rs1use objc2::{extern_class, msg_send_id, mutability::InteriorMutable, rc::Id, ClassType};
2use objc2_foundation::{NSArray, NSInteger, NSObject, NSObjectProtocol, NSString};
3
4use crate::capture_session::AVCaptureConnection;
5
6extern_class!(
7 #[derive(Debug, PartialEq, Eq, Hash)]
8 pub struct AVCaptureOutput;
9
10 unsafe impl ClassType for AVCaptureOutput {
11 type Super = NSObject;
12 type Mutability = InteriorMutable;
13 }
14);
15
16unsafe impl NSObjectProtocol for AVCaptureOutput {}
17
18impl AVCaptureOutput {
19 pub fn connections(&self) -> Id<NSArray<AVCaptureConnection>> {
20 unsafe { msg_send_id![self, connections] }
21 }
22
23 pub fn connection_with_media_type(&self, media_type: &NSString) -> Option<Id<AVCaptureConnection>> {
24 unsafe { msg_send_id![self, connectionWithMediaType: media_type] }
25 }
26}
27
28pub type AVCaptureOutputDataDroppedReason = NSInteger;
29
30pub const AVCaptureOutputDataDroppedReasonNone: AVCaptureOutputDataDroppedReason = 0;
31pub const AVCaptureOutputDataDroppedReasonLateData: AVCaptureOutputDataDroppedReason = 1;
32pub const AVCaptureOutputDataDroppedReasonOutdatedData: AVCaptureOutputDataDroppedReason = 2;
33pub const AVCaptureOutputDataDroppedReasonDiscontinuity: AVCaptureOutputDataDroppedReason = 3;