diff --git a/gst-plugin-file/Cargo.toml b/gst-plugin-file/Cargo.toml index d227cf74..f8bf0756 100644 --- a/gst-plugin-file/Cargo.toml +++ b/gst-plugin-file/Cargo.toml @@ -8,7 +8,7 @@ license = "MIT/Apache-2.0" [dependencies] url = "1.1" gst-plugin = { path="../gst-plugin" } -slog = "1.3" +slog = "2.0" [lib] name = "gstrsfile" diff --git a/gst-plugin-file/src/filesink.rs b/gst-plugin-file/src/filesink.rs index e90a5ed5..b5c72225 100644 --- a/gst-plugin-file/src/filesink.rs +++ b/gst-plugin-file/src/filesink.rs @@ -19,7 +19,7 @@ use gst_plugin::buffer::*; use gst_plugin::utils::*; use gst_plugin::log::*; -use slog::*; +use slog::Logger; #[derive(Debug)] enum StreamingState { @@ -41,7 +41,7 @@ impl FileSink { "rsfilesink", 0, "Rust file sink"), - None), + o!()), } } diff --git a/gst-plugin-file/src/filesrc.rs b/gst-plugin-file/src/filesrc.rs index 35fa8134..df2f0a83 100644 --- a/gst-plugin-file/src/filesrc.rs +++ b/gst-plugin-file/src/filesrc.rs @@ -17,7 +17,7 @@ use gst_plugin::buffer::*; use gst_plugin::log::*; use gst_plugin::utils::*; -use slog::*; +use slog::Logger; #[derive(Debug)] enum StreamingState { @@ -39,7 +39,7 @@ impl FileSrc { "rsfilesrc", 0, "Rust file source"), - None), + o!()), } } diff --git a/gst-plugin-flv/Cargo.toml b/gst-plugin-flv/Cargo.toml index db74dde7..d15c1c9c 100644 --- a/gst-plugin-flv/Cargo.toml +++ b/gst-plugin-flv/Cargo.toml @@ -8,7 +8,7 @@ license = "MIT/Apache-2.0" [dependencies] url = "1.1" gst-plugin = { path="../gst-plugin" } -slog = "1.3" +slog = "2.0" nom = "2.0" flavors = {git = "https://github.com/Geal/flavors.git"} diff --git a/gst-plugin-flv/src/flvdemux.rs b/gst-plugin-flv/src/flvdemux.rs index 75470004..1e469ca0 100644 --- a/gst-plugin-flv/src/flvdemux.rs +++ b/gst-plugin-flv/src/flvdemux.rs @@ -26,7 +26,7 @@ use gst_plugin::miniobject::*; use gst_plugin::value::Rational32; use gst_plugin::bytes::*; -use slog::*; +use slog::Logger; const AUDIO_STREAM_ID: u32 = 0; const VIDEO_STREAM_ID: u32 = 1; @@ -177,13 +177,15 @@ impl AudioFormat { flavors::SoundFormat::PCM_ALAW => Some(Caps::new_simple("audio/x-alaw", &[])), flavors::SoundFormat::PCM_ULAW => Some(Caps::new_simple("audio/x-mulaw", &[])), flavors::SoundFormat::AAC => { - self.aac_sequence_header.as_ref().map(|header| { - Caps::new_simple("audio/mpeg", - &[("mpegversion", &4.into()), - ("framed", &true.into()), - ("stream-format", &"raw".into()), - ("codec_data", &header.as_ref().into())]) - }) + self.aac_sequence_header + .as_ref() + .map(|header| { + Caps::new_simple("audio/mpeg", + &[("mpegversion", &4.into()), + ("framed", &true.into()), + ("stream-format", &"raw".into()), + ("codec_data", &header.as_ref().into())]) + }) } flavors::SoundFormat::SPEEX => { let header = { @@ -236,17 +238,20 @@ impl AudioFormat { }; if self.rate != 0 { - caps.as_mut().map(|c| { - c.get_mut().unwrap().set_simple(&[("rate", - &(self.rate as i32).into())]) - }); + caps.as_mut() + .map(|c| { + c.get_mut() + .unwrap() + .set_simple(&[("rate", &(self.rate as i32).into())]) + }); } if self.channels != 0 { - caps.as_mut().map(|c| { - c.get_mut().unwrap().set_simple(&[("channels", - &(self.channels as i32) - .into())]) - }); + caps.as_mut() + .map(|c| { + c.get_mut() + .unwrap() + .set_simple(&[("channels", &(self.channels as i32).into())]) + }); } caps @@ -273,7 +278,9 @@ impl VideoFormat { format: data_header.codec_id, width: metadata.as_ref().and_then(|m| m.video_width), height: metadata.as_ref().and_then(|m| m.video_height), - pixel_aspect_ratio: metadata.as_ref().and_then(|m| m.video_pixel_aspect_ratio), + pixel_aspect_ratio: metadata + .as_ref() + .and_then(|m| m.video_pixel_aspect_ratio), framerate: metadata.as_ref().and_then(|m| m.video_framerate), bitrate: metadata.as_ref().and_then(|m| m.video_bitrate), avc_sequence_header: avc_sequence_header.clone(), @@ -325,11 +332,13 @@ impl VideoFormat { flavors::CodecId::VP6A => Some(Caps::new_simple("video/x-vp6-flash-alpha", &[])), flavors::CodecId::SCREEN2 => Some(Caps::new_simple("video/x-flash-screen2", &[])), flavors::CodecId::H264 => { - self.avc_sequence_header.as_ref().map(|header| { - Caps::new_simple("video/x-h264", - &[("stream-format", &"avc".into()), - ("codec_data", &header.as_ref().into())]) - }) + self.avc_sequence_header + .as_ref() + .map(|header| { + Caps::new_simple("video/x-h264", + &[("stream-format", &"avc".into()), + ("codec_data", &header.as_ref().into())]) + }) } flavors::CodecId::H263 => Some(Caps::new_simple("video/x-h263", &[])), flavors::CodecId::MPEG4Part2 => { @@ -344,28 +353,34 @@ impl VideoFormat { }; if let (Some(width), Some(height)) = (self.width, self.height) { - caps.as_mut().map(|c| { - c.get_mut().unwrap().set_simple(&[("width", - &(width as i32).into()), - ("height", - &(height as i32).into())]) - }); + caps.as_mut() + .map(|c| { + c.get_mut() + .unwrap() + .set_simple(&[("width", &(width as i32).into()), + ("height", &(height as i32).into())]) + }); } if let Some(par) = self.pixel_aspect_ratio { if *par.numer() != 0 && par.numer() != par.denom() { - caps.as_mut().map(|c| { - c.get_mut().unwrap().set_simple(&[("pixel-aspect-ratio", - &par.into())]) - }); + caps.as_mut() + .map(|c| { + c.get_mut() + .unwrap() + .set_simple(&[("pixel-aspect-ratio", &par.into())]) + }); } } if let Some(fps) = self.framerate { if *fps.numer() != 0 { - caps.as_mut().map(|c| { - c.get_mut().unwrap().set_simple(&[("framerate", &fps.into())]) - }); + caps.as_mut() + .map(|c| { + c.get_mut() + .unwrap() + .set_simple(&[("framerate", &fps.into())]) + }); } } @@ -498,7 +513,7 @@ impl FlvDemux { "rsflvdemux", 0, "Rust FLV demuxer"), - None), + o!()), state: State::Stopped, adapter: Adapter::new(), streaming_state: None, @@ -518,7 +533,9 @@ impl FlvDemux { self.adapter.flush(15).unwrap(); - let buffer = self.adapter.get_buffer(tag_header.data_size as usize).unwrap(); + let buffer = self.adapter + .get_buffer(tag_header.data_size as usize) + .unwrap(); let map = buffer.map_read().unwrap(); let data = map.as_slice(); @@ -531,11 +548,13 @@ impl FlvDemux { let streaming_state = self.streaming_state.as_mut().unwrap(); - let audio_changed = streaming_state.audio + let audio_changed = streaming_state + .audio .as_mut() .map(|a| a.update_with_metadata(&metadata)) .unwrap_or(false); - let video_changed = streaming_state.video + let video_changed = streaming_state + .video .as_mut() .map(|v| v.update_with_metadata(&metadata)) .unwrap_or(false); @@ -630,7 +649,9 @@ impl FlvDemux { if data_header.sound_format == flavors::SoundFormat::AAC { // Not big enough for the AAC packet header, ship! if tag_header.data_size < 1 + 1 { - self.adapter.flush(15 + tag_header.data_size as usize).unwrap(); + self.adapter + .flush(15 + tag_header.data_size as usize) + .unwrap(); warn!(self.logger, "Too small packet for AAC packet header {}", 15 + tag_header.data_size); @@ -672,7 +693,9 @@ impl FlvDemux { let streaming_state = self.streaming_state.as_ref().unwrap(); if streaming_state.audio == None { - self.adapter.flush((tag_header.data_size + 15) as usize).unwrap(); + self.adapter + .flush((tag_header.data_size + 15) as usize) + .unwrap(); return Ok(HandleBufferResult::Again); } @@ -689,7 +712,9 @@ impl FlvDemux { } if tag_header.data_size < offset { - self.adapter.flush((tag_header.data_size - 1) as usize).unwrap(); + self.adapter + .flush((tag_header.data_size - 1) as usize) + .unwrap(); return Ok(HandleBufferResult::Again); } @@ -697,8 +722,9 @@ impl FlvDemux { self.adapter.flush(offset as usize).unwrap(); } - let mut buffer = - self.adapter.get_buffer((tag_header.data_size - 1 - offset) as usize).unwrap(); + let mut buffer = self.adapter + .get_buffer((tag_header.data_size - 1 - offset) as usize) + .unwrap(); { let buffer = buffer.get_mut().unwrap(); @@ -775,7 +801,9 @@ impl FlvDemux { if data_header.codec_id == flavors::CodecId::H264 { // Not big enough for the AVC packet header, ship! if tag_header.data_size < 1 + 4 { - self.adapter.flush(15 + tag_header.data_size as usize).unwrap(); + self.adapter + .flush(15 + tag_header.data_size as usize) + .unwrap(); warn!(self.logger, "Too small packet for AVC packet header {}", 15 + tag_header.data_size); @@ -811,7 +839,9 @@ impl FlvDemux { } flavors::AVCPacketType::EndOfSequence => { // Skip - self.adapter.flush(15 + tag_header.data_size as usize).unwrap(); + self.adapter + .flush(15 + tag_header.data_size as usize) + .unwrap(); return Ok(HandleBufferResult::Again); } } @@ -822,7 +852,9 @@ impl FlvDemux { let streaming_state = self.streaming_state.as_ref().unwrap(); if streaming_state.video == None { - self.adapter.flush((tag_header.data_size + 15) as usize).unwrap(); + self.adapter + .flush((tag_header.data_size + 15) as usize) + .unwrap(); return Ok(HandleBufferResult::Again); } @@ -843,7 +875,9 @@ impl FlvDemux { } if tag_header.data_size < offset { - self.adapter.flush((tag_header.data_size - 1) as usize).unwrap(); + self.adapter + .flush((tag_header.data_size - 1) as usize) + .unwrap(); return Ok(HandleBufferResult::Again); } @@ -851,8 +885,9 @@ impl FlvDemux { self.adapter.flush(offset as usize).unwrap(); } - let mut buffer = - self.adapter.get_buffer((tag_header.data_size - 1 - offset) as usize).unwrap(); + let mut buffer = self.adapter + .get_buffer((tag_header.data_size - 1 - offset) as usize) + .unwrap(); { let buffer = buffer.get_mut().unwrap(); @@ -919,7 +954,11 @@ impl FlvDemux { Ok(HandleBufferResult::NeedMoreData) } - State::Skipping { audio, video, skip_left: 0 } => { + State::Skipping { + audio, + video, + skip_left: 0, + } => { self.state = State::Streaming; self.streaming_state = Some(StreamingState::new(audio, video)); @@ -997,11 +1036,13 @@ impl FlvDemux { let streaming_state = self.streaming_state.as_mut().unwrap(); if let Some(pts) = buffer.get_pts() { - streaming_state.last_position = streaming_state.last_position + streaming_state.last_position = streaming_state + .last_position .map(|last| cmp::max(last, pts)) .or_else(|| Some(pts)); } else if let Some(dts) = buffer.get_dts() { - streaming_state.last_position = streaming_state.last_position + streaming_state.last_position = streaming_state + .last_position .map(|last| cmp::max(last, dts)) .or_else(|| Some(dts)); } diff --git a/gst-plugin-http/Cargo.toml b/gst-plugin-http/Cargo.toml index 40d7762f..75e1ade3 100644 --- a/gst-plugin-http/Cargo.toml +++ b/gst-plugin-http/Cargo.toml @@ -9,7 +9,7 @@ license = "MIT/Apache-2.0" url = "1.1" gst-plugin = { path="../gst-plugin" } reqwest = "0.5" -slog = "1.3" +slog = "2.0" [lib] name = "gstrshttp" diff --git a/gst-plugin-http/src/httpsrc.rs b/gst-plugin-http/src/httpsrc.rs index c9478c34..cf536157 100644 --- a/gst-plugin-http/src/httpsrc.rs +++ b/gst-plugin-http/src/httpsrc.rs @@ -19,7 +19,7 @@ use gst_plugin::buffer::*; use gst_plugin::utils::*; use gst_plugin::log::*; -use slog::*; +use slog::Logger; #[derive(Debug)] enum StreamingState { @@ -50,7 +50,7 @@ impl HttpSrc { "rshttpsink", 0, "Rust http sink"), - None), + o!()), client: Client::new().unwrap(), } } diff --git a/gst-plugin/Cargo.toml b/gst-plugin/Cargo.toml index 140668ca..73fae967 100644 --- a/gst-plugin/Cargo.toml +++ b/gst-plugin/Cargo.toml @@ -10,7 +10,7 @@ license = "MIT/Apache-2.0" libc = "0.2" url = "1.1" bitflags = "0.8" -slog = { version = "1.3", features = ["max_level_trace"] } +slog = { version = "2.0", features = ["max_level_trace"] } lazy_static = "0.2" byteorder = "1.0" num-rational = { version = "0.1", default-features = false, features = [] } diff --git a/gst-plugin/src/adapter.rs b/gst-plugin/src/adapter.rs index 5d573b6a..84feb623 100644 --- a/gst-plugin/src/adapter.rs +++ b/gst-plugin/src/adapter.rs @@ -11,7 +11,7 @@ use miniobject::*; use log::*; use std::collections::VecDeque; use std::cmp; -use slog::*; +use slog::Logger; lazy_static! { static ref LOGGER: Logger = { @@ -19,7 +19,7 @@ lazy_static! { "rsadapter", 0, "Rust buffer adapter"), - None) + o!()) }; } diff --git a/gst-plugin/src/demuxer.rs b/gst-plugin/src/demuxer.rs index 1608fb47..813803f5 100644 --- a/gst-plugin/src/demuxer.rs +++ b/gst-plugin/src/demuxer.rs @@ -18,7 +18,7 @@ use std::sync::atomic::{AtomicBool, Ordering}; use std::u32; use std::u64; -use slog::*; +use slog::Logger; use utils::*; use error::*; @@ -106,7 +106,7 @@ impl DemuxerWrapper { "rsdemux", 0, "Rust demuxer base class"), - None), + o!()), demuxer: Mutex::new(demuxer), panicked: AtomicBool::new(false), } diff --git a/gst-plugin/src/log.rs b/gst-plugin/src/log.rs index 91f94a32..60b068af 100644 --- a/gst-plugin/src/log.rs +++ b/gst-plugin/src/log.rs @@ -8,7 +8,7 @@ use libc::c_char; use std::ffi::CString; -use slog::{Drain, Record, OwnedKeyValueList, Never, Level}; +use slog::{Drain, Record, OwnedKVList, Never, Level}; use std::fmt; use std::ptr; use std::mem; @@ -73,9 +73,10 @@ impl Drop for GstDebugDrain { } impl Drain for GstDebugDrain { - type Error = Never; + type Ok = (); + type Err = Never; - fn log(&self, record: &Record, _: &OwnedKeyValueList) -> Result<(), Never> { + fn log(&self, record: &Record, _: &OwnedKVList) -> Result<(), Never> { let level = match record.level() { Level::Critical | Level::Error => gst::GST_LEVEL_ERROR, Level::Warning => gst::GST_LEVEL_WARNING, @@ -95,7 +96,7 @@ impl Drain for GstDebugDrain { // TODO: Probably want to include module? let function_cstr = CString::new(record.function().as_bytes()).unwrap(); - let message_cstr = CString::new(fmt::format(record.msg()).as_bytes()).unwrap(); + let message_cstr = CString::new(fmt::format(*record.msg()).as_bytes()).unwrap(); unsafe { let element = gobject::g_weak_ref_get(&*self.element as *const gobject::GWeakRef as diff --git a/gst-plugin/src/sink.rs b/gst-plugin/src/sink.rs index 2a4afddf..e9ab21c1 100644 --- a/gst-plugin/src/sink.rs +++ b/gst-plugin/src/sink.rs @@ -19,7 +19,7 @@ use std::sync::atomic::{AtomicBool, Ordering}; use url::Url; -use slog::*; +use slog::Logger; use utils::*; use error::*; @@ -81,7 +81,7 @@ impl SinkWrapper { "rssink", 0, "Rust sink base class"), - None), + o!()), uri: Mutex::new((None, false)), uri_validator: sink.uri_validator(), sink: Mutex::new(sink), diff --git a/gst-plugin/src/source.rs b/gst-plugin/src/source.rs index 5d01fb16..d39a6b66 100644 --- a/gst-plugin/src/source.rs +++ b/gst-plugin/src/source.rs @@ -19,7 +19,7 @@ use std::sync::atomic::{AtomicBool, Ordering}; use url::Url; -use slog::*; +use slog::Logger; use plugin::Plugin; use utils::*; @@ -84,7 +84,7 @@ impl SourceWrapper { "rssrc", 0, "Rust source base class"), - None), + o!()), uri: Mutex::new((None, false)), uri_validator: source.uri_validator(), source: Mutex::new(source),