mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2024-11-26 05:21:00 +00:00
Move more things into gst-plugin-simple
This commit is contained in:
parent
22c5f93d3b
commit
bda421d218
10 changed files with 125 additions and 119 deletions
|
@ -12,7 +12,7 @@ use url::Url;
|
||||||
|
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
|
|
||||||
use gst_plugin::error::*;
|
use gst_plugin_simple::error::*;
|
||||||
use gst_plugin_simple::sink::*;
|
use gst_plugin_simple::sink::*;
|
||||||
use gst_plugin_simple::UriValidator;
|
use gst_plugin_simple::UriValidator;
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ use std::io::{Read, Seek, SeekFrom};
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
use gst_plugin::error::*;
|
use gst_plugin_simple::error::*;
|
||||||
use gst_plugin_simple::source::*;
|
use gst_plugin_simple::source::*;
|
||||||
use gst_plugin_simple::UriValidator;
|
use gst_plugin_simple::UriValidator;
|
||||||
|
|
||||||
|
|
|
@ -14,11 +14,11 @@ use nom::IResult;
|
||||||
|
|
||||||
use flavors::parser as flavors;
|
use flavors::parser as flavors;
|
||||||
|
|
||||||
use gst_plugin::error::*;
|
|
||||||
use gst_plugin::adapter::*;
|
use gst_plugin::adapter::*;
|
||||||
use gst_plugin::bytes::*;
|
use gst_plugin::bytes::*;
|
||||||
use gst_plugin::element::*;
|
use gst_plugin::element::*;
|
||||||
use gst_plugin_simple::demuxer::*;
|
use gst_plugin_simple::demuxer::*;
|
||||||
|
use gst_plugin_simple::error::*;
|
||||||
|
|
||||||
use gst;
|
use gst;
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ use reqwest::{Client, Response};
|
||||||
use reqwest::header::{AcceptRanges, ByteRangeSpec, ContentLength, ContentRange, ContentRangeSpec,
|
use reqwest::header::{AcceptRanges, ByteRangeSpec, ContentLength, ContentRange, ContentRangeSpec,
|
||||||
Range, RangeUnit};
|
Range, RangeUnit};
|
||||||
|
|
||||||
use gst_plugin::error::*;
|
use gst_plugin_simple::error::*;
|
||||||
use gst_plugin_simple::source::*;
|
use gst_plugin_simple::source::*;
|
||||||
use gst_plugin_simple::UriValidator;
|
use gst_plugin_simple::UriValidator;
|
||||||
|
|
||||||
|
|
|
@ -12,10 +12,11 @@ use std::u32;
|
||||||
use std::u64;
|
use std::u64;
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
|
|
||||||
use gst_plugin::error::*;
|
|
||||||
use gst_plugin::object::*;
|
use gst_plugin::object::*;
|
||||||
use gst_plugin::element::*;
|
use gst_plugin::element::*;
|
||||||
|
|
||||||
|
use error::*;
|
||||||
|
|
||||||
use gst;
|
use gst;
|
||||||
use gst::prelude::*;
|
use gst::prelude::*;
|
||||||
use gst_base;
|
use gst_base;
|
||||||
|
|
115
gst-plugin-simple/src/error.rs
Normal file
115
gst-plugin-simple/src/error.rs
Normal file
|
@ -0,0 +1,115 @@
|
||||||
|
// Copyright (C) 2016-2017 Sebastian Dröge <sebastian@centricular.com>
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
// option. This file may not be copied, modified, or distributed
|
||||||
|
// except according to those terms.
|
||||||
|
|
||||||
|
use std::error::Error;
|
||||||
|
use std::fmt::{Display, Formatter};
|
||||||
|
use std::fmt::Error as FmtError;
|
||||||
|
|
||||||
|
use glib;
|
||||||
|
use gst;
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||||
|
pub enum FlowError {
|
||||||
|
Flushing,
|
||||||
|
Eos,
|
||||||
|
NotNegotiated(gst::ErrorMessage),
|
||||||
|
Error(gst::ErrorMessage),
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Into<gst::FlowReturn> for FlowError {
|
||||||
|
fn into(self) -> gst::FlowReturn {
|
||||||
|
(&self).into()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> Into<gst::FlowReturn> for &'a FlowError {
|
||||||
|
fn into(self) -> gst::FlowReturn {
|
||||||
|
match *self {
|
||||||
|
FlowError::Flushing => gst::FlowReturn::Flushing,
|
||||||
|
FlowError::Eos => gst::FlowReturn::Eos,
|
||||||
|
FlowError::NotNegotiated(..) => gst::FlowReturn::NotNegotiated,
|
||||||
|
FlowError::Error(..) => gst::FlowReturn::Error,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Display for FlowError {
|
||||||
|
fn fmt(&self, f: &mut Formatter) -> Result<(), FmtError> {
|
||||||
|
match *self {
|
||||||
|
FlowError::Flushing | FlowError::Eos => f.write_str(self.description()),
|
||||||
|
FlowError::NotNegotiated(ref m) => {
|
||||||
|
f.write_fmt(format_args!("{}: {}", self.description(), m))
|
||||||
|
}
|
||||||
|
FlowError::Error(ref m) => f.write_fmt(format_args!("{}: {}", self.description(), m)),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Error for FlowError {
|
||||||
|
fn description(&self) -> &str {
|
||||||
|
match *self {
|
||||||
|
FlowError::Flushing => "Flushing",
|
||||||
|
FlowError::Eos => "Eos",
|
||||||
|
FlowError::NotNegotiated(..) => "Not Negotiated",
|
||||||
|
FlowError::Error(..) => "Error",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug, PartialEq, Eq)]
|
||||||
|
pub struct UriError {
|
||||||
|
error: gst::URIError,
|
||||||
|
message: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl UriError {
|
||||||
|
pub fn new<T: Into<String>>(error: gst::URIError, message: T) -> UriError {
|
||||||
|
UriError {
|
||||||
|
error: error,
|
||||||
|
message: message.into(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn message(&self) -> &str {
|
||||||
|
&self.message
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn error(&self) -> gst::URIError {
|
||||||
|
self.error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Into<glib::Error> for UriError {
|
||||||
|
fn into(self) -> glib::Error {
|
||||||
|
(&self).into()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<'a> Into<glib::Error> for &'a UriError {
|
||||||
|
fn into(self) -> glib::Error {
|
||||||
|
glib::Error::new(self.error, &self.message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Display for UriError {
|
||||||
|
fn fmt(&self, f: &mut Formatter) -> Result<(), FmtError> {
|
||||||
|
f.write_fmt(format_args!("{}: {}", self.description(), self.message))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Error for UriError {
|
||||||
|
fn description(&self) -> &str {
|
||||||
|
match self.error {
|
||||||
|
gst::URIError::UnsupportedProtocol => "Unsupported protocol",
|
||||||
|
gst::URIError::BadUri => "Bad URI",
|
||||||
|
gst::URIError::BadState => "Bad State",
|
||||||
|
gst::URIError::BadReference => "Bad Reference",
|
||||||
|
_ => "Unknown",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -17,8 +17,6 @@ extern crate url;
|
||||||
pub mod source;
|
pub mod source;
|
||||||
pub mod sink;
|
pub mod sink;
|
||||||
pub mod demuxer;
|
pub mod demuxer;
|
||||||
|
pub mod error;
|
||||||
|
|
||||||
pub type UriValidator = Fn(&url::Url) -> Result<(), gst_plugin::error::UriError>
|
pub type UriValidator = Fn(&url::Url) -> Result<(), error::UriError> + Send + Sync + 'static;
|
||||||
+ Send
|
|
||||||
+ Sync
|
|
||||||
+ 'static;
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ use gst_plugin::properties::*;
|
||||||
use gst_plugin::element::*;
|
use gst_plugin::element::*;
|
||||||
use gst_plugin::base_sink::*;
|
use gst_plugin::base_sink::*;
|
||||||
use gst_plugin::uri_handler::*;
|
use gst_plugin::uri_handler::*;
|
||||||
use gst_plugin::error::*;
|
use error::*;
|
||||||
|
|
||||||
pub use gst_plugin::base_sink::BaseSink;
|
pub use gst_plugin::base_sink::BaseSink;
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ use gst_plugin::properties::*;
|
||||||
use gst_plugin::element::*;
|
use gst_plugin::element::*;
|
||||||
use gst_plugin::base_src::*;
|
use gst_plugin::base_src::*;
|
||||||
use gst_plugin::uri_handler::*;
|
use gst_plugin::uri_handler::*;
|
||||||
use gst_plugin::error::*;
|
use error::*;
|
||||||
|
|
||||||
pub use gst_plugin::base_src::BaseSrc;
|
pub use gst_plugin::base_src::BaseSrc;
|
||||||
|
|
||||||
|
|
|
@ -6,114 +6,6 @@
|
||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
use std::error::Error;
|
|
||||||
use std::fmt::{Display, Formatter};
|
|
||||||
use std::fmt::Error as FmtError;
|
|
||||||
|
|
||||||
use glib;
|
|
||||||
use gst;
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
||||||
pub enum FlowError {
|
|
||||||
Flushing,
|
|
||||||
Eos,
|
|
||||||
NotNegotiated(gst::ErrorMessage),
|
|
||||||
Error(gst::ErrorMessage),
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Into<gst::FlowReturn> for FlowError {
|
|
||||||
fn into(self) -> gst::FlowReturn {
|
|
||||||
(&self).into()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a> Into<gst::FlowReturn> for &'a FlowError {
|
|
||||||
fn into(self) -> gst::FlowReturn {
|
|
||||||
match *self {
|
|
||||||
FlowError::Flushing => gst::FlowReturn::Flushing,
|
|
||||||
FlowError::Eos => gst::FlowReturn::Eos,
|
|
||||||
FlowError::NotNegotiated(..) => gst::FlowReturn::NotNegotiated,
|
|
||||||
FlowError::Error(..) => gst::FlowReturn::Error,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Display for FlowError {
|
|
||||||
fn fmt(&self, f: &mut Formatter) -> Result<(), FmtError> {
|
|
||||||
match *self {
|
|
||||||
FlowError::Flushing | FlowError::Eos => f.write_str(self.description()),
|
|
||||||
FlowError::NotNegotiated(ref m) => {
|
|
||||||
f.write_fmt(format_args!("{}: {}", self.description(), m))
|
|
||||||
}
|
|
||||||
FlowError::Error(ref m) => f.write_fmt(format_args!("{}: {}", self.description(), m)),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Error for FlowError {
|
|
||||||
fn description(&self) -> &str {
|
|
||||||
match *self {
|
|
||||||
FlowError::Flushing => "Flushing",
|
|
||||||
FlowError::Eos => "Eos",
|
|
||||||
FlowError::NotNegotiated(..) => "Not Negotiated",
|
|
||||||
FlowError::Error(..) => "Error",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Eq)]
|
|
||||||
pub struct UriError {
|
|
||||||
error: gst::URIError,
|
|
||||||
message: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl UriError {
|
|
||||||
pub fn new<T: Into<String>>(error: gst::URIError, message: T) -> UriError {
|
|
||||||
UriError {
|
|
||||||
error: error,
|
|
||||||
message: message.into(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn message(&self) -> &str {
|
|
||||||
&self.message
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn error(&self) -> gst::URIError {
|
|
||||||
self.error
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Into<glib::Error> for UriError {
|
|
||||||
fn into(self) -> glib::Error {
|
|
||||||
(&self).into()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a> Into<glib::Error> for &'a UriError {
|
|
||||||
fn into(self) -> glib::Error {
|
|
||||||
glib::Error::new(self.error, &self.message)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Display for UriError {
|
|
||||||
fn fmt(&self, f: &mut Formatter) -> Result<(), FmtError> {
|
|
||||||
f.write_fmt(format_args!("{}: {}", self.description(), self.message))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Error for UriError {
|
|
||||||
fn description(&self) -> &str {
|
|
||||||
match self.error {
|
|
||||||
gst::URIError::UnsupportedProtocol => "Unsupported protocol",
|
|
||||||
gst::URIError::BadUri => "Bad URI",
|
|
||||||
gst::URIError::BadState => "Bad State",
|
|
||||||
gst::URIError::BadReference => "Bad Reference",
|
|
||||||
_ => "Unknown",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! panic_to_error(
|
macro_rules! panic_to_error(
|
||||||
($element:expr, $panicked:expr, $ret:expr, $code:block) => {{
|
($element:expr, $panicked:expr, $ret:expr, $code:block) => {{
|
||||||
|
|
Loading…
Reference in a new issue