av_foundation/
capture_output_base.rs

1use 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;