From 22ab56895dc3af47123cd2a61c6e6c557051a7b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 20 Nov 2017 13:22:26 +0200 Subject: [PATCH] Remove Rs prefix from everything We have proper namespaces in Rust --- gst-plugin-audiofx/src/audioecho.rs | 33 ++++++--------- gst-plugin-file/src/filesink.rs | 10 ++--- gst-plugin-file/src/filesrc.rs | 16 +++---- gst-plugin-flv/src/flvdemux.rs | 33 ++++++++------- gst-plugin-http/src/httpsrc.rs | 28 ++++++------ gst-plugin-simple/src/demuxer.rs | 66 ++++++++++++++--------------- gst-plugin-simple/src/sink.rs | 40 ++++++++--------- gst-plugin-simple/src/source.rs | 56 ++++++++++++------------ gst-plugin/src/adapter.rs | 18 +++++--- gst-plugin/src/base_sink.rs | 60 +++++++++++++------------- gst-plugin/src/base_src.rs | 64 ++++++++++++++-------------- gst-plugin/src/base_transform.rs | 62 ++++++++++++++------------- gst-plugin/src/element.rs | 38 ++++++++--------- gst-plugin/src/properties.rs | 16 ++++++- 14 files changed, 273 insertions(+), 267 deletions(-) diff --git a/gst-plugin-audiofx/src/audioecho.rs b/gst-plugin-audiofx/src/audioecho.rs index 2be992c2..0095f629 100644 --- a/gst-plugin-audiofx/src/audioecho.rs +++ b/gst-plugin-audiofx/src/audioecho.rs @@ -98,7 +98,7 @@ static PROPERTIES: [Property; 4] = [ ]; impl AudioEcho { - fn new(_transform: &RsBaseTransform) -> Self { + fn new(_transform: &BaseTransform) -> Self { Self { cat: gst::DebugCategory::new( "rsaudiofx", @@ -110,7 +110,7 @@ impl AudioEcho { } } - fn class_init(klass: &mut RsBaseTransformClass) { + fn class_init(klass: &mut BaseTransformClass) { klass.set_metadata( "Audio echo", "Filter/Effect/Audio", @@ -154,7 +154,7 @@ impl AudioEcho { klass.configure(BaseTransformMode::AlwaysInPlace, false, false); } - fn init(element: &RsBaseTransform) -> Box> { + fn init(element: &BaseTransform) -> Box> { let imp = Self::new(element); Box::new(imp) } @@ -176,7 +176,7 @@ impl AudioEcho { } } -impl ObjectImpl for AudioEcho { +impl ObjectImpl for AudioEcho { fn set_property(&self, _obj: &glib::Object, id: u32, value: &glib::Value) { let prop = &PROPERTIES[id as usize]; @@ -230,14 +230,10 @@ impl ObjectImpl for AudioEcho { } } -impl ElementImpl for AudioEcho {} +impl ElementImpl for AudioEcho {} -impl BaseTransformImpl for AudioEcho { - fn transform_ip( - &self, - _element: &RsBaseTransform, - buf: &mut gst::BufferRef, - ) -> gst::FlowReturn { +impl BaseTransformImpl for AudioEcho { + fn transform_ip(&self, _element: &BaseTransform, buf: &mut gst::BufferRef) -> gst::FlowReturn { let mut settings = *self.settings.lock().unwrap(); settings.delay = cmp::min(settings.max_delay, settings.delay); @@ -267,12 +263,7 @@ impl BaseTransformImpl for AudioEcho { gst::FlowReturn::Ok } - fn set_caps( - &self, - _element: &RsBaseTransform, - incaps: &gst::Caps, - outcaps: &gst::Caps, - ) -> bool { + fn set_caps(&self, _element: &BaseTransform, incaps: &gst::Caps, outcaps: &gst::Caps) -> bool { if incaps != outcaps { return false; } @@ -294,7 +285,7 @@ impl BaseTransformImpl for AudioEcho { true } - fn stop(&self, _element: &RsBaseTransform) -> bool { + fn stop(&self, _element: &BaseTransform) -> bool { // Drop state let _ = self.state.lock().unwrap().take(); @@ -304,16 +295,16 @@ impl BaseTransformImpl for AudioEcho { struct AudioEchoStatic; -impl ImplTypeStatic for AudioEchoStatic { +impl ImplTypeStatic for AudioEchoStatic { fn get_name(&self) -> &str { "AudioEcho" } - fn new(&self, element: &RsBaseTransform) -> Box> { + fn new(&self, element: &BaseTransform) -> Box> { AudioEcho::init(element) } - fn class_init(&self, klass: &mut RsBaseTransformClass) { + fn class_init(&self, klass: &mut BaseTransformClass) { AudioEcho::class_init(klass); } } diff --git a/gst-plugin-file/src/filesink.rs b/gst-plugin-file/src/filesink.rs index bef05e3b..0fb264f5 100644 --- a/gst-plugin-file/src/filesink.rs +++ b/gst-plugin-file/src/filesink.rs @@ -33,7 +33,7 @@ pub struct FileSink { } impl FileSink { - pub fn new(_sink: &RsBaseSink) -> FileSink { + pub fn new(_sink: &BaseSink) -> FileSink { FileSink { streaming_state: StreamingState::Stopped, cat: gst::DebugCategory::new( @@ -44,7 +44,7 @@ impl FileSink { } } - pub fn new_boxed(sink: &RsBaseSink) -> Box { + pub fn new_boxed(sink: &BaseSink) -> Box { Box::new(FileSink::new(sink)) } } @@ -64,7 +64,7 @@ impl SinkImpl for FileSink { Box::new(validate_uri) } - fn start(&mut self, sink: &RsBaseSink, uri: Url) -> Result<(), ErrorMessage> { + fn start(&mut self, sink: &BaseSink, uri: Url) -> Result<(), ErrorMessage> { if let StreamingState::Started { .. } = self.streaming_state { return Err(error_msg!( gst::LibraryError::Failed, @@ -113,13 +113,13 @@ impl SinkImpl for FileSink { Ok(()) } - fn stop(&mut self, _sink: &RsBaseSink) -> Result<(), ErrorMessage> { + fn stop(&mut self, _sink: &BaseSink) -> Result<(), ErrorMessage> { self.streaming_state = StreamingState::Stopped; Ok(()) } - fn render(&mut self, sink: &RsBaseSink, buffer: &gst::BufferRef) -> Result<(), FlowError> { + fn render(&mut self, sink: &BaseSink, buffer: &gst::BufferRef) -> Result<(), FlowError> { let cat = self.cat; let streaming_state = &mut self.streaming_state; diff --git a/gst-plugin-file/src/filesrc.rs b/gst-plugin-file/src/filesrc.rs index a739b2c2..17bfad71 100644 --- a/gst-plugin-file/src/filesrc.rs +++ b/gst-plugin-file/src/filesrc.rs @@ -31,7 +31,7 @@ pub struct FileSrc { } impl FileSrc { - pub fn new(_src: &RsBaseSrc) -> FileSrc { + pub fn new(_src: &BaseSrc) -> FileSrc { FileSrc { streaming_state: StreamingState::Stopped, cat: gst::DebugCategory::new( @@ -42,7 +42,7 @@ impl FileSrc { } } - pub fn new_boxed(src: &RsBaseSrc) -> Box { + pub fn new_boxed(src: &BaseSrc) -> Box { Box::new(FileSrc::new(src)) } } @@ -62,11 +62,11 @@ impl SourceImpl for FileSrc { Box::new(validate_uri) } - fn is_seekable(&self, _src: &RsBaseSrc) -> bool { + fn is_seekable(&self, _src: &BaseSrc) -> bool { true } - fn get_size(&self, _src: &RsBaseSrc) -> Option { + fn get_size(&self, _src: &BaseSrc) -> Option { if let StreamingState::Started { ref file, .. } = self.streaming_state { file.metadata().ok().map(|m| m.len()) } else { @@ -74,7 +74,7 @@ impl SourceImpl for FileSrc { } } - fn start(&mut self, src: &RsBaseSrc, uri: Url) -> Result<(), ErrorMessage> { + fn start(&mut self, src: &BaseSrc, uri: Url) -> Result<(), ErrorMessage> { if let StreamingState::Started { .. } = self.streaming_state { return Err(error_msg!( gst::LibraryError::Failed, @@ -122,7 +122,7 @@ impl SourceImpl for FileSrc { Ok(()) } - fn stop(&mut self, _src: &RsBaseSrc) -> Result<(), ErrorMessage> { + fn stop(&mut self, _src: &BaseSrc) -> Result<(), ErrorMessage> { self.streaming_state = StreamingState::Stopped; Ok(()) @@ -130,7 +130,7 @@ impl SourceImpl for FileSrc { fn fill( &mut self, - src: &RsBaseSrc, + src: &BaseSrc, offset: u64, _: u32, buffer: &mut gst::BufferRef, @@ -190,7 +190,7 @@ impl SourceImpl for FileSrc { Ok(()) } - fn seek(&mut self, _src: &RsBaseSrc, _: u64, _: Option) -> Result<(), ErrorMessage> { + fn seek(&mut self, _src: &BaseSrc, _: u64, _: Option) -> Result<(), ErrorMessage> { Ok(()) } } diff --git a/gst-plugin-flv/src/flvdemux.rs b/gst-plugin-flv/src/flvdemux.rs index 9869dec5..ca718fb3 100644 --- a/gst-plugin-flv/src/flvdemux.rs +++ b/gst-plugin-flv/src/flvdemux.rs @@ -17,6 +17,7 @@ use flavors::parser as flavors; use gst_plugin::error::*; use gst_plugin::adapter::*; use gst_plugin::bytes::*; +use gst_plugin::element::*; use gst_plugin_simple::demuxer::*; use gst; @@ -488,7 +489,7 @@ pub struct FlvDemux { } impl FlvDemux { - pub fn new(_demuxer: &RsDemuxer) -> FlvDemux { + pub fn new(_demuxer: &Element) -> FlvDemux { FlvDemux { cat: gst::DebugCategory::new( "rsflvdemux", @@ -501,13 +502,13 @@ impl FlvDemux { } } - pub fn new_boxed(demuxer: &RsDemuxer) -> Box { + pub fn new_boxed(demuxer: &Element) -> Box { Box::new(Self::new(demuxer)) } fn handle_script_tag( &mut self, - demuxer: &RsDemuxer, + demuxer: &Element, tag_header: &flavors::TagHeader, ) -> Result { if self.adapter.get_available() < (15 + tag_header.data_size) as usize { @@ -575,7 +576,7 @@ impl FlvDemux { fn update_audio_stream( &mut self, - demuxer: &RsDemuxer, + demuxer: &Element, data_header: &flavors::AudioDataHeader, ) -> Result { gst_trace!( @@ -629,7 +630,7 @@ impl FlvDemux { fn handle_audio_tag( &mut self, - demuxer: &RsDemuxer, + demuxer: &Element, tag_header: &flavors::TagHeader, data_header: &flavors::AudioDataHeader, ) -> Result { @@ -748,7 +749,7 @@ impl FlvDemux { fn update_video_stream( &mut self, - demuxer: &RsDemuxer, + demuxer: &Element, data_header: &flavors::VideoDataHeader, ) -> Result { gst_trace!( @@ -803,7 +804,7 @@ impl FlvDemux { fn handle_video_tag( &mut self, - demuxer: &RsDemuxer, + demuxer: &Element, tag_header: &flavors::TagHeader, data_header: &flavors::VideoDataHeader, ) -> Result { @@ -944,7 +945,7 @@ impl FlvDemux { Ok(HandleBufferResult::BufferForStream(VIDEO_STREAM_ID, buffer)) } - fn update_state(&mut self, demuxer: &RsDemuxer) -> Result { + fn update_state(&mut self, demuxer: &Element) -> Result { match self.state { State::Stopped => unreachable!(), State::NeedHeader => { @@ -1090,7 +1091,7 @@ impl FlvDemux { impl DemuxerImpl for FlvDemux { fn start( &mut self, - demuxer: &RsDemuxer, + demuxer: &Element, _upstream_size: Option, _random_access: bool, ) -> Result<(), ErrorMessage> { @@ -1099,7 +1100,7 @@ impl DemuxerImpl for FlvDemux { Ok(()) } - fn stop(&mut self, demuxer: &RsDemuxer) -> Result<(), ErrorMessage> { + fn stop(&mut self, demuxer: &Element) -> Result<(), ErrorMessage> { self.state = State::Stopped; self.adapter.clear(); self.streaming_state = None; @@ -1109,7 +1110,7 @@ impl DemuxerImpl for FlvDemux { fn seek( &mut self, - demuxer: &RsDemuxer, + demuxer: &Element, start: gst::ClockTime, stop: gst::ClockTime, ) -> Result { @@ -1118,7 +1119,7 @@ impl DemuxerImpl for FlvDemux { fn handle_buffer( &mut self, - demuxer: &RsDemuxer, + demuxer: &Element, buffer: Option, ) -> Result { if let Some(buffer) = buffer { @@ -1128,16 +1129,16 @@ impl DemuxerImpl for FlvDemux { self.update_state(demuxer) } - fn end_of_stream(&mut self, demuxer: &RsDemuxer) -> Result<(), ErrorMessage> { + fn end_of_stream(&mut self, demuxer: &Element) -> Result<(), ErrorMessage> { // nothing to do here, all data we have left is incomplete Ok(()) } - fn is_seekable(&self, demuxer: &RsDemuxer) -> bool { + fn is_seekable(&self, demuxer: &Element) -> bool { false } - fn get_position(&self, demuxer: &RsDemuxer) -> gst::ClockTime { + fn get_position(&self, demuxer: &Element) -> gst::ClockTime { if let Some(StreamingState { last_position, .. }) = self.streaming_state { return last_position; } @@ -1145,7 +1146,7 @@ impl DemuxerImpl for FlvDemux { gst::CLOCK_TIME_NONE } - fn get_duration(&self, demuxer: &RsDemuxer) -> gst::ClockTime { + fn get_duration(&self, demuxer: &Element) -> gst::ClockTime { if let Some(StreamingState { metadata: Some(Metadata { duration, .. }), .. diff --git a/gst-plugin-http/src/httpsrc.rs b/gst-plugin-http/src/httpsrc.rs index e7e126d0..405e4881 100644 --- a/gst-plugin-http/src/httpsrc.rs +++ b/gst-plugin-http/src/httpsrc.rs @@ -42,7 +42,7 @@ pub struct HttpSrc { } impl HttpSrc { - pub fn new(_src: &RsBaseSrc) -> HttpSrc { + pub fn new(_src: &BaseSrc) -> HttpSrc { HttpSrc { streaming_state: StreamingState::Stopped, cat: gst::DebugCategory::new( @@ -54,13 +54,13 @@ impl HttpSrc { } } - pub fn new_boxed(src: &RsBaseSrc) -> Box { + pub fn new_boxed(src: &BaseSrc) -> Box { Box::new(HttpSrc::new(src)) } fn do_request( &self, - src: &RsBaseSrc, + src: &BaseSrc, uri: Url, start: u64, stop: Option, @@ -109,12 +109,10 @@ impl HttpSrc { let seekable = size.is_some() && accept_byte_ranges; - let position = if let Some( - &ContentRange(ContentRangeSpec::Bytes { - range: Some((range_start, _)), - .. - }), - ) = response.headers().get() + let position = if let Some(&ContentRange(ContentRangeSpec::Bytes { + range: Some((range_start, _)), + .. + })) = response.headers().get() { range_start } else { @@ -158,34 +156,34 @@ impl SourceImpl for HttpSrc { Box::new(validate_uri) } - fn is_seekable(&self, _src: &RsBaseSrc) -> bool { + fn is_seekable(&self, _src: &BaseSrc) -> bool { match self.streaming_state { StreamingState::Started { seekable, .. } => seekable, _ => false, } } - fn get_size(&self, _src: &RsBaseSrc) -> Option { + fn get_size(&self, _src: &BaseSrc) -> Option { match self.streaming_state { StreamingState::Started { size, .. } => size, _ => None, } } - fn start(&mut self, src: &RsBaseSrc, uri: Url) -> Result<(), ErrorMessage> { + fn start(&mut self, src: &BaseSrc, uri: Url) -> Result<(), ErrorMessage> { self.streaming_state = StreamingState::Stopped; self.streaming_state = try!(self.do_request(src, uri, 0, None)); Ok(()) } - fn stop(&mut self, _src: &RsBaseSrc) -> Result<(), ErrorMessage> { + fn stop(&mut self, _src: &BaseSrc) -> Result<(), ErrorMessage> { self.streaming_state = StreamingState::Stopped; Ok(()) } - fn seek(&mut self, src: &RsBaseSrc, start: u64, stop: Option) -> Result<(), ErrorMessage> { + fn seek(&mut self, src: &BaseSrc, start: u64, stop: Option) -> Result<(), ErrorMessage> { let (position, old_stop, uri) = match self.streaming_state { StreamingState::Started { position, @@ -210,7 +208,7 @@ impl SourceImpl for HttpSrc { fn fill( &mut self, - src: &RsBaseSrc, + src: &BaseSrc, offset: u64, _: u32, buffer: &mut gst::BufferRef, diff --git a/gst-plugin-simple/src/demuxer.rs b/gst-plugin-simple/src/demuxer.rs index de2dec15..61dca2e5 100644 --- a/gst-plugin-simple/src/demuxer.rs +++ b/gst-plugin-simple/src/demuxer.rs @@ -46,33 +46,31 @@ pub enum HandleBufferResult { Eos(Option), } -pub type RsDemuxer = RsElement; - pub trait DemuxerImpl: Send + 'static { fn start( &mut self, - demuxer: &RsDemuxer, + demuxer: &Element, upstream_size: Option, random_access: bool, ) -> Result<(), ErrorMessage>; - fn stop(&mut self, demuxer: &RsDemuxer) -> Result<(), ErrorMessage>; + fn stop(&mut self, demuxer: &Element) -> Result<(), ErrorMessage>; fn seek( &mut self, - demuxer: &RsDemuxer, + demuxer: &Element, start: gst::ClockTime, stop: gst::ClockTime, ) -> Result; fn handle_buffer( &mut self, - demuxer: &RsDemuxer, + demuxer: &Element, buffer: Option, ) -> Result; - fn end_of_stream(&mut self, demuxer: &RsDemuxer) -> Result<(), ErrorMessage>; + fn end_of_stream(&mut self, demuxer: &Element) -> Result<(), ErrorMessage>; - fn is_seekable(&self, demuxer: &RsDemuxer) -> bool; - fn get_position(&self, demuxer: &RsDemuxer) -> gst::ClockTime; - fn get_duration(&self, demuxer: &RsDemuxer) -> gst::ClockTime; + fn is_seekable(&self, demuxer: &Element) -> bool; + fn get_position(&self, demuxer: &Element) -> gst::ClockTime; + fn get_duration(&self, demuxer: &Element) -> gst::ClockTime; } #[derive(Debug)] @@ -99,7 +97,7 @@ pub struct DemuxerInfo { pub classification: String, pub author: String, pub rank: u32, - pub create_instance: fn(&RsDemuxer) -> Box, + pub create_instance: fn(&Element) -> Box, pub input_caps: gst::Caps, pub output_caps: gst::Caps, } @@ -134,7 +132,7 @@ unsafe impl Send for UniqueFlowCombiner {} unsafe impl Sync for UniqueFlowCombiner {} impl Demuxer { - fn new(demuxer: &RsDemuxer, sinkpad: gst::Pad, demuxer_info: &DemuxerInfo) -> Self { + fn new(element: &Element, sinkpad: gst::Pad, demuxer_info: &DemuxerInfo) -> Self { Self { cat: gst::DebugCategory::new( "rsdemux", @@ -145,11 +143,11 @@ impl Demuxer { flow_combiner: Mutex::new(Default::default()), group_id: Mutex::new(gst::util_group_id_next()), srcpads: Mutex::new(BTreeMap::new()), - imp: Mutex::new((demuxer_info.create_instance)(demuxer)), + imp: Mutex::new((demuxer_info.create_instance)(element)), } } - fn class_init(klass: &mut RsElementClass, demuxer_info: &DemuxerInfo) { + fn class_init(klass: &mut ElementClass, demuxer_info: &DemuxerInfo) { klass.set_metadata( &demuxer_info.long_name, &demuxer_info.classification, @@ -174,7 +172,7 @@ impl Demuxer { klass.add_pad_template(pad_template); } - fn init(element: &RsElement, demuxer_info: &DemuxerInfo) -> Box> { + fn init(element: &Element, demuxer_info: &DemuxerInfo) -> Box> { let templ = element.get_pad_template("sink").unwrap(); let sinkpad = gst::Pad::new_from_template(&templ, "sink"); sinkpad.set_activate_function(Demuxer::sink_activate); @@ -187,7 +185,7 @@ impl Demuxer { Box::new(imp) } - fn add_stream(&self, element: &RsElement, index: u32, caps: gst::Caps, stream_id: &str) { + fn add_stream(&self, element: &Element, index: u32, caps: gst::Caps, stream_id: &str) { let mut srcpads = self.srcpads.lock().unwrap(); assert!(!srcpads.contains_key(&index)); @@ -217,12 +215,12 @@ impl Demuxer { srcpads.insert(index, pad); } - fn added_all_streams(&self, element: &RsElement) { + fn added_all_streams(&self, element: &Element) { element.no_more_pads(); *self.group_id.lock().unwrap() = gst::util_group_id_next(); } - fn stream_format_changed(&self, _element: &RsElement, index: u32, caps: gst::Caps) { + fn stream_format_changed(&self, _element: &Element, index: u32, caps: gst::Caps) { let srcpads = self.srcpads.lock().unwrap(); if let Some(pad) = srcpads.get(&index) { @@ -230,7 +228,7 @@ impl Demuxer { } } - fn stream_eos(&self, _element: &RsElement, index: Option) { + fn stream_eos(&self, _element: &Element, index: Option) { let srcpads = self.srcpads.lock().unwrap(); let event = gst::Event::new_eos().build(); @@ -246,7 +244,7 @@ impl Demuxer { fn stream_push_buffer( &self, - _element: &RsElement, + _element: &Element, index: u32, buffer: gst::Buffer, ) -> gst::FlowReturn { @@ -262,7 +260,7 @@ impl Demuxer { } } - fn remove_all_streams(&self, element: &RsElement) { + fn remove_all_streams(&self, element: &Element) { self.flow_combiner.lock().unwrap().clear(); let mut srcpads = self.srcpads.lock().unwrap(); for (_, pad) in srcpads.iter().by_ref() { @@ -294,7 +292,7 @@ impl Demuxer { } } - fn start(&self, element: &RsDemuxer, upstream_size: Option, random_access: bool) -> bool { + fn start(&self, element: &Element, upstream_size: Option, random_access: bool) -> bool { let demuxer_impl = &mut self.imp.lock().unwrap(); gst_debug!( @@ -318,7 +316,7 @@ impl Demuxer { } } - fn stop(&self, element: &RsDemuxer) -> bool { + fn stop(&self, element: &Element) -> bool { let demuxer_impl = &mut self.imp.lock().unwrap(); gst_debug!(self.cat, obj: element, "Stopping"); @@ -346,7 +344,7 @@ impl Demuxer { .as_ref() .cloned() .unwrap() - .downcast::() + .downcast::() .unwrap(); let demuxer = element.get_impl().downcast_ref::().unwrap(); @@ -385,7 +383,7 @@ impl Demuxer { .as_ref() .cloned() .unwrap() - .downcast::() + .downcast::() .unwrap(); let demuxer = element.get_impl().downcast_ref::().unwrap(); @@ -483,7 +481,7 @@ impl Demuxer { .as_ref() .cloned() .unwrap() - .downcast::() + .downcast::() .unwrap(); let demuxer = element.get_impl().downcast_ref::().unwrap(); @@ -518,7 +516,7 @@ impl Demuxer { .as_ref() .cloned() .unwrap() - .downcast::() + .downcast::() .unwrap(); let demuxer = element.get_impl().downcast_ref::().unwrap(); @@ -593,7 +591,7 @@ impl Demuxer { fn seek( &self, - element: &RsDemuxer, + element: &Element, start: gst::ClockTime, stop: gst::ClockTime, offset: &mut u64, @@ -635,12 +633,12 @@ impl Demuxer { } } -impl ObjectImpl for Demuxer {} +impl ObjectImpl for Demuxer {} -impl ElementImpl for Demuxer { +impl ElementImpl for Demuxer { fn change_state( &self, - element: &RsElement, + element: &Element, transition: gst::StateChange, ) -> gst::StateChangeReturn { let mut ret = gst::StateChangeReturn::Success; @@ -681,16 +679,16 @@ struct DemuxerStatic { demuxer_info: DemuxerInfo, } -impl ImplTypeStatic for DemuxerStatic { +impl ImplTypeStatic for DemuxerStatic { fn get_name(&self) -> &str { self.name.as_str() } - fn new(&self, element: &RsElement) -> Box> { + fn new(&self, element: &Element) -> Box> { Demuxer::init(element, &self.demuxer_info) } - fn class_init(&self, klass: &mut RsElementClass) { + fn class_init(&self, klass: &mut ElementClass) { Demuxer::class_init(klass, &self.demuxer_info); } } diff --git a/gst-plugin-simple/src/sink.rs b/gst-plugin-simple/src/sink.rs index 7bd329e1..4c102f80 100644 --- a/gst-plugin-simple/src/sink.rs +++ b/gst-plugin-simple/src/sink.rs @@ -23,16 +23,16 @@ use gst_plugin::base_sink::*; use gst_plugin::uri_handler::*; use gst_plugin::error::*; -pub use gst_plugin::base_sink::RsBaseSink; +pub use gst_plugin::base_sink::BaseSink; use UriValidator; pub trait SinkImpl: Send + 'static { fn uri_validator(&self) -> Box; - fn start(&mut self, sink: &RsBaseSink, uri: Url) -> Result<(), ErrorMessage>; - fn stop(&mut self, sink: &RsBaseSink) -> Result<(), ErrorMessage>; - fn render(&mut self, sink: &RsBaseSink, buffer: &gst::BufferRef) -> Result<(), FlowError>; + fn start(&mut self, sink: &BaseSink, uri: Url) -> Result<(), ErrorMessage>; + fn stop(&mut self, sink: &BaseSink) -> Result<(), ErrorMessage>; + fn render(&mut self, sink: &BaseSink, buffer: &gst::BufferRef) -> Result<(), FlowError>; } struct Sink { @@ -53,7 +53,7 @@ static PROPERTIES: [Property; 1] = [ ]; impl Sink { - fn new(sink: &RsBaseSink, sink_info: &SinkInfo) -> Self { + fn new(sink: &BaseSink, sink_info: &SinkInfo) -> Self { let sink_impl = (sink_info.create_instance)(sink); Self { @@ -68,7 +68,7 @@ impl Sink { } } - fn class_init(klass: &mut RsBaseSinkClass, sink_info: &SinkInfo) { + fn class_init(klass: &mut BaseSinkClass, sink_info: &SinkInfo) { klass.set_metadata( &sink_info.long_name, &sink_info.classification, @@ -88,7 +88,7 @@ impl Sink { klass.install_properties(&PROPERTIES); } - fn init(element: &RsBaseSink, sink_info: &SinkInfo) -> Box> { + fn init(element: &BaseSink, sink_info: &SinkInfo) -> Box> { element.set_blocksize(4096); let imp = Self::new(element, sink_info); @@ -101,7 +101,7 @@ impl Sink { } fn set_uri(&self, element: &glib::Object, uri_str: Option) -> Result<(), glib::Error> { - let sink = element.clone().dynamic_cast::().unwrap(); + let sink = element.clone().dynamic_cast::().unwrap(); let uri_storage = &mut self.uri.lock().unwrap(); @@ -135,7 +135,7 @@ impl Sink { } } -impl ObjectImpl for Sink { +impl ObjectImpl for Sink { fn set_property(&self, obj: &glib::Object, id: u32, value: &glib::Value) { let prop = &PROPERTIES[id as usize]; @@ -157,10 +157,10 @@ impl ObjectImpl for Sink { } } -impl ElementImpl for Sink {} +impl ElementImpl for Sink {} -impl BaseSinkImpl for Sink { - fn start(&self, sink: &RsBaseSink) -> bool { +impl BaseSinkImpl for Sink { + fn start(&self, sink: &BaseSink) -> bool { gst_debug!(self.cat, obj: sink, "Starting"); // Don't keep the URI locked while we call start later @@ -192,7 +192,7 @@ impl BaseSinkImpl for Sink { } } - fn stop(&self, sink: &RsBaseSink) -> bool { + fn stop(&self, sink: &BaseSink) -> bool { let sink_impl = &mut self.imp.lock().unwrap(); gst_debug!(self.cat, obj: sink, "Stopping"); @@ -212,7 +212,7 @@ impl BaseSinkImpl for Sink { } } - fn render(&self, sink: &RsBaseSink, buffer: &gst::BufferRef) -> gst::FlowReturn { + fn render(&self, sink: &BaseSink, buffer: &gst::BufferRef) -> gst::FlowReturn { let sink_impl = &mut self.imp.lock().unwrap(); gst_trace!(self.cat, obj: sink, "Rendering buffer {:?}", buffer,); @@ -250,7 +250,7 @@ pub struct SinkInfo { pub classification: String, pub author: String, pub rank: u32, - pub create_instance: fn(&RsBaseSink) -> Box, + pub create_instance: fn(&BaseSink) -> Box, pub protocols: Vec, } @@ -259,16 +259,16 @@ struct SinkStatic { sink_info: SinkInfo, } -impl ImplTypeStatic for SinkStatic { +impl ImplTypeStatic for SinkStatic { fn get_name(&self) -> &str { self.name.as_str() } - fn new(&self, element: &RsBaseSink) -> Box> { + fn new(&self, element: &BaseSink) -> Box> { Sink::init(element, &self.sink_info) } - fn class_init(&self, klass: &mut RsBaseSinkClass) { + fn class_init(&self, klass: &mut BaseSinkClass) { Sink::class_init(klass, &self.sink_info); } @@ -277,8 +277,8 @@ impl ImplTypeStatic for SinkStatic { } } -impl URIHandlerImplStatic for SinkStatic { - fn get_impl<'a>(&self, imp: &'a Box>) -> &'a URIHandlerImpl { +impl URIHandlerImplStatic for SinkStatic { + fn get_impl<'a>(&self, imp: &'a Box>) -> &'a URIHandlerImpl { imp.downcast_ref::().unwrap() } diff --git a/gst-plugin-simple/src/source.rs b/gst-plugin-simple/src/source.rs index 33006242..c4079d33 100644 --- a/gst-plugin-simple/src/source.rs +++ b/gst-plugin-simple/src/source.rs @@ -25,26 +25,26 @@ use gst_plugin::base_src::*; use gst_plugin::uri_handler::*; use gst_plugin::error::*; -pub use gst_plugin::base_src::RsBaseSrc; +pub use gst_plugin::base_src::BaseSrc; use UriValidator; pub trait SourceImpl: Send + 'static { fn uri_validator(&self) -> Box; - fn is_seekable(&self, src: &RsBaseSrc) -> bool; - fn get_size(&self, src: &RsBaseSrc) -> Option; + fn is_seekable(&self, src: &BaseSrc) -> bool; + fn get_size(&self, src: &BaseSrc) -> Option; - fn start(&mut self, src: &RsBaseSrc, uri: Url) -> Result<(), ErrorMessage>; - fn stop(&mut self, src: &RsBaseSrc) -> Result<(), ErrorMessage>; + fn start(&mut self, src: &BaseSrc, uri: Url) -> Result<(), ErrorMessage>; + fn stop(&mut self, src: &BaseSrc) -> Result<(), ErrorMessage>; fn fill( &mut self, - src: &RsBaseSrc, + src: &BaseSrc, offset: u64, length: u32, buffer: &mut gst::BufferRef, ) -> Result<(), FlowError>; - fn seek(&mut self, src: &RsBaseSrc, start: u64, stop: Option) -> Result<(), ErrorMessage>; + fn seek(&mut self, src: &BaseSrc, start: u64, stop: Option) -> Result<(), ErrorMessage>; } struct Source { @@ -66,7 +66,7 @@ static PROPERTIES: [Property; 1] = [ ]; impl Source { - fn new(source: &RsBaseSrc, source_info: &SourceInfo) -> Self { + fn new(source: &BaseSrc, source_info: &SourceInfo) -> Self { let source_impl = (source_info.create_instance)(source); Self { @@ -82,7 +82,7 @@ impl Source { } } - fn class_init(klass: &mut RsBaseSrcClass, source_info: &SourceInfo) { + fn class_init(klass: &mut BaseSrcClass, source_info: &SourceInfo) { klass.set_metadata( &source_info.long_name, &source_info.classification, @@ -102,7 +102,7 @@ impl Source { klass.install_properties(&PROPERTIES); } - fn init(element: &RsBaseSrc, source_info: &SourceInfo) -> Box> { + fn init(element: &BaseSrc, source_info: &SourceInfo) -> Box> { element.set_blocksize(4096); let imp = Self::new(element, source_info); @@ -115,7 +115,7 @@ impl Source { } fn set_uri(&self, element: &glib::Object, uri_str: Option) -> Result<(), glib::Error> { - let src = element.clone().dynamic_cast::().unwrap(); + let src = element.clone().dynamic_cast::().unwrap(); let uri_storage = &mut self.uri.lock().unwrap(); @@ -149,7 +149,7 @@ impl Source { } } -impl ObjectImpl for Source { +impl ObjectImpl for Source { fn set_property(&self, obj: &glib::Object, id: u32, value: &glib::Value) { let prop = &PROPERTIES[id as usize]; @@ -171,10 +171,10 @@ impl ObjectImpl for Source { } } -impl ElementImpl for Source {} +impl ElementImpl for Source {} -impl BaseSrcImpl for Source { - fn start(&self, src: &RsBaseSrc) -> bool { +impl BaseSrcImpl for Source { + fn start(&self, src: &BaseSrc) -> bool { gst_debug!(self.cat, obj: src, "Starting"); // Don't keep the URI locked while we call start later @@ -206,7 +206,7 @@ impl BaseSrcImpl for Source { } } - fn stop(&self, src: &RsBaseSrc) -> bool { + fn stop(&self, src: &BaseSrc) -> bool { let source_impl = &mut self.imp.lock().unwrap(); gst_debug!(self.cat, obj: src, "Stopping"); @@ -226,7 +226,7 @@ impl BaseSrcImpl for Source { } } - fn query(&self, src: &RsBaseSrc, query: &mut gst::QueryRef) -> bool { + fn query(&self, src: &BaseSrc, query: &mut gst::QueryRef) -> bool { use gst::QueryView; match query.view_mut() { @@ -238,12 +238,12 @@ impl BaseSrcImpl for Source { _ => (), } - BaseSrc::parent_query(src, query) + BaseSrcBase::parent_query(src, query) } fn fill( &self, - src: &RsBaseSrc, + src: &BaseSrc, offset: u64, length: u32, buffer: &mut gst::BufferRef, @@ -274,7 +274,7 @@ impl BaseSrcImpl for Source { } } - fn do_seek(&self, src: &RsBaseSrc, segment: &mut gst::Segment) -> bool { + fn do_seek(&self, src: &BaseSrc, segment: &mut gst::Segment) -> bool { let source_impl = &mut self.imp.lock().unwrap(); let start = segment.get_start(); @@ -295,12 +295,12 @@ impl BaseSrcImpl for Source { } } - fn is_seekable(&self, src: &RsBaseSrc) -> bool { + fn is_seekable(&self, src: &BaseSrc) -> bool { let source_impl = &self.imp.lock().unwrap(); source_impl.is_seekable(src) } - fn get_size(&self, src: &RsBaseSrc) -> Option { + fn get_size(&self, src: &BaseSrc) -> Option { let source_impl = &self.imp.lock().unwrap(); source_impl.get_size(src) } @@ -323,7 +323,7 @@ pub struct SourceInfo { pub classification: String, pub author: String, pub rank: u32, - pub create_instance: fn(&RsBaseSrc) -> Box, + pub create_instance: fn(&BaseSrc) -> Box, pub protocols: Vec, pub push_only: bool, } @@ -333,16 +333,16 @@ struct SourceStatic { source_info: SourceInfo, } -impl ImplTypeStatic for SourceStatic { +impl ImplTypeStatic for SourceStatic { fn get_name(&self) -> &str { self.name.as_str() } - fn new(&self, element: &RsBaseSrc) -> Box> { + fn new(&self, element: &BaseSrc) -> Box> { Source::init(element, &self.source_info) } - fn class_init(&self, klass: &mut RsBaseSrcClass) { + fn class_init(&self, klass: &mut BaseSrcClass) { Source::class_init(klass, &self.source_info); } @@ -351,8 +351,8 @@ impl ImplTypeStatic for SourceStatic { } } -impl URIHandlerImplStatic for SourceStatic { - fn get_impl<'a>(&self, imp: &'a Box>) -> &'a URIHandlerImpl { +impl URIHandlerImplStatic for SourceStatic { + fn get_impl<'a>(&self, imp: &'a Box>) -> &'a URIHandlerImpl { imp.downcast_ref::().unwrap() } diff --git a/gst-plugin/src/adapter.rs b/gst-plugin/src/adapter.rs index e5cd36d7..624b238d 100644 --- a/gst-plugin/src/adapter.rs +++ b/gst-plugin/src/adapter.rs @@ -178,9 +178,8 @@ impl Adapter { return Ok(gst::Buffer::new()); } - let sub = self.deque - .front() - .and_then(|front| if front.get_size() - self.skip >= size { + let sub = self.deque.front().and_then(|front| { + if front.get_size() - self.skip >= size { gst_trace!(CAT, "Get buffer of {} bytes, subbuffer of first", size); let new = front .get_buffer() @@ -189,7 +188,8 @@ impl Adapter { Some(new) } else { None - }); + } + }); if let Some(s) = sub { self.flush(size).unwrap(); @@ -262,9 +262,13 @@ impl io::Read for Adapter { if len == 0 { return Err(io::Error::new( - io::ErrorKind::WouldBlock, - format!("Missing data: requesting {} but only got {}.", - buf.len(), len))); + io::ErrorKind::WouldBlock, + format!( + "Missing data: requesting {} but only got {}.", + buf.len(), + len + ), + )); } if buf.len() < len { diff --git a/gst-plugin/src/base_sink.rs b/gst-plugin/src/base_sink.rs index b01cedbd..3565767f 100644 --- a/gst-plugin/src/base_sink.rs +++ b/gst-plugin/src/base_sink.rs @@ -25,7 +25,7 @@ use object::*; use element::*; use anyimpl::*; -pub trait BaseSinkImpl +pub trait BaseSinkImpl : AnyImpl + ObjectImpl + ElementImpl + Send + Sync + 'static { fn start(&self, _element: &T) -> bool { true @@ -92,9 +92,9 @@ pub trait BaseSinkImpl } } -any_impl!(BaseSink, BaseSinkImpl); +any_impl!(BaseSinkBase, BaseSinkImpl); -pub unsafe trait BaseSink +pub unsafe trait BaseSinkBase : IsA + IsA + ObjectType { fn parent_query(&self, query: &mut gst::QueryRef) -> bool { unsafe { @@ -159,7 +159,7 @@ pub unsafe trait BaseSink } } -pub unsafe trait BaseSinkClass +pub unsafe trait BaseSinkClassExt where T::ImplType: BaseSinkImpl, { @@ -184,28 +184,28 @@ where } glib_wrapper! { - pub struct RsBaseSink(Object>): [gst_base::BaseSink => gst_base_ffi::GstBaseSink, - gst::Element => gst_ffi::GstElement, - gst::Object => gst_ffi::GstObject]; + pub struct BaseSink(Object>): [gst_base::BaseSink => gst_base_ffi::GstBaseSink, + gst::Element => gst_ffi::GstElement, + gst::Object => gst_ffi::GstObject]; match fn { - get_type => || get_type::(), + get_type => || get_type::(), } } -unsafe impl + IsA + ObjectType> BaseSink for T {} -pub type RsBaseSinkClass = ClassStruct; +unsafe impl + IsA + ObjectType> BaseSinkBase for T {} +pub type BaseSinkClass = ClassStruct; // FIXME: Boilerplate -unsafe impl BaseSinkClass for RsBaseSinkClass {} -unsafe impl ElementClass for RsBaseSinkClass {} +unsafe impl BaseSinkClassExt for BaseSinkClass {} +unsafe impl ElementClassExt for BaseSinkClass {} #[macro_export] macro_rules! box_base_sink_impl( ($name:ident) => { box_element_impl!($name); - impl BaseSinkImpl for Box<$name> { + impl BaseSinkImpl for Box<$name> { fn start(&self, element: &T) -> bool { let imp: &$name = self.as_ref(); imp.start(element) @@ -276,7 +276,7 @@ macro_rules! box_base_sink_impl( box_base_sink_impl!(BaseSinkImpl); -impl ObjectType for RsBaseSink { +impl ObjectType for BaseSink { const NAME: &'static str = "RsBaseSink"; type GlibType = gst_base_ffi::GstBaseSink; type GlibClassType = gst_base_ffi::GstBaseSinkClass; @@ -286,15 +286,15 @@ impl ObjectType for RsBaseSink { unsafe { from_glib(gst_base_ffi::gst_base_sink_get_type()) } } - fn class_init(token: &ClassInitToken, klass: &mut RsBaseSinkClass) { - ElementClass::override_vfuncs(klass, token); - BaseSinkClass::override_vfuncs(klass, token); + fn class_init(token: &ClassInitToken, klass: &mut BaseSinkClass) { + ElementClassExt::override_vfuncs(klass, token); + BaseSinkClassExt::override_vfuncs(klass, token); } object_type_fns!(); } -unsafe extern "C" fn base_sink_start( +unsafe extern "C" fn base_sink_start( ptr: *mut gst_base_ffi::GstBaseSink, ) -> glib_ffi::gboolean where @@ -309,7 +309,7 @@ where panic_to_error!(&wrap, &element.panicked, false, { imp.start(&wrap) }).to_glib() } -unsafe extern "C" fn base_sink_stop( +unsafe extern "C" fn base_sink_stop( ptr: *mut gst_base_ffi::GstBaseSink, ) -> glib_ffi::gboolean where @@ -324,7 +324,7 @@ where panic_to_error!(&wrap, &element.panicked, false, { imp.stop(&wrap) }).to_glib() } -unsafe extern "C" fn base_sink_render( +unsafe extern "C" fn base_sink_render( ptr: *mut gst_base_ffi::GstBaseSink, buffer: *mut gst_ffi::GstBuffer, ) -> gst_ffi::GstFlowReturn @@ -343,7 +343,7 @@ where }).to_glib() } -unsafe extern "C" fn base_sink_prepare( +unsafe extern "C" fn base_sink_prepare( ptr: *mut gst_base_ffi::GstBaseSink, buffer: *mut gst_ffi::GstBuffer, ) -> gst_ffi::GstFlowReturn @@ -362,7 +362,7 @@ where }).to_glib() } -unsafe extern "C" fn base_sink_render_list( +unsafe extern "C" fn base_sink_render_list( ptr: *mut gst_base_ffi::GstBaseSink, list: *mut gst_ffi::GstBufferList, ) -> gst_ffi::GstFlowReturn @@ -381,7 +381,7 @@ where }).to_glib() } -unsafe extern "C" fn base_sink_prepare_list( +unsafe extern "C" fn base_sink_prepare_list( ptr: *mut gst_base_ffi::GstBaseSink, list: *mut gst_ffi::GstBufferList, ) -> gst_ffi::GstFlowReturn @@ -400,7 +400,7 @@ where }).to_glib() } -unsafe extern "C" fn base_sink_query( +unsafe extern "C" fn base_sink_query( ptr: *mut gst_base_ffi::GstBaseSink, query_ptr: *mut gst_ffi::GstQuery, ) -> glib_ffi::gboolean @@ -419,7 +419,7 @@ where }).to_glib() } -unsafe extern "C" fn base_sink_event( +unsafe extern "C" fn base_sink_event( ptr: *mut gst_base_ffi::GstBaseSink, event_ptr: *mut gst_ffi::GstEvent, ) -> glib_ffi::gboolean @@ -437,7 +437,7 @@ where }).to_glib() } -unsafe extern "C" fn base_sink_get_caps( +unsafe extern "C" fn base_sink_get_caps( ptr: *mut gst_base_ffi::GstBaseSink, filter: *mut gst_ffi::GstCaps, ) -> *mut gst_ffi::GstCaps @@ -464,7 +464,7 @@ where .unwrap_or(ptr::null_mut()) } -unsafe extern "C" fn base_sink_set_caps( +unsafe extern "C" fn base_sink_set_caps( ptr: *mut gst_base_ffi::GstBaseSink, caps: *mut gst_ffi::GstCaps, ) -> glib_ffi::gboolean @@ -486,7 +486,7 @@ where ).to_glib() } -unsafe extern "C" fn base_sink_fixate( +unsafe extern "C" fn base_sink_fixate( ptr: *mut gst_base_ffi::GstBaseSink, caps: *mut gst_ffi::GstCaps, ) -> *mut gst_ffi::GstCaps @@ -505,7 +505,7 @@ where }).into_ptr() } -unsafe extern "C" fn base_sink_unlock( +unsafe extern "C" fn base_sink_unlock( ptr: *mut gst_base_ffi::GstBaseSink, ) -> glib_ffi::gboolean where @@ -520,7 +520,7 @@ where panic_to_error!(&wrap, &element.panicked, false, { imp.unlock(&wrap) }).to_glib() } -unsafe extern "C" fn base_sink_unlock_stop( +unsafe extern "C" fn base_sink_unlock_stop( ptr: *mut gst_base_ffi::GstBaseSink, ) -> glib_ffi::gboolean where diff --git a/gst-plugin/src/base_src.rs b/gst-plugin/src/base_src.rs index 43fca18d..9ca9ca99 100644 --- a/gst-plugin/src/base_src.rs +++ b/gst-plugin/src/base_src.rs @@ -25,7 +25,7 @@ use object::*; use element::*; use anyimpl::*; -pub trait BaseSrcImpl +pub trait BaseSrcImpl : AnyImpl + ObjectImpl + ElementImpl + Send + Sync + 'static { fn start(&self, _element: &T) -> bool { true @@ -99,9 +99,9 @@ pub trait BaseSrcImpl } } -any_impl!(BaseSrc, BaseSrcImpl); +any_impl!(BaseSrcBase, BaseSrcImpl); -pub unsafe trait BaseSrc +pub unsafe trait BaseSrcBase : IsA + IsA + ObjectType { fn parent_create(&self, offset: u64, length: u32) -> Result { unsafe { @@ -212,7 +212,7 @@ pub unsafe trait BaseSrc } } -pub unsafe trait BaseSrcClass +pub unsafe trait BaseSrcClassExt where T::ImplType: BaseSrcImpl, { @@ -239,28 +239,28 @@ where } glib_wrapper! { - pub struct RsBaseSrc(Object>): [gst_base::BaseSrc => gst_base_ffi::GstBaseSrc, - gst::Element => gst_ffi::GstElement, - gst::Object => gst_ffi::GstObject]; + pub struct BaseSrc(Object>): [gst_base::BaseSrc => gst_base_ffi::GstBaseSrc, + gst::Element => gst_ffi::GstElement, + gst::Object => gst_ffi::GstObject]; match fn { - get_type => || get_type::(), + get_type => || get_type::(), } } -unsafe impl + IsA + ObjectType> BaseSrc for T {} -pub type RsBaseSrcClass = ClassStruct; +unsafe impl + IsA + ObjectType> BaseSrcBase for T {} +pub type BaseSrcClass = ClassStruct; // FIXME: Boilerplate -unsafe impl BaseSrcClass for RsBaseSrcClass {} -unsafe impl ElementClass for RsBaseSrcClass {} +unsafe impl BaseSrcClassExt for BaseSrcClass {} +unsafe impl ElementClassExt for BaseSrcClass {} #[macro_export] macro_rules! box_base_src_impl( ($name:ident) => { box_element_impl!($name); - impl BaseSrcImpl for Box<$name> { + impl BaseSrcImpl for Box<$name> { fn start(&self, element: &T) -> bool { let imp: &$name = self.as_ref(); imp.start(element) @@ -351,7 +351,7 @@ macro_rules! box_base_src_impl( ); box_base_src_impl!(BaseSrcImpl); -impl ObjectType for RsBaseSrc { +impl ObjectType for BaseSrc { const NAME: &'static str = "RsBaseSrc"; type GlibType = gst_base_ffi::GstBaseSrc; type GlibClassType = gst_base_ffi::GstBaseSrcClass; @@ -361,15 +361,15 @@ impl ObjectType for RsBaseSrc { unsafe { from_glib(gst_base_ffi::gst_base_src_get_type()) } } - fn class_init(token: &ClassInitToken, klass: &mut RsBaseSrcClass) { - ElementClass::override_vfuncs(klass, token); - BaseSrcClass::override_vfuncs(klass, token); + fn class_init(token: &ClassInitToken, klass: &mut BaseSrcClass) { + ElementClassExt::override_vfuncs(klass, token); + BaseSrcClassExt::override_vfuncs(klass, token); } object_type_fns!(); } -unsafe extern "C" fn base_src_start( +unsafe extern "C" fn base_src_start( ptr: *mut gst_base_ffi::GstBaseSrc, ) -> glib_ffi::gboolean where @@ -384,7 +384,7 @@ where panic_to_error!(&wrap, &element.panicked, false, { imp.start(&wrap) }).to_glib() } -unsafe extern "C" fn base_src_stop( +unsafe extern "C" fn base_src_stop( ptr: *mut gst_base_ffi::GstBaseSrc, ) -> glib_ffi::gboolean where @@ -399,7 +399,7 @@ where panic_to_error!(&wrap, &element.panicked, false, { imp.stop(&wrap) }).to_glib() } -unsafe extern "C" fn base_src_is_seekable( +unsafe extern "C" fn base_src_is_seekable( ptr: *mut gst_base_ffi::GstBaseSrc, ) -> glib_ffi::gboolean where @@ -414,7 +414,7 @@ where panic_to_error!(&wrap, &element.panicked, false, { imp.is_seekable(&wrap) }).to_glib() } -unsafe extern "C" fn base_src_get_size( +unsafe extern "C" fn base_src_get_size( ptr: *mut gst_base_ffi::GstBaseSrc, size: *mut u64, ) -> glib_ffi::gboolean @@ -438,7 +438,7 @@ where }).to_glib() } -unsafe extern "C" fn base_src_fill( +unsafe extern "C" fn base_src_fill( ptr: *mut gst_base_ffi::GstBaseSrc, offset: u64, length: u32, @@ -459,7 +459,7 @@ where }).to_glib() } -unsafe extern "C" fn base_src_create( +unsafe extern "C" fn base_src_create( ptr: *mut gst_base_ffi::GstBaseSrc, offset: u64, length: u32, @@ -488,7 +488,7 @@ where }).to_glib() } -unsafe extern "C" fn base_src_do_seek( +unsafe extern "C" fn base_src_do_seek( ptr: *mut gst_base_ffi::GstBaseSrc, segment: *mut gst_ffi::GstSegment, ) -> glib_ffi::gboolean @@ -506,7 +506,7 @@ where }).to_glib() } -unsafe extern "C" fn base_src_query( +unsafe extern "C" fn base_src_query( ptr: *mut gst_base_ffi::GstBaseSrc, query_ptr: *mut gst_ffi::GstQuery, ) -> glib_ffi::gboolean @@ -525,7 +525,7 @@ where }).to_glib() } -unsafe extern "C" fn base_src_event( +unsafe extern "C" fn base_src_event( ptr: *mut gst_base_ffi::GstBaseSrc, event_ptr: *mut gst_ffi::GstEvent, ) -> glib_ffi::gboolean @@ -543,7 +543,7 @@ where }).to_glib() } -unsafe extern "C" fn base_src_get_caps( +unsafe extern "C" fn base_src_get_caps( ptr: *mut gst_base_ffi::GstBaseSrc, filter: *mut gst_ffi::GstCaps, ) -> *mut gst_ffi::GstCaps @@ -570,7 +570,7 @@ where .unwrap_or(ptr::null_mut()) } -unsafe extern "C" fn base_src_negotiate( +unsafe extern "C" fn base_src_negotiate( ptr: *mut gst_base_ffi::GstBaseSrc, ) -> glib_ffi::gboolean where @@ -585,7 +585,7 @@ where panic_to_error!(&wrap, &element.panicked, false, { imp.negotiate(&wrap) }).to_glib() } -unsafe extern "C" fn base_src_set_caps( +unsafe extern "C" fn base_src_set_caps( ptr: *mut gst_base_ffi::GstBaseSrc, caps: *mut gst_ffi::GstCaps, ) -> glib_ffi::gboolean @@ -607,7 +607,7 @@ where ).to_glib() } -unsafe extern "C" fn base_src_fixate( +unsafe extern "C" fn base_src_fixate( ptr: *mut gst_base_ffi::GstBaseSrc, caps: *mut gst_ffi::GstCaps, ) -> *mut gst_ffi::GstCaps @@ -626,7 +626,7 @@ where }).into_ptr() } -unsafe extern "C" fn base_src_unlock( +unsafe extern "C" fn base_src_unlock( ptr: *mut gst_base_ffi::GstBaseSrc, ) -> glib_ffi::gboolean where @@ -641,7 +641,7 @@ where panic_to_error!(&wrap, &element.panicked, false, { imp.unlock(&wrap) }).to_glib() } -unsafe extern "C" fn base_src_unlock_stop( +unsafe extern "C" fn base_src_unlock_stop( ptr: *mut gst_base_ffi::GstBaseSrc, ) -> glib_ffi::gboolean where diff --git a/gst-plugin/src/base_transform.rs b/gst-plugin/src/base_transform.rs index 49e67b6d..017b32df 100644 --- a/gst-plugin/src/base_transform.rs +++ b/gst-plugin/src/base_transform.rs @@ -25,7 +25,7 @@ use object::*; use element::*; use anyimpl::*; -pub trait BaseTransformImpl +pub trait BaseTransformImpl : AnyImpl + ObjectImpl + ElementImpl + Send + Sync + 'static { fn start(&self, _element: &T) -> bool { true @@ -104,9 +104,9 @@ pub trait BaseTransformImpl } } -any_impl!(BaseTransform, BaseTransformImpl); +any_impl!(BaseTransformBase, BaseTransformImpl); -pub unsafe trait BaseTransform +pub unsafe trait BaseTransformBase : IsA + IsA + ObjectType { fn parent_transform_caps( &self, @@ -252,7 +252,7 @@ pub enum BaseTransformMode { Both, } -pub unsafe trait BaseTransformClass +pub unsafe trait BaseTransformClassExt where T::ImplType: BaseTransformImpl, { @@ -302,28 +302,30 @@ where } glib_wrapper! { - pub struct RsBaseTransform(Object>): [gst_base::BaseTransform => gst_base_ffi::GstBaseTransform, - gst::Element => gst_ffi::GstElement, - gst::Object => gst_ffi::GstObject]; + pub struct BaseTransform(Object>): [gst_base::BaseTransform => gst_base_ffi::GstBaseTransform, + gst::Element => gst_ffi::GstElement, + gst::Object => gst_ffi::GstObject]; match fn { - get_type => || get_type::(), + get_type => || get_type::(), } } -unsafe impl + IsA + ObjectType> BaseTransform for T {} -pub type RsBaseTransformClass = ClassStruct; +unsafe impl + IsA + ObjectType> BaseTransformBase + for T { +} +pub type BaseTransformClass = ClassStruct; // FIXME: Boilerplate -unsafe impl BaseTransformClass for RsBaseTransformClass {} -unsafe impl ElementClass for RsBaseTransformClass {} +unsafe impl BaseTransformClassExt for BaseTransformClass {} +unsafe impl ElementClassExt for BaseTransformClass {} #[macro_export] macro_rules! box_base_transform_impl( ($name:ident) => { box_element_impl!($name); - impl BaseTransformImpl for Box<$name> { + impl BaseTransformImpl for Box<$name> { fn start(&self, element: &T) -> bool { let imp: &$name = self.as_ref(); imp.start(element) @@ -393,7 +395,7 @@ macro_rules! box_base_transform_impl( ); box_base_transform_impl!(BaseTransformImpl); -impl ObjectType for RsBaseTransform { +impl ObjectType for BaseTransform { const NAME: &'static str = "RsBaseTransform"; type GlibType = gst_base_ffi::GstBaseTransform; type GlibClassType = gst_base_ffi::GstBaseTransformClass; @@ -403,15 +405,15 @@ impl ObjectType for RsBaseTransform { unsafe { from_glib(gst_base_ffi::gst_base_transform_get_type()) } } - fn class_init(token: &ClassInitToken, klass: &mut RsBaseTransformClass) { - ElementClass::override_vfuncs(klass, token); - BaseTransformClass::override_vfuncs(klass, token); + fn class_init(token: &ClassInitToken, klass: &mut BaseTransformClass) { + ElementClassExt::override_vfuncs(klass, token); + BaseTransformClassExt::override_vfuncs(klass, token); } object_type_fns!(); } -unsafe extern "C" fn base_transform_start( +unsafe extern "C" fn base_transform_start( ptr: *mut gst_base_ffi::GstBaseTransform, ) -> glib_ffi::gboolean where @@ -426,7 +428,7 @@ where panic_to_error!(&wrap, &element.panicked, false, { imp.start(&wrap) }).to_glib() } -unsafe extern "C" fn base_transform_stop( +unsafe extern "C" fn base_transform_stop( ptr: *mut gst_base_ffi::GstBaseTransform, ) -> glib_ffi::gboolean where @@ -441,7 +443,7 @@ where panic_to_error!(&wrap, &element.panicked, false, { imp.stop(&wrap) }).to_glib() } -unsafe extern "C" fn base_transform_transform_caps( +unsafe extern "C" fn base_transform_transform_caps( ptr: *mut gst_base_ffi::GstBaseTransform, direction: gst_ffi::GstPadDirection, caps: *mut gst_ffi::GstCaps, @@ -473,7 +475,7 @@ where }).into_ptr() } -unsafe extern "C" fn base_transform_fixate_caps( +unsafe extern "C" fn base_transform_fixate_caps( ptr: *mut gst_base_ffi::GstBaseTransform, direction: gst_ffi::GstPadDirection, caps: *mut gst_ffi::GstCaps, @@ -498,7 +500,7 @@ where }).into_ptr() } -unsafe extern "C" fn base_transform_set_caps( +unsafe extern "C" fn base_transform_set_caps( ptr: *mut gst_base_ffi::GstBaseTransform, incaps: *mut gst_ffi::GstCaps, outcaps: *mut gst_ffi::GstCaps, @@ -517,7 +519,7 @@ where }).to_glib() } -unsafe extern "C" fn base_transform_accept_caps( +unsafe extern "C" fn base_transform_accept_caps( ptr: *mut gst_base_ffi::GstBaseTransform, direction: gst_ffi::GstPadDirection, caps: *mut gst_ffi::GstCaps, @@ -536,7 +538,7 @@ where }).to_glib() } -unsafe extern "C" fn base_transform_query( +unsafe extern "C" fn base_transform_query( ptr: *mut gst_base_ffi::GstBaseTransform, direction: gst_ffi::GstPadDirection, query: *mut gst_ffi::GstQuery, @@ -560,7 +562,7 @@ where }).to_glib() } -unsafe extern "C" fn base_transform_transform_size( +unsafe extern "C" fn base_transform_transform_size( ptr: *mut gst_base_ffi::GstBaseTransform, direction: gst_ffi::GstPadDirection, caps: *mut gst_ffi::GstCaps, @@ -594,7 +596,7 @@ where }).to_glib() } -unsafe extern "C" fn base_transform_get_unit_size( +unsafe extern "C" fn base_transform_get_unit_size( ptr: *mut gst_base_ffi::GstBaseTransform, caps: *mut gst_ffi::GstCaps, size: *mut usize, @@ -619,7 +621,7 @@ where }).to_glib() } -unsafe extern "C" fn base_transform_sink_event( +unsafe extern "C" fn base_transform_sink_event( ptr: *mut gst_base_ffi::GstBaseTransform, event: *mut gst_ffi::GstEvent, ) -> glib_ffi::gboolean @@ -637,7 +639,7 @@ where }).to_glib() } -unsafe extern "C" fn base_transform_src_event( +unsafe extern "C" fn base_transform_src_event( ptr: *mut gst_base_ffi::GstBaseTransform, event: *mut gst_ffi::GstEvent, ) -> glib_ffi::gboolean @@ -655,7 +657,7 @@ where }).to_glib() } -unsafe extern "C" fn base_transform_transform( +unsafe extern "C" fn base_transform_transform( ptr: *mut gst_base_ffi::GstBaseTransform, inbuf: *mut gst_ffi::GstBuffer, outbuf: *mut gst_ffi::GstBuffer, @@ -678,7 +680,7 @@ where }).to_glib() } -unsafe extern "C" fn base_transform_transform_ip( +unsafe extern "C" fn base_transform_transform_ip( ptr: *mut gst_base_ffi::GstBaseTransform, buf: *mut *mut gst_ffi::GstBuffer, ) -> gst_ffi::GstFlowReturn diff --git a/gst-plugin/src/element.rs b/gst-plugin/src/element.rs index 20d3871b..441e2301 100644 --- a/gst-plugin/src/element.rs +++ b/gst-plugin/src/element.rs @@ -23,7 +23,7 @@ use gst::prelude::*; use object::*; use anyimpl::*; -pub trait ElementImpl +pub trait ElementImpl : ObjectImpl + AnyImpl + Send + Sync + 'static { fn change_state(&self, element: &T, transition: gst::StateChange) -> gst::StateChangeReturn { element.parent_change_state(transition) @@ -54,9 +54,9 @@ pub trait ElementImpl } } -any_impl!(Element, ElementImpl); +any_impl!(ElementBase, ElementImpl); -pub unsafe trait Element: IsA + ObjectType { +pub unsafe trait ElementBase: IsA + ObjectType { fn parent_change_state(&self, transition: gst::StateChange) -> gst::StateChangeReturn { unsafe { let klass = self.get_class(); @@ -104,7 +104,7 @@ pub unsafe trait Element: IsA + ObjectType { } } -pub unsafe trait ElementClass +pub unsafe trait ElementClassExt where T::ImplType: ElementImpl, { @@ -149,26 +149,26 @@ where } glib_wrapper! { - pub struct RsElement(Object>): [gst::Element => gst_ffi::GstElement, - gst::Object => gst_ffi::GstObject]; + pub struct Element(Object>): [gst::Element => gst_ffi::GstElement, + gst::Object => gst_ffi::GstObject]; match fn { - get_type => || get_type::(), + get_type => || get_type::(), } } -unsafe impl + ObjectType> Element for T {} -pub type RsElementClass = ClassStruct; +unsafe impl + ObjectType> ElementBase for T {} +pub type ElementClass = ClassStruct; // FIXME: Boilerplate -unsafe impl ElementClass for RsElementClass {} +unsafe impl ElementClassExt for ElementClass {} #[macro_export] macro_rules! box_element_impl( ($name:ident) => { box_object_impl!($name); - impl ElementImpl for Box<$name> { + impl ElementImpl for Box<$name> { fn change_state( &self, element: &T, @@ -208,7 +208,7 @@ macro_rules! box_element_impl( box_element_impl!(ElementImpl); -impl ObjectType for RsElement { +impl ObjectType for Element { const NAME: &'static str = "RsElement"; type GlibType = gst_ffi::GstElement; type GlibClassType = gst_ffi::GstElementClass; @@ -218,14 +218,14 @@ impl ObjectType for RsElement { unsafe { from_glib(gst_ffi::gst_element_get_type()) } } - fn class_init(token: &ClassInitToken, klass: &mut RsElementClass) { + fn class_init(token: &ClassInitToken, klass: &mut ElementClass) { klass.override_vfuncs(token); } object_type_fns!(); } -unsafe extern "C" fn element_change_state( +unsafe extern "C" fn element_change_state( ptr: *mut gst_ffi::GstElement, transition: gst_ffi::GstStateChange, ) -> gst_ffi::GstStateChangeReturn @@ -243,7 +243,7 @@ where }).to_glib() } -unsafe extern "C" fn element_request_new_pad( +unsafe extern "C" fn element_request_new_pad( ptr: *mut gst_ffi::GstElement, templ: *mut gst_ffi::GstPadTemplate, name: *const libc::c_char, @@ -268,7 +268,7 @@ where }).to_glib_full() } -unsafe extern "C" fn element_release_pad( +unsafe extern "C" fn element_release_pad( ptr: *mut gst_ffi::GstElement, pad: *mut gst_ffi::GstPad, ) where @@ -285,7 +285,7 @@ unsafe extern "C" fn element_release_pad( }) } -unsafe extern "C" fn element_send_event( +unsafe extern "C" fn element_send_event( ptr: *mut gst_ffi::GstElement, event: *mut gst_ffi::GstEvent, ) -> glib_ffi::gboolean @@ -303,7 +303,7 @@ where }).to_glib() } -unsafe extern "C" fn element_query( +unsafe extern "C" fn element_query( ptr: *mut gst_ffi::GstElement, query: *mut gst_ffi::GstQuery, ) -> glib_ffi::gboolean @@ -320,7 +320,7 @@ where panic_to_error!(&wrap, &element.panicked, false, { imp.query(&wrap, query) }).to_glib() } -unsafe extern "C" fn element_set_context( +unsafe extern "C" fn element_set_context( ptr: *mut gst_ffi::GstElement, context: *mut gst_ffi::GstContext, ) where diff --git a/gst-plugin/src/properties.rs b/gst-plugin/src/properties.rs index a0063f7c..81cad248 100644 --- a/gst-plugin/src/properties.rs +++ b/gst-plugin/src/properties.rs @@ -88,8 +88,20 @@ pub enum Property<'a> { Option<&'a str>, PropertyMutability, ), - Boxed(&'a str, &'a str, &'a str, fn() -> glib::Type, PropertyMutability), - Object(&'a str, &'a str, &'a str, fn() -> glib::Type, PropertyMutability), + Boxed( + &'a str, + &'a str, + &'a str, + fn() -> glib::Type, + PropertyMutability, + ), + Object( + &'a str, + &'a str, + &'a str, + fn() -> glib::Type, + PropertyMutability, + ), } impl<'a> Into<*mut gobject_ffi::GParamSpec> for &'a Property<'a> {