// This file was generated by gir (d933f9a+) from gir-files (???)
// DO NOT EDIT

use DiscovererStreamInfo;
use ffi;
use glib::object::IsA;
use glib::translate::*;
use glib_ffi;
use gobject_ffi;
use std::mem;
use std::ptr;

glib_wrapper! {
    pub struct DiscovererVideoInfo(Object<ffi::GstDiscovererVideoInfo>): DiscovererStreamInfo;

    match fn {
        get_type => || ffi::gst_discoverer_video_info_get_type(),
    }
}

unsafe impl Send for DiscovererVideoInfo {}
unsafe impl Sync for DiscovererVideoInfo {}

pub trait DiscovererVideoInfoExt {
    fn get_bitrate(&self) -> u32;

    fn get_depth(&self) -> u32;

    fn get_framerate_denom(&self) -> u32;

    fn get_framerate_num(&self) -> u32;

    fn get_height(&self) -> u32;

    fn get_max_bitrate(&self) -> u32;

    fn get_par_denom(&self) -> u32;

    fn get_par_num(&self) -> u32;

    fn get_width(&self) -> u32;

    fn is_image(&self) -> bool;

    fn is_interlaced(&self) -> bool;
}

impl<O: IsA<DiscovererVideoInfo>> DiscovererVideoInfoExt for O {
    fn get_bitrate(&self) -> u32 {
        unsafe {
            ffi::gst_discoverer_video_info_get_bitrate(self.to_glib_none().0)
        }
    }

    fn get_depth(&self) -> u32 {
        unsafe {
            ffi::gst_discoverer_video_info_get_depth(self.to_glib_none().0)
        }
    }

    fn get_framerate_denom(&self) -> u32 {
        unsafe {
            ffi::gst_discoverer_video_info_get_framerate_denom(self.to_glib_none().0)
        }
    }

    fn get_framerate_num(&self) -> u32 {
        unsafe {
            ffi::gst_discoverer_video_info_get_framerate_num(self.to_glib_none().0)
        }
    }

    fn get_height(&self) -> u32 {
        unsafe {
            ffi::gst_discoverer_video_info_get_height(self.to_glib_none().0)
        }
    }

    fn get_max_bitrate(&self) -> u32 {
        unsafe {
            ffi::gst_discoverer_video_info_get_max_bitrate(self.to_glib_none().0)
        }
    }

    fn get_par_denom(&self) -> u32 {
        unsafe {
            ffi::gst_discoverer_video_info_get_par_denom(self.to_glib_none().0)
        }
    }

    fn get_par_num(&self) -> u32 {
        unsafe {
            ffi::gst_discoverer_video_info_get_par_num(self.to_glib_none().0)
        }
    }

    fn get_width(&self) -> u32 {
        unsafe {
            ffi::gst_discoverer_video_info_get_width(self.to_glib_none().0)
        }
    }

    fn is_image(&self) -> bool {
        unsafe {
            from_glib(ffi::gst_discoverer_video_info_is_image(self.to_glib_none().0))
        }
    }

    fn is_interlaced(&self) -> bool {
        unsafe {
            from_glib(ffi::gst_discoverer_video_info_is_interlaced(self.to_glib_none().0))
        }
    }
}
