Skip to content

Commit

Permalink
more av::MetaData objs
Browse files Browse the repository at this point in the history
  • Loading branch information
yury committed Feb 7, 2025
1 parent f597e7c commit d67f880
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 8 deletions.
2 changes: 2 additions & 0 deletions cidre/src/av.rs
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,9 @@ pub use metadata_object::CatBodyObj as MetadataCatBodyObj;
pub use metadata_object::DogBodyObj as MetadataDogBodyObj;
pub use metadata_object::FaceObj as MetadataFaceObj;
pub use metadata_object::HumanBodyObj as MetadataHumanBodyObj;
pub use metadata_object::HumanFullBodyObj as MetadataHumanFullBodyObj;
pub use metadata_object::Obj as MetadataObj;
pub use metadata_object::SalientObj as MetadataSalientObj;
pub use metadata_object::Type as MetadataObjType;

pub mod player;
Expand Down
55 changes: 47 additions & 8 deletions cidre/src/av/metadata_object.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
use crate::{cg, cm, define_obj_type, ns, objc};

define_obj_type!(pub Type(ns::String));
define_obj_type!(
#[doc(alias = "AVMetadataObjectType")]
pub Type(ns::String)
);

impl Type {
#[doc(alias = "AVMetadataObjectTypeHumanBody")]
Expand All @@ -9,6 +12,12 @@ impl Type {
unsafe { AVMetadataObjectTypeHumanBody }
}

#[doc(alias = "AVMetadataObjectTypeHumanFullBody")]
#[inline]
pub fn human_full_body() -> &'static Type {
unsafe { AVMetadataObjectTypeHumanFullBody }
}

#[doc(alias = "AVMetadataObjectTypeCatBody")]
#[inline]
pub fn cat_body() -> &'static Type {
Expand Down Expand Up @@ -169,6 +178,7 @@ impl Type {

extern "C" {
static AVMetadataObjectTypeHumanBody: &'static Type;
static AVMetadataObjectTypeHumanFullBody: &'static Type;
static AVMetadataObjectTypeCatBody: &'static Type;
static AVMetadataObjectTypeDogBody: &'static Type;
static AVMetadataObjectTypeSalientObject: &'static Type;
Expand All @@ -192,7 +202,6 @@ extern "C" {
static AVMetadataObjectTypeGS1DataBarLimitedCode: &'static Type;
static AVMetadataObjectTypeMicroQRCode: &'static Type;
static AVMetadataObjectTypeMicroPDF417Code: &'static Type;

}

define_obj_type!(
Expand Down Expand Up @@ -228,6 +237,10 @@ impl Obj {
#[objc::msg_send(duration)]
pub fn duration(&self) -> cm::Time;

/// An identifier for the metadata object.
///
/// Clients inspecting a collection of metadata objects can use this property to filter objects
/// with a matching type.
#[objc::msg_send(type)]
pub fn obj_type(&self) -> &Type;
}
Expand All @@ -241,13 +254,39 @@ impl BodyObj {
pub fn body_id(&self) -> isize;
}

define_obj_type!(pub CatBodyObj(BodyObj));
define_obj_type!(pub DogBodyObj(BodyObj));
define_obj_type!(pub HumanBodyObj(BodyObj));
define_obj_type!(
#[doc(alias = "AVMetadataCatBodyObject")]
pub CatBodyObj(BodyObj)
);

define_obj_type!(
#[doc(alias = "AVMetadataDogBodyObject")]
pub DogBodyObj(BodyObj)
);

define_obj_type!(pub FaceObj(Obj));
define_obj_type!(pub MachineReadableCodeObj(Obj));
define_obj_type!(pub SalientObj(Obj));
define_obj_type!(
#[doc(alias = "AVMetadataHumanBodyObject")]
pub HumanBodyObj(BodyObj)
);

define_obj_type!(
#[doc(alias = "AVMetadataHumanFullBodyObject")]
pub HumanFullBodyObj(BodyObj)
);

define_obj_type!(
#[doc(alias = "AVMetadataFaceObject")]
pub FaceObj(Obj)
);
define_obj_type!(
#[doc(alias = "AVMetadataMachineReadableCodeObject")]
pub MachineReadableCodeObj(Obj)
);

define_obj_type!(
#[doc(alias = "AVMetadataSalientObject")]
pub SalientObj(Obj)
);

impl SalientObj {
#[objc::msg_send(objectID)]
Expand Down

0 comments on commit d67f880

Please sign in to comment.