1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT

use glib::translate::*;
use gst;
use gst_base_sys;
use BaseSrc;

glib_wrapper! {
    /// This class is mostly useful for elements that cannot do
    /// random access, or at least very slowly. The source usually
    /// prefers to push out a fixed size buffer.
    ///
    /// Subclasses usually operate in a format that is different from the
    /// default GST_FORMAT_BYTES format of `BaseSrc`.
    ///
    /// Classes extending this base class will usually be scheduled
    /// in a push based mode. If the peer accepts to operate without
    /// offsets and within the limits of the allowed block size, this
    /// class can operate in getrange based mode automatically. To make
    /// this possible, the subclass should implement and override the
    /// SCHEDULING query.
    ///
    /// The subclass should extend the methods from the baseclass in
    /// addition to the ::create method.
    ///
    /// Seeking, flushing, scheduling and sync is all handled by this
    /// base class.
    ///
    /// # Implements
    ///
    /// [`BaseSrcExt`](trait.BaseSrcExt.html), [`gst::ElementExt`](../gst/trait.ElementExt.html), [`gst::ObjectExt`](../gst/trait.ObjectExt.html), [`glib::object::ObjectExt`](../glib/object/trait.ObjectExt.html)
    pub struct PushSrc(Object<gst_base_sys::GstPushSrc, gst_base_sys::GstPushSrcClass, PushSrcClass>) @extends BaseSrc, gst::Element, gst::Object;

    match fn {
        get_type => || gst_base_sys::gst_push_src_get_type(),
    }
}

impl PushSrc {}

unsafe impl Send for PushSrc {}
unsafe impl Sync for PushSrc {}

pub const NONE_PUSH_SRC: Option<&PushSrc> = None;