1 | // Take a look at the license at the top of the repository in the LICENSE file. |
2 | |
3 | use glib::{bitflags::bitflags, translate::*}; |
4 | |
5 | use crate::ffi; |
6 | |
7 | bitflags! { |
8 | #[doc (alias = "GstElementFactoryListType" )] |
9 | #[derive (Clone, Copy, Debug, PartialEq, Eq, Hash)] |
10 | pub struct ElementFactoryType: u64 { |
11 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_DECODER" )] |
12 | const DECODER = ffi::GST_ELEMENT_FACTORY_TYPE_DECODER; |
13 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_ENCODER" )] |
14 | const ENCODER = ffi::GST_ELEMENT_FACTORY_TYPE_ENCODER; |
15 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_SINK" )] |
16 | const SINK = ffi::GST_ELEMENT_FACTORY_TYPE_SINK; |
17 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_SRC" )] |
18 | const SRC = ffi::GST_ELEMENT_FACTORY_TYPE_SRC; |
19 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_MUXER" )] |
20 | const MUXER = ffi::GST_ELEMENT_FACTORY_TYPE_MUXER; |
21 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_DEMUXER" )] |
22 | const DEMUXER = ffi::GST_ELEMENT_FACTORY_TYPE_DEMUXER; |
23 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_PARSER" )] |
24 | const PARSER = ffi::GST_ELEMENT_FACTORY_TYPE_PARSER; |
25 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_PAYLOADER" )] |
26 | const PAYLOADER = ffi::GST_ELEMENT_FACTORY_TYPE_PAYLOADER; |
27 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER" )] |
28 | const DEPAYLOADER = ffi::GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER; |
29 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_FORMATTER" )] |
30 | const FORMATTER = ffi::GST_ELEMENT_FACTORY_TYPE_FORMATTER; |
31 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_DECRYPTOR" )] |
32 | const DECRYPTOR = ffi::GST_ELEMENT_FACTORY_TYPE_DECRYPTOR; |
33 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR" )] |
34 | const ENCRYPTOR = ffi::GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR; |
35 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_HARDWARE" )] |
36 | const HARDWARE = ffi::GST_ELEMENT_FACTORY_TYPE_HARDWARE; |
37 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_TIMESTAMPER" )] |
38 | const TIMESTAMPER = ffi::GST_ELEMENT_FACTORY_TYPE_TIMESTAMPER; |
39 | |
40 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO" )] |
41 | const MEDIA_VIDEO = ffi::GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO; |
42 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO" )] |
43 | const MEDIA_AUDIO = ffi::GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO; |
44 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE" )] |
45 | const MEDIA_IMAGE = ffi::GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE; |
46 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE" )] |
47 | const MEDIA_SUBTITLE = ffi::GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE; |
48 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA" )] |
49 | const MEDIA_METADATA = ffi::GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA; |
50 | |
51 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_ANY" )] |
52 | const ANY = ffi::GST_ELEMENT_FACTORY_TYPE_ANY; |
53 | #[doc (alias = "GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY" )] |
54 | const MEDIA_ANY = ffi::GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY; |
55 | |
56 | const VIDEO_ENCODER = Self::ENCODER.bits() | Self::MEDIA_VIDEO.bits() | Self::MEDIA_IMAGE.bits(); |
57 | const AUDIO_ENCODER = Self::ENCODER.bits() | Self::MEDIA_AUDIO.bits(); |
58 | const AUDIOVIDEO_SINKS = Self::SINK.bits() | Self::MEDIA_AUDIO.bits() | Self::MEDIA_VIDEO.bits() | Self::MEDIA_IMAGE.bits(); |
59 | const DECODABLE = Self::DECODER.bits() | Self::DEMUXER.bits() | Self::DEPAYLOADER.bits() | Self::PARSER.bits() | Self::DECRYPTOR.bits(); |
60 | } |
61 | } |
62 | |
63 | #[doc (hidden)] |
64 | impl IntoGlib for ElementFactoryType { |
65 | type GlibType = ffi::GstElementFactoryListType; |
66 | |
67 | #[inline ] |
68 | fn into_glib(self) -> ffi::GstElementFactoryListType { |
69 | self.bits() |
70 | } |
71 | } |
72 | |
73 | #[doc (hidden)] |
74 | impl FromGlib<ffi::GstElementFactoryListType> for ElementFactoryType { |
75 | #[inline ] |
76 | unsafe fn from_glib(value: ffi::GstElementFactoryListType) -> ElementFactoryType { |
77 | skip_assert_initialized!(); |
78 | ElementFactoryType::from_bits_truncate(bits:value) |
79 | } |
80 | } |
81 | |