gstreamer_video/auto/video_aggregator.rs
1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
4// DO NOT EDIT
5
6use crate::ffi;
7use glib::prelude::*;
8
9glib::wrapper! {
10 /// VideoAggregator can accept AYUV, ARGB and BGRA video streams. For each of the requested
11 /// sink pads it will compare the incoming geometry and framerate to define the
12 /// output parameters. Indeed output video frames will have the geometry of the
13 /// biggest incoming video stream and the framerate of the fastest incoming one.
14 ///
15 /// VideoAggregator will do colorspace conversion.
16 ///
17 /// Zorder for each input stream can be configured on the
18 /// [`VideoAggregatorPad`][crate::VideoAggregatorPad].
19 ///
20 /// This is an Abstract Base Class, you cannot instantiate it.
21 ///
22 /// ## Properties
23 ///
24 ///
25 /// #### `force-live`
26 /// Causes the element to aggregate on a timeout even when no live source is
27 /// connected to its sinks. See [`min-upstream-latency`][struct@crate::gst_base::Aggregator#min-upstream-latency] for a
28 /// companion property: in the vast majority of cases where you plan to plug in
29 /// live sources with a non-zero latency, you should set it to a non-zero value.
30 ///
31 /// Readable | Writeable | Construct Only
32 /// <details><summary><h4>Aggregator</h4></summary>
33 ///
34 ///
35 /// #### `emit-signals`
36 /// Enables the emission of signals such as [`samples-selected`][struct@crate::gst_base::Aggregator#samples-selected]
37 ///
38 /// Readable | Writeable
39 ///
40 ///
41 /// #### `latency`
42 /// Readable | Writeable
43 ///
44 ///
45 /// #### `min-upstream-latency`
46 /// Force minimum upstream latency (in nanoseconds). When sources with a
47 /// higher latency are expected to be plugged in dynamically after the
48 /// aggregator has started playing, this allows overriding the minimum
49 /// latency reported by the initial source(s). This is only taken into
50 /// account when larger than the actually reported minimum latency.
51 ///
52 /// Readable | Writeable
53 ///
54 ///
55 /// #### `start-time`
56 /// Readable | Writeable
57 ///
58 ///
59 /// #### `start-time-selection`
60 /// Readable | Writeable
61 /// </details>
62 /// <details><summary><h4>Object</h4></summary>
63 ///
64 ///
65 /// #### `name`
66 /// Readable | Writeable | Construct
67 ///
68 ///
69 /// #### `parent`
70 /// The parent of the object. Please note, that when changing the 'parent'
71 /// property, we don't emit [`notify`][struct@crate::glib::Object#notify] and [`deep-notify`][struct@crate::gst::Object#deep-notify]
72 /// signals due to locking issues. In some cases one can use
73 /// `GstBin::element-added` or `GstBin::element-removed` signals on the parent to
74 /// achieve a similar effect.
75 ///
76 /// Readable | Writeable
77 /// </details>
78 ///
79 /// # Implements
80 ///
81 /// [`VideoAggregatorExt`][trait@crate::prelude::VideoAggregatorExt], [`trait@gst_base::prelude::AggregatorExt`], [`trait@gst::prelude::ElementExt`], [`trait@gst::prelude::ObjectExt`], [`trait@glib::ObjectExt`]
82 #[doc(alias = "GstVideoAggregator")]
83 pub struct VideoAggregator(Object<ffi::GstVideoAggregator, ffi::GstVideoAggregatorClass>) @extends gst_base::Aggregator, gst::Element, gst::Object;
84
85 match fn {
86 type_ => || ffi::gst_video_aggregator_get_type(),
87 }
88}
89
90impl VideoAggregator {
91 pub const NONE: Option<&'static VideoAggregator> = None;
92}
93
94unsafe impl Send for VideoAggregator {}
95unsafe impl Sync for VideoAggregator {}
96
97/// Trait containing all [`struct@VideoAggregator`] methods.
98///
99/// # Implementors
100///
101/// [`VideoAggregator`][struct@crate::VideoAggregator]
102pub trait VideoAggregatorExt: IsA<VideoAggregator> + 'static {
103 //#[cfg(feature = "v1_20")]
104 //#[cfg_attr(docsrs, doc(cfg(feature = "v1_20")))]
105 //#[doc(alias = "gst_video_aggregator_get_execution_task_pool")]
106 //#[doc(alias = "get_execution_task_pool")]
107 //fn execution_task_pool(&self) -> /*Ignored*/gst::TaskPool {
108 // unsafe { TODO: call ffi:gst_video_aggregator_get_execution_task_pool() }
109 //}
110}
111
112impl<O: IsA<VideoAggregator>> VideoAggregatorExt for O {}