| 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 | |