Update gstreamer in gstplugin port.

This commit is contained in:
Josh Matthews 2020-02-19 17:46:43 -05:00
parent b13a37db28
commit fee7cc2a36
5 changed files with 58 additions and 146 deletions

176
Cargo.lock generated
View file

@ -1986,19 +1986,6 @@ dependencies = [
"gl_generator 0.13.1", "gl_generator 0.13.1",
] ]
[[package]]
name = "glib"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d70d737019da0473a7cd6d9240571cf58c6897dcb10edf32b90774f4ba237c1b"
dependencies = [
"bitflags",
"glib-sys",
"gobject-sys",
"lazy_static",
"libc",
]
[[package]] [[package]]
name = "glib" name = "glib"
version = "0.9.3" version = "0.9.3"
@ -2136,25 +2123,6 @@ dependencies = [
"toml", "toml",
] ]
[[package]]
name = "gstreamer"
version = "0.14.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fa91e470b0cd4b05611f7d0e89caf76e39752156440877f04c23ad34ffc9761c"
dependencies = [
"bitflags",
"cfg-if",
"glib 0.8.0",
"glib-sys",
"gobject-sys",
"gstreamer-sys",
"lazy_static",
"libc",
"muldiv",
"num-rational",
"paste",
]
[[package]] [[package]]
name = "gstreamer" name = "gstreamer"
version = "0.15.3" version = "0.15.3"
@ -2166,7 +2134,7 @@ dependencies = [
"futures-channel", "futures-channel",
"futures-core", "futures-core",
"futures-util", "futures-util",
"glib 0.9.3", "glib",
"glib-sys", "glib-sys",
"gobject-sys", "gobject-sys",
"gstreamer-sys", "gstreamer-sys",
@ -2186,12 +2154,12 @@ dependencies = [
"bitflags", "bitflags",
"futures-core", "futures-core",
"futures-sink", "futures-sink",
"glib 0.9.3", "glib",
"glib-sys", "glib-sys",
"gobject-sys", "gobject-sys",
"gstreamer 0.15.3", "gstreamer",
"gstreamer-app-sys", "gstreamer-app-sys",
"gstreamer-base 0.15.3", "gstreamer-base",
"gstreamer-sys", "gstreamer-sys",
"lazy_static", "lazy_static",
"libc", "libc",
@ -2218,12 +2186,12 @@ checksum = "6176dbe5c1c28e8739ffe14f5667b6a8a086e5960ce83fe84fad99bee98f2879"
dependencies = [ dependencies = [
"array-init", "array-init",
"bitflags", "bitflags",
"glib 0.9.3", "glib",
"glib-sys", "glib-sys",
"gobject-sys", "gobject-sys",
"gstreamer 0.15.3", "gstreamer",
"gstreamer-audio-sys", "gstreamer-audio-sys",
"gstreamer-base 0.15.3", "gstreamer-base",
"gstreamer-base-sys", "gstreamer-base-sys",
"gstreamer-sys", "gstreamer-sys",
"libc", "libc",
@ -2243,22 +2211,6 @@ dependencies = [
"pkg-config", "pkg-config",
] ]
[[package]]
name = "gstreamer-base"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9e72a0456c51e9cf3a21c96539bed9be3f38c85ea49eee6d87a4d61db0cc2b0"
dependencies = [
"bitflags",
"glib 0.8.0",
"glib-sys",
"gobject-sys",
"gstreamer 0.14.5",
"gstreamer-base-sys",
"gstreamer-sys",
"libc",
]
[[package]] [[package]]
name = "gstreamer-base" name = "gstreamer-base"
version = "0.15.3" version = "0.15.3"
@ -2266,10 +2218,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4cc044450693b54c09a4563257566e6161a0055ffa9f908aa5788282984581ca" checksum = "4cc044450693b54c09a4563257566e6161a0055ffa9f908aa5788282984581ca"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"glib 0.9.3", "glib",
"glib-sys", "glib-sys",
"gobject-sys", "gobject-sys",
"gstreamer 0.15.3", "gstreamer",
"gstreamer-base-sys", "gstreamer-base-sys",
"gstreamer-sys", "gstreamer-sys",
"libc", "libc",
@ -2288,27 +2240,6 @@ dependencies = [
"pkg-config", "pkg-config",
] ]
[[package]]
name = "gstreamer-gl"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3a7e54a021369cc93be69d2aaaab75e8916517bbc6de9d19f6584135df740580"
dependencies = [
"bitflags",
"byteorder",
"glib 0.8.0",
"glib-sys",
"gobject-sys",
"gstreamer 0.14.5",
"gstreamer-base 0.14.0",
"gstreamer-gl-sys",
"gstreamer-sys",
"gstreamer-video 0.14.0",
"gstreamer-video-sys",
"lazy_static",
"libc",
]
[[package]] [[package]]
name = "gstreamer-gl" name = "gstreamer-gl"
version = "0.15.0" version = "0.15.0"
@ -2317,14 +2248,14 @@ checksum = "7af26f75082a835541e09a347df10bf433533302e454487e532011e3c96d1d52"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"byteorder", "byteorder",
"glib 0.9.3", "glib",
"glib-sys", "glib-sys",
"gobject-sys", "gobject-sys",
"gstreamer 0.15.3", "gstreamer",
"gstreamer-base 0.15.3", "gstreamer-base",
"gstreamer-gl-sys", "gstreamer-gl-sys",
"gstreamer-sys", "gstreamer-sys",
"gstreamer-video 0.15.3", "gstreamer-video",
"gstreamer-video-sys", "gstreamer-video-sys",
"lazy_static", "lazy_static",
"libc", "libc",
@ -2352,13 +2283,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "11840a08baf63d5e2b4c94cc25c023cbfccb39f02e920c75b0550b975898be3b" checksum = "11840a08baf63d5e2b4c94cc25c023cbfccb39f02e920c75b0550b975898be3b"
dependencies = [ dependencies = [
"bitflags", "bitflags",
"glib 0.9.3", "glib",
"glib-sys", "glib-sys",
"gobject-sys", "gobject-sys",
"gstreamer 0.15.3", "gstreamer",
"gstreamer-player-sys", "gstreamer-player-sys",
"gstreamer-sys", "gstreamer-sys",
"gstreamer-video 0.15.3", "gstreamer-video",
"libc", "libc",
] ]
@ -2382,10 +2313,10 @@ version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "674df58b85cb077a357c581c29796fbeb5aa36e8362269807a11f938e5c7b973" checksum = "674df58b85cb077a357c581c29796fbeb5aa36e8362269807a11f938e5c7b973"
dependencies = [ dependencies = [
"glib 0.9.3", "glib",
"glib-sys", "glib-sys",
"gobject-sys", "gobject-sys",
"gstreamer 0.15.3", "gstreamer",
"gstreamer-sdp-sys", "gstreamer-sdp-sys",
"gstreamer-sys", "gstreamer-sys",
] ]
@ -2415,25 +2346,6 @@ dependencies = [
"pkg-config", "pkg-config",
] ]
[[package]]
name = "gstreamer-video"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b3f0b864eced7c270c0e083a433128ddf65cda2409a5f400e1c7af3cb59858f"
dependencies = [
"bitflags",
"glib 0.8.0",
"glib-sys",
"gobject-sys",
"gstreamer 0.14.5",
"gstreamer-base 0.14.0",
"gstreamer-base-sys",
"gstreamer-sys",
"gstreamer-video-sys",
"lazy_static",
"libc",
]
[[package]] [[package]]
name = "gstreamer-video" name = "gstreamer-video"
version = "0.15.3" version = "0.15.3"
@ -2443,11 +2355,11 @@ dependencies = [
"bitflags", "bitflags",
"futures-channel", "futures-channel",
"futures-util", "futures-util",
"glib 0.9.3", "glib",
"glib-sys", "glib-sys",
"gobject-sys", "gobject-sys",
"gstreamer 0.15.3", "gstreamer",
"gstreamer-base 0.15.3", "gstreamer-base",
"gstreamer-base-sys", "gstreamer-base-sys",
"gstreamer-sys", "gstreamer-sys",
"gstreamer-video-sys", "gstreamer-video-sys",
@ -2475,10 +2387,10 @@ version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e64235af90676896b01f3cbe50808fefaf498057ca288ce4a31a89de81464e04" checksum = "e64235af90676896b01f3cbe50808fefaf498057ca288ce4a31a89de81464e04"
dependencies = [ dependencies = [
"glib 0.9.3", "glib",
"glib-sys", "glib-sys",
"gobject-sys", "gobject-sys",
"gstreamer 0.15.3", "gstreamer",
"gstreamer-sdp", "gstreamer-sdp",
"gstreamer-sys", "gstreamer-sys",
"gstreamer-webrtc-sys", "gstreamer-webrtc-sys",
@ -3245,7 +3157,7 @@ dependencies = [
"gaol", "gaol",
"gfx", "gfx",
"gleam 0.6.18", "gleam 0.6.18",
"gstreamer 0.14.5", "gstreamer",
"ipc-channel", "ipc-channel",
"keyboard-types", "keyboard-types",
"layout_thread_2013", "layout_thread_2013",
@ -5137,14 +5049,14 @@ dependencies = [
"crossbeam-channel", "crossbeam-channel",
"euclid", "euclid",
"gleam 0.6.18", "gleam 0.6.18",
"glib 0.8.0", "glib",
"gst-plugin-version-helper", "gst-plugin-version-helper",
"gstreamer 0.14.5", "gstreamer",
"gstreamer-base 0.14.0", "gstreamer-base",
"gstreamer-gl 0.14.0", "gstreamer-gl",
"gstreamer-gl-sys", "gstreamer-gl-sys",
"gstreamer-sys", "gstreamer-sys",
"gstreamer-video 0.14.0", "gstreamer-video",
"lazy_static", "lazy_static",
"libservo", "libservo",
"log", "log",
@ -5208,16 +5120,16 @@ source = "git+https://github.com/servo/media#03c7420794b7d1bb80e50e03eaf3ae6e55f
dependencies = [ dependencies = [
"boxfnonce", "boxfnonce",
"byte-slice-cast", "byte-slice-cast",
"glib 0.9.3", "glib",
"glib-sys", "glib-sys",
"gstreamer 0.15.3", "gstreamer",
"gstreamer-app", "gstreamer-app",
"gstreamer-audio", "gstreamer-audio",
"gstreamer-base 0.15.3", "gstreamer-base",
"gstreamer-player", "gstreamer-player",
"gstreamer-sdp", "gstreamer-sdp",
"gstreamer-sys", "gstreamer-sys",
"gstreamer-video 0.15.3", "gstreamer-video",
"gstreamer-webrtc", "gstreamer-webrtc",
"ipc-channel", "ipc-channel",
"lazy_static", "lazy_static",
@ -5242,8 +5154,8 @@ name = "servo-media-gstreamer-render"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/servo/media#03c7420794b7d1bb80e50e03eaf3ae6e55f446ac" source = "git+https://github.com/servo/media#03c7420794b7d1bb80e50e03eaf3ae6e55f446ac"
dependencies = [ dependencies = [
"gstreamer 0.15.3", "gstreamer",
"gstreamer-video 0.15.3", "gstreamer-video",
"servo-media-player", "servo-media-player",
] ]
@ -5252,10 +5164,10 @@ name = "servo-media-gstreamer-render-android"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/servo/media#03c7420794b7d1bb80e50e03eaf3ae6e55f446ac" source = "git+https://github.com/servo/media#03c7420794b7d1bb80e50e03eaf3ae6e55f446ac"
dependencies = [ dependencies = [
"glib 0.9.3", "glib",
"gstreamer 0.15.3", "gstreamer",
"gstreamer-gl 0.15.0", "gstreamer-gl",
"gstreamer-video 0.15.3", "gstreamer-video",
"servo-media-gstreamer-render", "servo-media-gstreamer-render",
"servo-media-player", "servo-media-player",
] ]
@ -5265,10 +5177,10 @@ name = "servo-media-gstreamer-render-unix"
version = "0.1.0" version = "0.1.0"
source = "git+https://github.com/servo/media#03c7420794b7d1bb80e50e03eaf3ae6e55f446ac" source = "git+https://github.com/servo/media#03c7420794b7d1bb80e50e03eaf3ae6e55f446ac"
dependencies = [ dependencies = [
"glib 0.9.3", "glib",
"gstreamer 0.15.3", "gstreamer",
"gstreamer-gl 0.15.0", "gstreamer-gl",
"gstreamer-video 0.15.3", "gstreamer-video",
"servo-media-gstreamer-render", "servo-media-gstreamer-render",
"servo-media-player", "servo-media-player",
] ]
@ -5541,7 +5453,7 @@ dependencies = [
"android_injected_glue", "android_injected_glue",
"android_logger", "android_logger",
"cc", "cc",
"gstreamer 0.14.5", "gstreamer",
"jni", "jni",
"libc", "libc",
"log", "log",

View file

@ -90,7 +90,7 @@ webvr_traits = {path = "../webvr_traits"}
webxr-api = {git = "https://github.com/servo/webxr"} webxr-api = {git = "https://github.com/servo/webxr"}
webxr = {git = "https://github.com/servo/webxr"} webxr = {git = "https://github.com/servo/webxr"}
surfman = { version = "0.1", features = ["sm-osmesa"] } surfman = { version = "0.1", features = ["sm-osmesa"] }
gstreamer = { version = "0.14.5", optional = true } gstreamer = { version = "0.15", optional = true }
[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os="android"), not(target_arch="arm"), not(target_arch="aarch64")))'.dependencies] [target.'cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os="android"), not(target_arch="arm"), not(target_arch="aarch64")))'.dependencies]
gaol = "0.2.1" gaol = "0.2.1"

View file

@ -18,13 +18,13 @@ path = "lib.rs"
crossbeam-channel = "0.4" crossbeam-channel = "0.4"
euclid = "0.20" euclid = "0.20"
gleam = "0.6" gleam = "0.6"
glib = { version = "0.8", features = ["subclassing"] } glib = "0.9"
gstreamer = { version = "0.14", features = ["subclassing"] } gstreamer = "0.15"
gstreamer-base = { version = "0.14", features = ["subclassing"] } gstreamer-base = "0.15"
gstreamer-gl = { version = "0.14" } gstreamer-gl = "0.15"
gstreamer-gl-sys = { version = "0.8", features = ["wayland"] } gstreamer-gl-sys = { version = "0.8", features = ["wayland"] }
gstreamer-sys = { version = "0.8" } gstreamer-sys = "0.8"
gstreamer-video = { version = "0.14", features = ["subclassing"] } gstreamer-video = "0.15"
log = "0.4" log = "0.4"
lazy_static = "1.4" lazy_static = "1.4"
libservo = {path = "../../components/servo"} libservo = {path = "../../components/servo"}

View file

@ -12,7 +12,6 @@ use euclid::Rect;
use euclid::Scale; use euclid::Scale;
use euclid::Size2D; use euclid::Size2D;
use glib::glib_bool_error;
use glib::glib_object_impl; use glib::glib_object_impl;
use glib::glib_object_subclass; use glib::glib_object_subclass;
use glib::object::Cast; use glib::object::Cast;
@ -110,6 +109,7 @@ use std::collections::HashMap;
use std::convert::TryFrom; use std::convert::TryFrom;
use std::ffi::c_void; use std::ffi::c_void;
use std::rc::Rc; use std::rc::Rc;
use std::str::FromStr;
use std::sync::atomic::AtomicU64; use std::sync::atomic::AtomicU64;
use std::sync::atomic::Ordering; use std::sync::atomic::Ordering;
use std::sync::Mutex; use std::sync::Mutex;
@ -519,7 +519,7 @@ impl ObjectSubclass for ServoWebSrc {
env!("CARGO_PKG_AUTHORS"), env!("CARGO_PKG_AUTHORS"),
); );
let src_caps = Caps::from_string(CAPS).unwrap(); let src_caps = Caps::from_str(CAPS).unwrap();
let src_pad_template = let src_pad_template =
PadTemplate::new("src", PadDirection::Src, PadPresence::Always, &src_caps).unwrap(); PadTemplate::new("src", PadDirection::Src, PadPresence::Always, &src_caps).unwrap();
klass.add_pad_template(src_pad_template); klass.add_pad_template(src_pad_template);
@ -546,7 +546,7 @@ impl ObjectImpl for ServoWebSrc {
Property("url", ..) => { Property("url", ..) => {
let mut guard = self.url.lock().expect("Failed to lock mutex"); let mut guard = self.url.lock().expect("Failed to lock mutex");
let url = value.get().expect("Failed to get url value"); let url = value.get().expect("Failed to get url value");
*guard = Some(url); *guard = url;
}, },
_ => unimplemented!(), _ => unimplemented!(),
} }
@ -572,14 +572,14 @@ impl BaseSrcImpl for ServoWebSrc {
// Save the video info for later use // Save the video info for later use
let info = VideoInfo::from_caps(outcaps) let info = VideoInfo::from_caps(outcaps)
.ok_or_else(|| gst_loggable_error!(CATEGORY, "Failed to get video info"))?; .map_err(|_| gst_loggable_error!(CATEGORY, "Failed to get video info"))?;
*self.info.lock().unwrap() = Some(info); *self.info.lock().unwrap() = Some(info);
// Save the framerate if it is set // Save the framerate if it is set
let framerate = outcaps let framerate = outcaps
.get_structure(0) .get_structure(0)
.and_then(|cap| cap.get::<Fraction>("framerate")); .and_then(|cap| cap.get::<Fraction>("framerate").ok());
if let Some(framerate) = framerate { if let Some(Some(framerate)) = framerate {
let frame_duration_micros = let frame_duration_micros =
1_000_000 * *framerate.denom() as u64 / *framerate.numer() as u64; 1_000_000 * *framerate.denom() as u64 / *framerate.numer() as u64;
debug!("Setting frame duration to {}micros", frame_duration_micros); debug!("Setting frame duration to {}micros", frame_duration_micros);

View file

@ -16,7 +16,7 @@ bench = false
[dependencies] [dependencies]
android_injected_glue = "0.2" android_injected_glue = "0.2"
android_logger = "0.7" android_logger = "0.7"
gstreamer = "0.14.5" gstreamer = "0.15"
jni = "0.10.2" jni = "0.10.2"
libc = "0.2" libc = "0.2"
log = "0.4" log = "0.4"