2018-04-23 17:34:22 +00:00
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from gir-files (https://github.com/gtk-rs/gir-files)
2017-09-09 13:54:02 +00:00
// DO NOT EDIT
use ffi ;
2019-01-26 14:26:34 +00:00
use glib ;
2017-11-27 17:16:34 +00:00
use glib ::StaticType ;
2017-09-09 13:54:02 +00:00
use glib ::Value ;
2019-01-16 11:32:39 +00:00
use glib ::object ::Cast ;
2017-09-09 13:54:02 +00:00
use glib ::object ::IsA ;
use glib ::signal ::SignalHandlerId ;
2018-12-08 09:05:20 +00:00
use glib ::signal ::connect_raw ;
2017-09-09 13:54:02 +00:00
use glib ::translate ::* ;
use glib_ffi ;
use gobject_ffi ;
use gst ;
use std ::boxed ::Box as Box_ ;
use std ::mem ::transmute ;
glib_wrapper! {
2019-01-16 11:32:39 +00:00
pub struct BaseTransform ( Object < ffi ::GstBaseTransform , ffi ::GstBaseTransformClass , BaseTransformClass > ) @ extends gst ::Element , gst ::Object ;
2017-09-09 13:54:02 +00:00
match fn {
get_type = > | | ffi ::gst_base_transform_get_type ( ) ,
}
}
unsafe impl Send for BaseTransform { }
unsafe impl Sync for BaseTransform { }
2019-01-16 11:32:39 +00:00
pub const NONE_BASE_TRANSFORM : Option < & BaseTransform > = None ;
2018-12-08 09:05:20 +00:00
pub trait BaseTransformExt : 'static {
2017-09-09 13:54:02 +00:00
//fn get_allocator(&self, allocator: /*Ignored*/gst::Allocator, params: /*Ignored*/gst::AllocationParams);
2018-07-30 08:54:24 +00:00
fn get_buffer_pool ( & self ) -> Option < gst ::BufferPool > ;
2017-09-09 13:54:02 +00:00
fn is_in_place ( & self ) -> bool ;
fn is_passthrough ( & self ) -> bool ;
fn is_qos_enabled ( & self ) -> bool ;
fn reconfigure_sink ( & self ) ;
fn reconfigure_src ( & self ) ;
fn set_gap_aware ( & self , gap_aware : bool ) ;
fn set_in_place ( & self , in_place : bool ) ;
fn set_passthrough ( & self , passthrough : bool ) ;
fn set_prefer_passthrough ( & self , prefer_passthrough : bool ) ;
fn set_qos_enabled ( & self , enabled : bool ) ;
fn update_qos ( & self , proportion : f64 , diff : gst ::ClockTimeDiff , timestamp : gst ::ClockTime ) ;
2019-01-26 14:26:34 +00:00
fn update_src_caps ( & self , updated_caps : & gst ::Caps ) -> Result < ( ) , glib ::error ::BoolError > ;
2017-09-09 13:54:02 +00:00
fn get_property_qos ( & self ) -> bool ;
fn set_property_qos ( & self , qos : bool ) ;
fn connect_property_qos_notify < F : Fn ( & Self ) + Send + Sync + 'static > ( & self , f : F ) -> SignalHandlerId ;
}
2018-12-08 09:05:20 +00:00
impl < O : IsA < BaseTransform > > BaseTransformExt for O {
2017-09-09 13:54:02 +00:00
//fn get_allocator(&self, allocator: /*Ignored*/gst::Allocator, params: /*Ignored*/gst::AllocationParams) {
// unsafe { TODO: call ffi::gst_base_transform_get_allocator() }
//}
2018-07-30 08:54:24 +00:00
fn get_buffer_pool ( & self ) -> Option < gst ::BufferPool > {
unsafe {
2019-01-16 11:32:39 +00:00
from_glib_full ( ffi ::gst_base_transform_get_buffer_pool ( self . as_ref ( ) . to_glib_none ( ) . 0 ) )
2018-07-30 08:54:24 +00:00
}
}
2017-09-09 13:54:02 +00:00
fn is_in_place ( & self ) -> bool {
unsafe {
2019-01-16 11:32:39 +00:00
from_glib ( ffi ::gst_base_transform_is_in_place ( self . as_ref ( ) . to_glib_none ( ) . 0 ) )
2017-09-09 13:54:02 +00:00
}
}
fn is_passthrough ( & self ) -> bool {
unsafe {
2019-01-16 11:32:39 +00:00
from_glib ( ffi ::gst_base_transform_is_passthrough ( self . as_ref ( ) . to_glib_none ( ) . 0 ) )
2017-09-09 13:54:02 +00:00
}
}
fn is_qos_enabled ( & self ) -> bool {
unsafe {
2019-01-16 11:32:39 +00:00
from_glib ( ffi ::gst_base_transform_is_qos_enabled ( self . as_ref ( ) . to_glib_none ( ) . 0 ) )
2017-09-09 13:54:02 +00:00
}
}
fn reconfigure_sink ( & self ) {
unsafe {
2019-01-16 11:32:39 +00:00
ffi ::gst_base_transform_reconfigure_sink ( self . as_ref ( ) . to_glib_none ( ) . 0 ) ;
2017-09-09 13:54:02 +00:00
}
}
fn reconfigure_src ( & self ) {
unsafe {
2019-01-16 11:32:39 +00:00
ffi ::gst_base_transform_reconfigure_src ( self . as_ref ( ) . to_glib_none ( ) . 0 ) ;
2017-09-09 13:54:02 +00:00
}
}
fn set_gap_aware ( & self , gap_aware : bool ) {
unsafe {
2019-01-16 11:32:39 +00:00
ffi ::gst_base_transform_set_gap_aware ( self . as_ref ( ) . to_glib_none ( ) . 0 , gap_aware . to_glib ( ) ) ;
2017-09-09 13:54:02 +00:00
}
}
fn set_in_place ( & self , in_place : bool ) {
unsafe {
2019-01-16 11:32:39 +00:00
ffi ::gst_base_transform_set_in_place ( self . as_ref ( ) . to_glib_none ( ) . 0 , in_place . to_glib ( ) ) ;
2017-09-09 13:54:02 +00:00
}
}
fn set_passthrough ( & self , passthrough : bool ) {
unsafe {
2019-01-16 11:32:39 +00:00
ffi ::gst_base_transform_set_passthrough ( self . as_ref ( ) . to_glib_none ( ) . 0 , passthrough . to_glib ( ) ) ;
2017-09-09 13:54:02 +00:00
}
}
fn set_prefer_passthrough ( & self , prefer_passthrough : bool ) {
unsafe {
2019-01-16 11:32:39 +00:00
ffi ::gst_base_transform_set_prefer_passthrough ( self . as_ref ( ) . to_glib_none ( ) . 0 , prefer_passthrough . to_glib ( ) ) ;
2017-09-09 13:54:02 +00:00
}
}
fn set_qos_enabled ( & self , enabled : bool ) {
unsafe {
2019-01-16 11:32:39 +00:00
ffi ::gst_base_transform_set_qos_enabled ( self . as_ref ( ) . to_glib_none ( ) . 0 , enabled . to_glib ( ) ) ;
2017-09-09 13:54:02 +00:00
}
}
fn update_qos ( & self , proportion : f64 , diff : gst ::ClockTimeDiff , timestamp : gst ::ClockTime ) {
unsafe {
2019-01-16 11:32:39 +00:00
ffi ::gst_base_transform_update_qos ( self . as_ref ( ) . to_glib_none ( ) . 0 , proportion , diff , timestamp . to_glib ( ) ) ;
2017-09-09 13:54:02 +00:00
}
}
2019-01-26 14:26:34 +00:00
fn update_src_caps ( & self , updated_caps : & gst ::Caps ) -> Result < ( ) , glib ::error ::BoolError > {
2017-09-09 13:54:02 +00:00
unsafe {
2019-01-26 14:26:34 +00:00
glib_result_from_gboolean! ( ffi ::gst_base_transform_update_src_caps ( self . as_ref ( ) . to_glib_none ( ) . 0 , updated_caps . to_glib_none ( ) . 0 ) , " Failed to update src caps " )
2017-09-09 13:54:02 +00:00
}
}
fn get_property_qos ( & self ) -> bool {
unsafe {
2018-02-06 14:42:34 +00:00
let mut value = Value ::from_type ( < bool as StaticType > ::static_type ( ) ) ;
2018-12-08 09:05:20 +00:00
gobject_ffi ::g_object_get_property ( self . to_glib_none ( ) . 0 as * mut gobject_ffi ::GObject , b " qos \0 " . as_ptr ( ) as * const _ , value . to_glib_none_mut ( ) . 0 ) ;
2017-11-27 17:16:34 +00:00
value . get ( ) . unwrap ( )
2017-09-09 13:54:02 +00:00
}
}
fn set_property_qos ( & self , qos : bool ) {
unsafe {
2018-12-08 09:05:20 +00:00
gobject_ffi ::g_object_set_property ( self . to_glib_none ( ) . 0 as * mut gobject_ffi ::GObject , b " qos \0 " . as_ptr ( ) as * const _ , Value ::from ( & qos ) . to_glib_none ( ) . 0 ) ;
2017-09-09 13:54:02 +00:00
}
}
fn connect_property_qos_notify < F : Fn ( & Self ) + Send + Sync + 'static > ( & self , f : F ) -> SignalHandlerId {
unsafe {
let f : Box_ < Box_ < Fn ( & Self ) + Send + Sync + 'static > > = Box_ ::new ( Box_ ::new ( f ) ) ;
2019-01-16 11:32:39 +00:00
connect_raw ( self . as_ptr ( ) as * mut _ , b " notify::qos \0 " . as_ptr ( ) as * const _ ,
2017-09-09 13:54:02 +00:00
transmute ( notify_qos_trampoline ::< Self > as usize ) , Box_ ::into_raw ( f ) as * mut _ )
}
}
}
unsafe extern " C " fn notify_qos_trampoline < P > ( this : * mut ffi ::GstBaseTransform , _param_spec : glib_ffi ::gpointer , f : glib_ffi ::gpointer )
where P : IsA < BaseTransform > {
let f : & & ( Fn ( & P ) + Send + Sync + 'static ) = transmute ( f ) ;
2019-01-16 11:32:39 +00:00
f ( & BaseTransform ::from_glib_borrow ( this ) . unsafe_cast ( ) )
2017-09-09 13:54:02 +00:00
}