forked from mirrors/gstreamer-rs
Update minimum supported version to 1.14
This is the version that is available in Ubuntu 18.04.
This commit is contained in:
parent
5052a93ee3
commit
4651c9db4d
216 changed files with 604 additions and 3311 deletions
29
README.md
29
README.md
|
@ -24,7 +24,7 @@ API metadata provided by the GStreamer project.
|
|||
## Installation
|
||||
|
||||
To build the GStreamer bindings or anything depending on them, you need to
|
||||
have at least GStreamer 1.8 and gst-plugins-base 1.8 installed. In addition,
|
||||
have at least GStreamer 1.14 and gst-plugins-base 1.14 installed. In addition,
|
||||
some of the examples/tutorials require various GStreamer plugins to be
|
||||
available, which can be found in gst-plugins-base, gst-plugins-good,
|
||||
gst-plugins-bad, gst-plugins-ugly and/or gst-libav.
|
||||
|
@ -45,16 +45,13 @@ $ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
|||
gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev
|
||||
```
|
||||
|
||||
The minimum required version of the above libraries is >= 1.8. If you
|
||||
The minimum required version of the above libraries is >= 1.14. If you
|
||||
build the gstreamer-player sub-crate, or any of the examples that
|
||||
depend on gstreamer-player, you must ensure that in addition to the
|
||||
above packages, `libgstreamer-plugins-bad1.0-dev` is installed and
|
||||
that the version is >= 1.12. See the `Cargo.toml` files for the full
|
||||
details,
|
||||
depend on gstreamer-player, you must ensure that in addition to the above
|
||||
packages, `libgstreamer-plugins-bad1.0-dev` is installed. See the `Cargo.toml`
|
||||
files for the full details,
|
||||
|
||||
```console
|
||||
$ # Only if you wish to install gstreamer-player, make sure the version
|
||||
$ # of this package is >= 1.12.
|
||||
$ apt-get install libgstreamer-plugins-bad1.0-dev
|
||||
```
|
||||
|
||||
|
@ -82,15 +79,13 @@ $ brew install gstreamer gst-plugins-base gst-plugins-good \
|
|||
--enable-gtk3
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.pkg` files from the GStreamer website and
|
||||
install them, e.g. `gstreamer-1.0-1.12.3-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.12.3-x86_64.pkg`.
|
||||
install them, e.g. `gstreamer-1.0-1.14.0-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.0-x86_64.pkg`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via Homebrew)
|
||||
and set the `PKG_CONFIG_PATH` environment variable
|
||||
|
@ -118,9 +113,7 @@ $ pacman -S glib2-devel pkg-config \
|
|||
mingw-w64-x86_64-gst-rtsp-server
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
Note that the version of `pkg-config` included in `MSYS2` is
|
||||
[known to have problems](https://github.com/rust-lang/pkg-config-rs/issues/51#issuecomment-346300858)
|
||||
|
@ -130,8 +123,8 @@ would be [`pkg-config-lite`](https://sourceforge.net/projects/pkgconfiglite/).
|
|||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.msi` files for your platform from the
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.12.3.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.12.3.msi`.
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.0.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.0.msi`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via MSYS2 or
|
||||
from [here](https://sourceforge.net/projects/pkgconfiglite/))
|
||||
|
|
|
@ -55,8 +55,6 @@ gtkvideooverlay-x11 = ["gtkvideooverlay"]
|
|||
gtkvideooverlay-quartz = ["gtkvideooverlay"]
|
||||
rtsp-server = ["gst-rtsp-server", "gst-rtsp", "gst-sdp"]
|
||||
rtsp-server-record = ["gst-rtsp-server", "gst-rtsp", "gio"]
|
||||
v1_10 = ["gst/v1_10"]
|
||||
v1_14 = ["gst/v1_14"]
|
||||
pango-cairo = ["pango", "pangocairo", "cairo-rs"]
|
||||
overlay-composition = ["pango", "pangocairo", "cairo-rs"]
|
||||
gl = ["gst-gl", "gl_generator", "glutin"]
|
||||
|
@ -70,7 +68,6 @@ name = "appsrc"
|
|||
|
||||
[[bin]]
|
||||
name = "custom_events"
|
||||
required-features = ["v1_10"]
|
||||
|
||||
[[bin]]
|
||||
name = "custom_meta"
|
||||
|
@ -80,7 +77,6 @@ name = "decodebin"
|
|||
|
||||
[[bin]]
|
||||
name = "debug_ringbuffer"
|
||||
required-features = ["v1_14"]
|
||||
|
||||
[[bin]]
|
||||
name = "encodebin"
|
||||
|
|
|
@ -34,7 +34,6 @@ use gst::element_warning;
|
|||
use gst::prelude::*;
|
||||
|
||||
use std::env;
|
||||
#[cfg(feature = "v1_10")]
|
||||
use std::sync::{Arc, Mutex};
|
||||
|
||||
use anyhow::Error;
|
||||
|
@ -56,7 +55,6 @@ struct ErrorMessage {
|
|||
source: glib::Error,
|
||||
}
|
||||
|
||||
#[cfg(feature = "v1_10")]
|
||||
#[derive(Clone, Debug, glib::Boxed)]
|
||||
#[boxed_type(name = "ErrorValue")]
|
||||
struct ErrorValue(Arc<Mutex<Option<Error>>>);
|
||||
|
@ -202,7 +200,6 @@ fn example_main() -> Result<(), Error> {
|
|||
if let Err(err) = insert_sink(is_audio, is_video) {
|
||||
// The following sends a message of type Error on the bus, containing our detailed
|
||||
// error information.
|
||||
#[cfg(feature = "v1_10")]
|
||||
element_error!(
|
||||
dbin,
|
||||
gst::LibraryError::Failed,
|
||||
|
@ -212,14 +209,6 @@ fn example_main() -> Result<(), Error> {
|
|||
&ErrorValue(Arc::new(Mutex::new(Some(err)))))
|
||||
.build()
|
||||
);
|
||||
|
||||
#[cfg(not(feature = "v1_10"))]
|
||||
element_error!(
|
||||
dbin,
|
||||
gst::LibraryError::Failed,
|
||||
("Failed to insert sink"),
|
||||
["{}", err]
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -241,39 +230,23 @@ fn example_main() -> Result<(), Error> {
|
|||
MessageView::Error(err) => {
|
||||
pipeline.set_state(gst::State::Null)?;
|
||||
|
||||
#[cfg(feature = "v1_10")]
|
||||
{
|
||||
match err.details() {
|
||||
// This bus-message of type error contained our custom error-details struct
|
||||
// that we sent in the pad-added callback above. So we unpack it and log
|
||||
// the detailed error information here. details contains a glib::SendValue.
|
||||
// The unpacked error is the converted to a Result::Err, stopping the
|
||||
// application's execution.
|
||||
Some(details) if details.name() == "error-details" => details
|
||||
.get::<&ErrorValue>("error")
|
||||
.unwrap()
|
||||
.clone()
|
||||
.0
|
||||
.lock()
|
||||
.unwrap()
|
||||
.take()
|
||||
.map(Result::Err)
|
||||
.expect("error-details message without actual error"),
|
||||
_ => Err(ErrorMessage {
|
||||
src: msg
|
||||
.src()
|
||||
.map(|s| String::from(s.path_string()))
|
||||
.unwrap_or_else(|| String::from("None")),
|
||||
error: err.error().to_string(),
|
||||
debug: err.debug(),
|
||||
source: err.error(),
|
||||
}
|
||||
.into()),
|
||||
}?;
|
||||
}
|
||||
#[cfg(not(feature = "v1_10"))]
|
||||
{
|
||||
return Err(ErrorMessage {
|
||||
match err.details() {
|
||||
// This bus-message of type error contained our custom error-details struct
|
||||
// that we sent in the pad-added callback above. So we unpack it and log
|
||||
// the detailed error information here. details contains a glib::SendValue.
|
||||
// The unpacked error is the converted to a Result::Err, stopping the
|
||||
// application's execution.
|
||||
Some(details) if details.name() == "error-details" => details
|
||||
.get::<&ErrorValue>("error")
|
||||
.unwrap()
|
||||
.clone()
|
||||
.0
|
||||
.lock()
|
||||
.unwrap()
|
||||
.take()
|
||||
.map(Result::Err)
|
||||
.expect("error-details message without actual error"),
|
||||
_ => Err(ErrorMessage {
|
||||
src: msg
|
||||
.src()
|
||||
.map(|s| String::from(s.path_string()))
|
||||
|
@ -282,8 +255,8 @@ fn example_main() -> Result<(), Error> {
|
|||
debug: err.debug(),
|
||||
source: err.error(),
|
||||
}
|
||||
.into());
|
||||
}
|
||||
.into()),
|
||||
}?;
|
||||
}
|
||||
MessageView::StateChanged(s) => {
|
||||
println!(
|
||||
|
|
|
@ -18,7 +18,6 @@ use gst::element_warning;
|
|||
use gst_pbutils::prelude::*;
|
||||
|
||||
use std::env;
|
||||
#[cfg(feature = "v1_10")]
|
||||
use std::sync::{Arc, Mutex};
|
||||
|
||||
use anyhow::Error;
|
||||
|
@ -40,7 +39,6 @@ struct ErrorMessage {
|
|||
source: glib::Error,
|
||||
}
|
||||
|
||||
#[cfg(feature = "v1_10")]
|
||||
#[derive(Clone, Debug, glib::Boxed)]
|
||||
#[boxed_type(name = "ErrorValue")]
|
||||
struct ErrorValue(Arc<Mutex<Option<Error>>>);
|
||||
|
@ -226,7 +224,6 @@ fn example_main() -> Result<(), Error> {
|
|||
};
|
||||
|
||||
if let Err(err) = link_to_encodebin(is_audio, is_video) {
|
||||
#[cfg(feature = "v1_10")]
|
||||
element_error!(
|
||||
dbin,
|
||||
gst::LibraryError::Failed,
|
||||
|
@ -236,14 +233,6 @@ fn example_main() -> Result<(), Error> {
|
|||
&ErrorValue(Arc::new(Mutex::new(Some(err)))))
|
||||
.build()
|
||||
);
|
||||
|
||||
#[cfg(not(feature = "v1_10"))]
|
||||
element_error!(
|
||||
dbin,
|
||||
gst::LibraryError::Failed,
|
||||
("Failed to insert sink"),
|
||||
["{}", err]
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -261,34 +250,18 @@ fn example_main() -> Result<(), Error> {
|
|||
MessageView::Error(err) => {
|
||||
pipeline.set_state(gst::State::Null)?;
|
||||
|
||||
#[cfg(feature = "v1_10")]
|
||||
{
|
||||
match err.details() {
|
||||
Some(details) if details.name() == "error-details" => details
|
||||
.get::<&ErrorValue>("error")
|
||||
.unwrap()
|
||||
.clone()
|
||||
.0
|
||||
.lock()
|
||||
.unwrap()
|
||||
.take()
|
||||
.map(Result::Err)
|
||||
.expect("error-details message without actual error"),
|
||||
_ => Err(ErrorMessage {
|
||||
src: msg
|
||||
.src()
|
||||
.map(|s| String::from(s.path_string()))
|
||||
.unwrap_or_else(|| String::from("None")),
|
||||
error: err.error().to_string(),
|
||||
debug: err.debug(),
|
||||
source: err.error(),
|
||||
}
|
||||
.into()),
|
||||
}?;
|
||||
}
|
||||
#[cfg(not(feature = "v1_10"))]
|
||||
{
|
||||
return Err(ErrorMessage {
|
||||
match err.details() {
|
||||
Some(details) if details.name() == "error-details" => details
|
||||
.get::<&ErrorValue>("error")
|
||||
.unwrap()
|
||||
.clone()
|
||||
.0
|
||||
.lock()
|
||||
.unwrap()
|
||||
.take()
|
||||
.map(Result::Err)
|
||||
.expect("error-details message without actual error"),
|
||||
_ => Err(ErrorMessage {
|
||||
src: msg
|
||||
.src()
|
||||
.map(|s| String::from(s.path_string()))
|
||||
|
@ -297,8 +270,8 @@ fn example_main() -> Result<(), Error> {
|
|||
debug: err.debug(),
|
||||
source: err.error(),
|
||||
}
|
||||
.into());
|
||||
}
|
||||
.into()),
|
||||
}?;
|
||||
}
|
||||
MessageView::StateChanged(s) => {
|
||||
println!(
|
||||
|
|
|
@ -23,7 +23,7 @@ fn main_loop(uri: &str) -> Result<(), Error> {
|
|||
|
||||
let dispatcher = gst_player::PlayerGMainContextSignalDispatcher::new(None);
|
||||
let player = gst_player::Player::new(
|
||||
None,
|
||||
gst_player::PlayerVideoRenderer::NONE,
|
||||
Some(&dispatcher.upcast::<gst_player::PlayerSignalDispatcher>()),
|
||||
);
|
||||
|
||||
|
|
|
@ -26,10 +26,7 @@ gir-format-check = "0.1"
|
|||
|
||||
[features]
|
||||
default = []
|
||||
v1_10 = ["gst/v1_10", "ffi/v1_10"]
|
||||
v1_12 = ["gst/v1_12", "ffi/v1_12", "v1_10"]
|
||||
v1_14 = ["gst/v1_14", "ffi/v1_14", "v1_12"]
|
||||
v1_16 = ["gst/v1_16", "ffi/v1_16", "v1_14"]
|
||||
v1_16 = ["gst/v1_16", "ffi/v1_16"]
|
||||
v1_18 = ["gst/v1_18", "ffi/v1_18", "v1_16"]
|
||||
v1_20 = ["gst/v1_20", "ffi/v1_20", "v1_18"]
|
||||
v1_22 = ["gst/v1_22", "ffi/v1_22", "v1_20"]
|
||||
|
|
|
@ -4,7 +4,7 @@ generate_display_trait = false
|
|||
generate_safety_asserts = true
|
||||
girs_directories = ["../gir-files", "../gst-gir-files"]
|
||||
library = "GstAllocators"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
single_version_file = true
|
||||
trust_return_value_nullability = true
|
||||
version = "1.0"
|
||||
|
|
|
@ -24,7 +24,7 @@ API metadata provided by the GStreamer project.
|
|||
## Installation
|
||||
|
||||
To build the GStreamer bindings or anything depending on them, you need to
|
||||
have at least GStreamer 1.8 and gst-plugins-base 1.8 installed. In addition,
|
||||
have at least GStreamer 1.14 and gst-plugins-base 1.14 installed. In addition,
|
||||
some of the examples/tutorials require various GStreamer plugins to be
|
||||
available, which can be found in gst-plugins-base, gst-plugins-good,
|
||||
gst-plugins-bad, gst-plugins-ugly and/or gst-libav.
|
||||
|
@ -45,16 +45,13 @@ $ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
|||
gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev
|
||||
```
|
||||
|
||||
The minimum required version of the above libraries is >= 1.8. If you
|
||||
The minimum required version of the above libraries is >= 1.14. If you
|
||||
build the gstreamer-player sub-crate, or any of the examples that
|
||||
depend on gstreamer-player, you must ensure that in addition to the
|
||||
above packages, `libgstreamer-plugins-bad1.0-dev` is installed and
|
||||
that the version is >= 1.12. See the `Cargo.toml` files for the full
|
||||
details,
|
||||
depend on gstreamer-player, you must ensure that in addition to the above
|
||||
packages, `libgstreamer-plugins-bad1.0-dev` is installed. See the `Cargo.toml`
|
||||
files for the full details,
|
||||
|
||||
```console
|
||||
$ # Only if you wish to install gstreamer-player, make sure the version
|
||||
$ # of this package is >= 1.12.
|
||||
$ apt-get install libgstreamer-plugins-bad1.0-dev
|
||||
```
|
||||
|
||||
|
@ -82,15 +79,13 @@ $ brew install gstreamer gst-plugins-base gst-plugins-good \
|
|||
--enable-gtk3
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.pkg` files from the GStreamer website and
|
||||
install them, e.g. `gstreamer-1.0-1.12.3-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.12.3-x86_64.pkg`.
|
||||
install them, e.g. `gstreamer-1.0-1.14.0-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.0-x86_64.pkg`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via Homebrew)
|
||||
and set the `PKG_CONFIG_PATH` environment variable
|
||||
|
@ -118,9 +113,7 @@ $ pacman -S glib2-devel pkg-config \
|
|||
mingw-w64-x86_64-gst-rtsp-server
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
Note that the version of `pkg-config` included in `MSYS2` is
|
||||
[known to have problems](https://github.com/rust-lang/pkg-config-rs/issues/51#issuecomment-346300858)
|
||||
|
@ -130,8 +123,8 @@ would be [`pkg-config-lite`](https://sourceforge.net/projects/pkgconfiglite/).
|
|||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.msi` files for your platform from the
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.12.3.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.12.3.msi`.
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.0.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.0.msi`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via MSYS2 or
|
||||
from [here](https://sourceforge.net/projects/pkgconfiglite/))
|
||||
|
|
|
@ -15,8 +15,6 @@ pub static ALLOCATOR_FD: once_cell::sync::Lazy<&'static str> =
|
|||
once_cell::sync::Lazy::new(|| unsafe {
|
||||
CStr::from_ptr(ffi::GST_ALLOCATOR_FD).to_str().unwrap()
|
||||
});
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
#[doc(alias = "GST_CAPS_FEATURE_MEMORY_DMABUF")]
|
||||
pub static CAPS_FEATURE_MEMORY_DMABUF: once_cell::sync::Lazy<&'static str> =
|
||||
once_cell::sync::Lazy::new(|| unsafe {
|
||||
|
|
|
@ -5,23 +5,15 @@
|
|||
|
||||
#[cfg(any(target_os = "linux", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(target_os = "linux")))]
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
mod dma_buf_allocator;
|
||||
#[cfg(any(target_os = "linux", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(target_os = "linux")))]
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub use self::dma_buf_allocator::DmaBufAllocator;
|
||||
|
||||
mod fd_allocator;
|
||||
pub use self::fd_allocator::FdAllocator;
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod phys_memory_allocator;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use self::phys_memory_allocator::PhysMemoryAllocator;
|
||||
|
||||
mod flags;
|
||||
|
@ -32,13 +24,9 @@ pub mod functions;
|
|||
mod constants;
|
||||
pub use self::constants::ALLOCATOR_DMABUF;
|
||||
pub use self::constants::ALLOCATOR_FD;
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub use self::constants::CAPS_FEATURE_MEMORY_DMABUF;
|
||||
|
||||
#[doc(hidden)]
|
||||
pub mod traits {
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use super::phys_memory_allocator::PhysMemoryAllocatorExt;
|
||||
}
|
||||
|
|
|
@ -38,11 +38,7 @@ macro_rules! skip_assert_initialized {
|
|||
mod auto;
|
||||
pub use crate::auto::*;
|
||||
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
mod caps_features;
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub use crate::caps_features::CAPS_FEATURES_MEMORY_DMABUF;
|
||||
|
||||
mod fd_allocator;
|
||||
|
@ -50,20 +46,12 @@ pub use fd_allocator::*;
|
|||
|
||||
#[cfg(any(target_os = "linux", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(target_os = "linux")))]
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
mod dma_buf_allocator;
|
||||
#[cfg(any(target_os = "linux", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(target_os = "linux")))]
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub use dma_buf_allocator::*;
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod phys_memory;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use phys_memory::*;
|
||||
|
||||
// Re-export all the traits in a prelude module, so that applications
|
||||
|
|
|
@ -22,10 +22,7 @@ tempfile = "3"
|
|||
|
||||
[features]
|
||||
dox = []
|
||||
v1_10 = []
|
||||
v1_12 = ["v1_10"]
|
||||
v1_14 = ["v1_12"]
|
||||
v1_16 = ["v1_14"]
|
||||
v1_16 = []
|
||||
v1_18 = ["v1_16"]
|
||||
v1_20 = ["v1_18"]
|
||||
v1_22 = ["v1_20"]
|
||||
|
@ -51,15 +48,6 @@ version = "0.19.0"
|
|||
features = ["dox"]
|
||||
[package.metadata.system-deps.gstreamer_allocators_1_0]
|
||||
name = "gstreamer-allocators-1.0"
|
||||
version = "1.8"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_allocators_1_0.v1_10]
|
||||
version = "1.10"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_allocators_1_0.v1_12]
|
||||
version = "1.12"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_allocators_1_0.v1_14]
|
||||
version = "1.14"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_allocators_1_0.v1_16]
|
||||
|
|
|
@ -2,16 +2,13 @@
|
|||
girs_directories = ["../../gir-files", "../../gst-gir-files"]
|
||||
library = "GstAllocators"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "sys"
|
||||
|
||||
extra_versions = [
|
||||
"1.20",
|
||||
"1.18",
|
||||
"1.16",
|
||||
"1.14",
|
||||
"1.12",
|
||||
"1.10",
|
||||
]
|
||||
|
||||
external_libraries = [
|
||||
|
|
|
@ -129,8 +129,6 @@ extern "C" {
|
|||
//=========================================================================
|
||||
// GstDmaBufAllocator
|
||||
//=========================================================================
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub fn gst_dmabuf_allocator_get_type() -> GType;
|
||||
pub fn gst_dmabuf_allocator_new() -> *mut gst::GstAllocator;
|
||||
pub fn gst_dmabuf_allocator_alloc(
|
||||
|
@ -162,8 +160,6 @@ extern "C" {
|
|||
//=========================================================================
|
||||
// GstPhysMemoryAllocator
|
||||
//=========================================================================
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_phys_memory_allocator_get_type() -> GType;
|
||||
|
||||
//=========================================================================
|
||||
|
@ -173,11 +169,7 @@ extern "C" {
|
|||
pub fn gst_fd_memory_get_fd(mem: *mut gst::GstMemory) -> c_int;
|
||||
pub fn gst_is_dmabuf_memory(mem: *mut gst::GstMemory) -> gboolean;
|
||||
pub fn gst_is_fd_memory(mem: *mut gst::GstMemory) -> gboolean;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_is_phys_memory(mem: *mut gst::GstMemory) -> gboolean;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_phys_memory_get_phys_addr(mem: *mut gst::GstMemory) -> uintptr_t;
|
||||
|
||||
}
|
||||
|
|
|
@ -31,10 +31,7 @@ gir-format-check = "0.1"
|
|||
|
||||
[features]
|
||||
default = []
|
||||
v1_10 = ["gst/v1_10", "gst-base/v1_10", "ffi/v1_10"]
|
||||
v1_12 = ["gst/v1_12", "gst-base/v1_12", "ffi/v1_12", "v1_10"]
|
||||
v1_14 = ["gst/v1_14", "gst-base/v1_14", "ffi/v1_14", "v1_12"]
|
||||
v1_16 = ["gst/v1_16", "gst-base/v1_16", "ffi/v1_16", "v1_14"]
|
||||
v1_16 = ["gst/v1_16", "gst-base/v1_16", "ffi/v1_16"]
|
||||
v1_18 = ["gst/v1_18", "gst-base/v1_18", "ffi/v1_18", "v1_16"]
|
||||
v1_20 = ["gst/v1_20", "gst-base/v1_20", "ffi/v1_20", "v1_18"]
|
||||
v1_22 = ["gst/v1_22", "gst-base/v1_22", "ffi/v1_22", "v1_20"]
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
girs_directories = ["../gir-files", "../gst-gir-files"]
|
||||
library = "GstApp"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "normal"
|
||||
concurrency = "send+sync"
|
||||
generate_safety_asserts = true
|
||||
|
|
|
@ -24,7 +24,7 @@ API metadata provided by the GStreamer project.
|
|||
## Installation
|
||||
|
||||
To build the GStreamer bindings or anything depending on them, you need to
|
||||
have at least GStreamer 1.8 and gst-plugins-base 1.8 installed. In addition,
|
||||
have at least GStreamer 1.14 and gst-plugins-base 1.14 installed. In addition,
|
||||
some of the examples/tutorials require various GStreamer plugins to be
|
||||
available, which can be found in gst-plugins-base, gst-plugins-good,
|
||||
gst-plugins-bad, gst-plugins-ugly and/or gst-libav.
|
||||
|
@ -45,16 +45,13 @@ $ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
|||
gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev
|
||||
```
|
||||
|
||||
The minimum required version of the above libraries is >= 1.8. If you
|
||||
The minimum required version of the above libraries is >= 1.14. If you
|
||||
build the gstreamer-player sub-crate, or any of the examples that
|
||||
depend on gstreamer-player, you must ensure that in addition to the
|
||||
above packages, `libgstreamer-plugins-bad1.0-dev` is installed and
|
||||
that the version is >= 1.12. See the `Cargo.toml` files for the full
|
||||
details,
|
||||
depend on gstreamer-player, you must ensure that in addition to the above
|
||||
packages, `libgstreamer-plugins-bad1.0-dev` is installed. See the `Cargo.toml`
|
||||
files for the full details,
|
||||
|
||||
```console
|
||||
$ # Only if you wish to install gstreamer-player, make sure the version
|
||||
$ # of this package is >= 1.12.
|
||||
$ apt-get install libgstreamer-plugins-bad1.0-dev
|
||||
```
|
||||
|
||||
|
@ -82,15 +79,13 @@ $ brew install gstreamer gst-plugins-base gst-plugins-good \
|
|||
--enable-gtk3
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.pkg` files from the GStreamer website and
|
||||
install them, e.g. `gstreamer-1.0-1.12.3-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.12.3-x86_64.pkg`.
|
||||
install them, e.g. `gstreamer-1.0-1.14.0-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.0-x86_64.pkg`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via Homebrew)
|
||||
and set the `PKG_CONFIG_PATH` environment variable
|
||||
|
@ -118,9 +113,7 @@ $ pacman -S glib2-devel pkg-config \
|
|||
mingw-w64-x86_64-gst-rtsp-server
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
Note that the version of `pkg-config` included in `MSYS2` is
|
||||
[known to have problems](https://github.com/rust-lang/pkg-config-rs/issues/51#issuecomment-346300858)
|
||||
|
@ -130,8 +123,8 @@ would be [`pkg-config-lite`](https://sourceforge.net/projects/pkgconfiglite/).
|
|||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.msi` files for your platform from the
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.12.3.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.12.3.msi`.
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.0.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.0.msi`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via MSYS2 or
|
||||
from [here](https://sourceforge.net/projects/pkgconfiglite/))
|
||||
|
|
|
@ -9,7 +9,6 @@ use std::panic;
|
|||
use std::ptr;
|
||||
use std::sync::atomic::{AtomicBool, Ordering};
|
||||
|
||||
#[cfg(any(feature = "v1_10"))]
|
||||
use {
|
||||
futures_core::Stream,
|
||||
std::{
|
||||
|
@ -307,8 +306,6 @@ impl AppSink {
|
|||
}
|
||||
|
||||
#[doc(alias = "drop-out-of-segment")]
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub fn drops_out_of_segment(&self) -> bool {
|
||||
unsafe {
|
||||
from_glib(gst_base::ffi::gst_base_sink_get_drop_out_of_segment(
|
||||
|
@ -442,8 +439,6 @@ impl AppSink {
|
|||
}
|
||||
|
||||
#[doc(alias = "drop-out-of-segment")]
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
#[doc(alias = "gst_base_sink_set_drop_out_of_segment")]
|
||||
pub fn set_drop_out_of_segment(&self, drop_out_of_segment: bool) {
|
||||
unsafe {
|
||||
|
@ -914,20 +909,17 @@ impl AppSink {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10"))]
|
||||
pub fn stream(&self) -> AppSinkStream {
|
||||
AppSinkStream::new(self)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10"))]
|
||||
#[derive(Debug)]
|
||||
pub struct AppSinkStream {
|
||||
app_sink: glib::WeakRef<AppSink>,
|
||||
waker_reference: Arc<Mutex<Option<Waker>>>,
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10"))]
|
||||
impl AppSinkStream {
|
||||
fn new(app_sink: &AppSink) -> Self {
|
||||
skip_assert_initialized!();
|
||||
|
@ -966,7 +958,6 @@ impl AppSinkStream {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10"))]
|
||||
impl Drop for AppSinkStream {
|
||||
fn drop(&mut self) {
|
||||
// This is not thread-safe before 1.16.3, see
|
||||
|
@ -979,7 +970,6 @@ impl Drop for AppSinkStream {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10"))]
|
||||
impl Stream for AppSinkStream {
|
||||
type Item = gst::Sample;
|
||||
|
||||
|
@ -1006,7 +996,6 @@ impl Stream for AppSinkStream {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10"))]
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
|
|
@ -215,8 +215,6 @@ impl AppSrc {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
#[doc(alias = "gst_app_src_push_buffer_list")]
|
||||
pub fn push_buffer_list(
|
||||
&self,
|
||||
|
|
|
@ -22,8 +22,6 @@ glib::wrapper! {
|
|||
}
|
||||
|
||||
impl AppSink {
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
#[doc(alias = "gst_app_sink_get_buffer_list_support")]
|
||||
#[doc(alias = "get_buffer_list_support")]
|
||||
pub fn is_buffer_list_support(&self) -> bool {
|
||||
|
@ -89,8 +87,6 @@ impl AppSink {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
#[doc(alias = "gst_app_sink_set_buffer_list_support")]
|
||||
pub fn set_buffer_list_support(&self, enable_lists: bool) {
|
||||
unsafe {
|
||||
|
@ -149,8 +145,6 @@ impl AppSink {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "gst_app_sink_try_pull_preroll")]
|
||||
pub fn try_pull_preroll(
|
||||
&self,
|
||||
|
@ -164,8 +158,6 @@ impl AppSink {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "gst_app_sink_try_pull_sample")]
|
||||
pub fn try_pull_sample(
|
||||
&self,
|
||||
|
|
|
@ -63,8 +63,6 @@ impl AppSrc {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "gst_app_src_get_duration")]
|
||||
#[doc(alias = "get_duration")]
|
||||
pub fn duration(&self) -> Option<gst::ClockTime> {
|
||||
|
@ -135,8 +133,6 @@ impl AppSrc {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "gst_app_src_set_duration")]
|
||||
pub fn set_duration(&self, duration: impl Into<Option<gst::ClockTime>>) {
|
||||
unsafe {
|
||||
|
@ -402,8 +398,6 @@ impl AppSrc {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "duration")]
|
||||
pub fn connect_duration_notify<F: Fn(&Self) + Send + Sync + 'static>(
|
||||
&self,
|
||||
|
|
|
@ -21,10 +21,7 @@ shell-words = "1.0.0"
|
|||
tempfile = "3"
|
||||
|
||||
[features]
|
||||
v1_10 = []
|
||||
v1_12 = ["v1_10"]
|
||||
v1_14 = ["v1_12"]
|
||||
v1_16 = ["v1_14"]
|
||||
v1_16 = []
|
||||
v1_18 = ["v1_16"]
|
||||
v1_20 = ["v1_18"]
|
||||
v1_22 = ["v1_20"]
|
||||
|
@ -51,15 +48,6 @@ rust-version = "1.57"
|
|||
features = ["dox"]
|
||||
[package.metadata.system-deps.gstreamer_app_1_0]
|
||||
name = "gstreamer-app-1.0"
|
||||
version = "1.8"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_app_1_0.v1_10]
|
||||
version = "1.10"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_app_1_0.v1_12]
|
||||
version = "1.12"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_app_1_0.v1_14]
|
||||
version = "1.14"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_app_1_0.v1_16]
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
girs_directories = ["../../gir-files", "../../gst-gir-files"]
|
||||
library = "GstApp"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "sys"
|
||||
|
||||
external_libraries = [
|
||||
|
@ -13,9 +13,6 @@ extra_versions = [
|
|||
"1.20",
|
||||
"1.18",
|
||||
"1.16",
|
||||
"1.14",
|
||||
"1.12",
|
||||
"1.10",
|
||||
]
|
||||
|
||||
[external_libraries]
|
||||
|
|
|
@ -207,8 +207,6 @@ extern "C" {
|
|||
// GstAppSink
|
||||
//=========================================================================
|
||||
pub fn gst_app_sink_get_type() -> GType;
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub fn gst_app_sink_get_buffer_list_support(appsink: *mut GstAppSink) -> gboolean;
|
||||
pub fn gst_app_sink_get_caps(appsink: *mut GstAppSink) -> *mut gst::GstCaps;
|
||||
pub fn gst_app_sink_get_drop(appsink: *mut GstAppSink) -> gboolean;
|
||||
|
@ -221,8 +219,6 @@ extern "C" {
|
|||
pub fn gst_app_sink_pull_object(appsink: *mut GstAppSink) -> *mut gst::GstMiniObject;
|
||||
pub fn gst_app_sink_pull_preroll(appsink: *mut GstAppSink) -> *mut gst::GstSample;
|
||||
pub fn gst_app_sink_pull_sample(appsink: *mut GstAppSink) -> *mut gst::GstSample;
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub fn gst_app_sink_set_buffer_list_support(appsink: *mut GstAppSink, enable_lists: gboolean);
|
||||
pub fn gst_app_sink_set_callbacks(
|
||||
appsink: *mut GstAppSink,
|
||||
|
@ -241,14 +237,10 @@ extern "C" {
|
|||
appsink: *mut GstAppSink,
|
||||
timeout: gst::GstClockTime,
|
||||
) -> *mut gst::GstMiniObject;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_app_sink_try_pull_preroll(
|
||||
appsink: *mut GstAppSink,
|
||||
timeout: gst::GstClockTime,
|
||||
) -> *mut gst::GstSample;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_app_sink_try_pull_sample(
|
||||
appsink: *mut GstAppSink,
|
||||
timeout: gst::GstClockTime,
|
||||
|
@ -267,8 +259,6 @@ extern "C" {
|
|||
#[cfg(any(feature = "v1_20", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_20")))]
|
||||
pub fn gst_app_src_get_current_level_time(appsrc: *mut GstAppSrc) -> gst::GstClockTime;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_app_src_get_duration(appsrc: *mut GstAppSrc) -> gst::GstClockTime;
|
||||
pub fn gst_app_src_get_emit_signals(appsrc: *mut GstAppSrc) -> gboolean;
|
||||
pub fn gst_app_src_get_latency(appsrc: *mut GstAppSrc, min: *mut u64, max: *mut u64);
|
||||
|
@ -288,8 +278,6 @@ extern "C" {
|
|||
appsrc: *mut GstAppSrc,
|
||||
buffer: *mut gst::GstBuffer,
|
||||
) -> gst::GstFlowReturn;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_app_src_push_buffer_list(
|
||||
appsrc: *mut GstAppSrc,
|
||||
buffer_list: *mut gst::GstBufferList,
|
||||
|
@ -305,8 +293,6 @@ extern "C" {
|
|||
notify: glib::GDestroyNotify,
|
||||
);
|
||||
pub fn gst_app_src_set_caps(appsrc: *mut GstAppSrc, caps: *const gst::GstCaps);
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_app_src_set_duration(appsrc: *mut GstAppSrc, duration: gst::GstClockTime);
|
||||
pub fn gst_app_src_set_emit_signals(appsrc: *mut GstAppSrc, emit: gboolean);
|
||||
pub fn gst_app_src_set_latency(appsrc: *mut GstAppSrc, min: u64, max: u64);
|
||||
|
|
|
@ -30,10 +30,7 @@ gir-format-check = "0.1"
|
|||
|
||||
[features]
|
||||
default = []
|
||||
v1_10 = ["gst/v1_10", "gst-base/v1_10", "ffi/v1_10"]
|
||||
v1_12 = ["gst/v1_12", "gst-base/v1_12", "ffi/v1_12", "v1_10"]
|
||||
v1_14 = ["gst/v1_14", "gst-base/v1_14", "ffi/v1_14", "v1_12"]
|
||||
v1_16 = ["gst/v1_16", "gst-base/v1_16", "ffi/v1_16", "v1_14"]
|
||||
v1_16 = ["gst/v1_16", "gst-base/v1_16", "ffi/v1_16"]
|
||||
v1_18 = ["gst/v1_18", "gst-base/v1_18", "ffi/v1_18", "v1_16"]
|
||||
v1_20 = ["gst/v1_20", "gst-base/v1_20", "ffi/v1_20", "v1_18"]
|
||||
v1_22 = ["gst/v1_22", "gst-base/v1_22", "ffi/v1_22", "v1_20"]
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
girs_directories = ["../gir-files", "../gst-gir-files"]
|
||||
library = "GstAudio"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "normal"
|
||||
concurrency = "send+sync"
|
||||
generate_safety_asserts = true
|
||||
|
@ -26,6 +26,7 @@ generate = [
|
|||
"GstAudio.AudioLayout",
|
||||
"GstAudio.AudioNoiseShapingMethod",
|
||||
"GstAudio.AudioResamplerMethod",
|
||||
"GstAudio.AudioRingBufferFormatType",
|
||||
"GstAudio.AudioSink",
|
||||
"GstAudio.AudioSrc",
|
||||
"GstAudio.StreamVolume",
|
||||
|
@ -366,22 +367,6 @@ status = "generate"
|
|||
name = "none"
|
||||
ignore = true
|
||||
|
||||
[[object]]
|
||||
name = "GstAudio.AudioRingBufferFormatType"
|
||||
status = "generate"
|
||||
|
||||
[[object.member]]
|
||||
name = "mpeg2_aac_raw"
|
||||
version = "1.12"
|
||||
|
||||
[[object.member]]
|
||||
name = "mpeg4_aac_raw"
|
||||
version = "1.12"
|
||||
|
||||
[[object.member]]
|
||||
name = "flac"
|
||||
version = "1.12"
|
||||
|
||||
[[object]]
|
||||
name = "GstAudio.AudioStreamAlign"
|
||||
status = "generate"
|
||||
|
|
|
@ -24,7 +24,7 @@ API metadata provided by the GStreamer project.
|
|||
## Installation
|
||||
|
||||
To build the GStreamer bindings or anything depending on them, you need to
|
||||
have at least GStreamer 1.8 and gst-plugins-base 1.8 installed. In addition,
|
||||
have at least GStreamer 1.14 and gst-plugins-base 1.14 installed. In addition,
|
||||
some of the examples/tutorials require various GStreamer plugins to be
|
||||
available, which can be found in gst-plugins-base, gst-plugins-good,
|
||||
gst-plugins-bad, gst-plugins-ugly and/or gst-libav.
|
||||
|
@ -45,16 +45,13 @@ $ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
|||
gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev
|
||||
```
|
||||
|
||||
The minimum required version of the above libraries is >= 1.8. If you
|
||||
The minimum required version of the above libraries is >= 1.14. If you
|
||||
build the gstreamer-player sub-crate, or any of the examples that
|
||||
depend on gstreamer-player, you must ensure that in addition to the
|
||||
above packages, `libgstreamer-plugins-bad1.0-dev` is installed and
|
||||
that the version is >= 1.12. See the `Cargo.toml` files for the full
|
||||
details,
|
||||
depend on gstreamer-player, you must ensure that in addition to the above
|
||||
packages, `libgstreamer-plugins-bad1.0-dev` is installed. See the `Cargo.toml`
|
||||
files for the full details,
|
||||
|
||||
```console
|
||||
$ # Only if you wish to install gstreamer-player, make sure the version
|
||||
$ # of this package is >= 1.12.
|
||||
$ apt-get install libgstreamer-plugins-bad1.0-dev
|
||||
```
|
||||
|
||||
|
@ -82,15 +79,13 @@ $ brew install gstreamer gst-plugins-base gst-plugins-good \
|
|||
--enable-gtk3
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.pkg` files from the GStreamer website and
|
||||
install them, e.g. `gstreamer-1.0-1.12.3-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.12.3-x86_64.pkg`.
|
||||
install them, e.g. `gstreamer-1.0-1.14.0-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.0-x86_64.pkg`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via Homebrew)
|
||||
and set the `PKG_CONFIG_PATH` environment variable
|
||||
|
@ -118,9 +113,7 @@ $ pacman -S glib2-devel pkg-config \
|
|||
mingw-w64-x86_64-gst-rtsp-server
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
Note that the version of `pkg-config` included in `MSYS2` is
|
||||
[known to have problems](https://github.com/rust-lang/pkg-config-rs/issues/51#issuecomment-346300858)
|
||||
|
@ -130,8 +123,8 @@ would be [`pkg-config-lite`](https://sourceforge.net/projects/pkgconfiglite/).
|
|||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.msi` files for your platform from the
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.12.3.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.12.3.msi`.
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.0.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.0.msi`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via MSYS2 or
|
||||
from [here](https://sourceforge.net/projects/pkgconfiglite/))
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
use crate::auto::AudioAggregator;
|
||||
use crate::auto::AudioAggregatorPad;
|
||||
use glib::object::{Cast, IsA};
|
||||
#[cfg(any(feature = "v1_18", feature = "dox"))]
|
||||
use glib::object::Cast;
|
||||
use glib::object::IsA;
|
||||
#[cfg(any(feature = "v1_18", feature = "dox"))]
|
||||
use glib::signal::{connect_raw, SignalHandlerId};
|
||||
use glib::translate::*;
|
||||
|
||||
#[cfg(any(feature = "v1_18", feature = "dox"))]
|
||||
use std::mem::transmute;
|
||||
|
||||
pub trait AudioAggregatorExtManual: 'static {
|
||||
|
|
|
@ -109,14 +109,10 @@ impl AudioConverterConfig {
|
|||
.unwrap_or(1)
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn set_resampler_method(&mut self, v: crate::AudioResamplerMethod) {
|
||||
self.0.set("GstAudioConverter.resampler-method", &v);
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "get_resampler_method")]
|
||||
pub fn resampler_method(&self) -> crate::AudioResamplerMethod {
|
||||
self.0
|
||||
|
|
|
@ -6,8 +6,6 @@ use glib::translate::*;
|
|||
use std::mem;
|
||||
|
||||
impl AudioStreamAlign {
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
#[doc(alias = "gst_audio_stream_align_process")]
|
||||
pub fn process(
|
||||
&mut self,
|
||||
|
|
|
@ -87,8 +87,6 @@ pub trait AudioDecoderExt: 'static {
|
|||
#[doc(alias = "gst_audio_decoder_proxy_getcaps")]
|
||||
fn proxy_getcaps(&self, caps: Option<&gst::Caps>, filter: Option<&gst::Caps>) -> gst::Caps;
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "gst_audio_decoder_set_allocation_caps")]
|
||||
fn set_allocation_caps(&self, allocation_caps: Option<&gst::Caps>);
|
||||
|
||||
|
@ -276,8 +274,6 @@ impl<O: IsA<AudioDecoder>> AudioDecoderExt for O {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
fn set_allocation_caps(&self, allocation_caps: Option<&gst::Caps>) {
|
||||
unsafe {
|
||||
ffi::gst_audio_decoder_set_allocation_caps(
|
||||
|
|
|
@ -87,8 +87,6 @@ pub trait AudioEncoderExt: 'static {
|
|||
#[doc(alias = "gst_audio_encoder_proxy_getcaps")]
|
||||
fn proxy_getcaps(&self, caps: Option<&gst::Caps>, filter: Option<&gst::Caps>) -> gst::Caps;
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "gst_audio_encoder_set_allocation_caps")]
|
||||
fn set_allocation_caps(&self, allocation_caps: Option<&gst::Caps>);
|
||||
|
||||
|
@ -275,8 +273,6 @@ impl<O: IsA<AudioEncoder>> AudioEncoderExt for O {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
fn set_allocation_caps(&self, allocation_caps: Option<&gst::Caps>) {
|
||||
unsafe {
|
||||
ffi::gst_audio_encoder_set_allocation_caps(
|
||||
|
|
|
@ -631,8 +631,6 @@ impl ToValue for AudioNoiseShapingMethod {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[derive(Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Clone, Copy)]
|
||||
#[non_exhaustive]
|
||||
#[doc(alias = "GstAudioResamplerMethod")]
|
||||
|
@ -651,8 +649,6 @@ pub enum AudioResamplerMethod {
|
|||
__Unknown(i32),
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(hidden)]
|
||||
impl IntoGlib for AudioResamplerMethod {
|
||||
type GlibType = ffi::GstAudioResamplerMethod;
|
||||
|
@ -669,8 +665,6 @@ impl IntoGlib for AudioResamplerMethod {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(hidden)]
|
||||
impl FromGlib<ffi::GstAudioResamplerMethod> for AudioResamplerMethod {
|
||||
unsafe fn from_glib(value: ffi::GstAudioResamplerMethod) -> Self {
|
||||
|
@ -686,22 +680,16 @@ impl FromGlib<ffi::GstAudioResamplerMethod> for AudioResamplerMethod {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
impl StaticType for AudioResamplerMethod {
|
||||
fn static_type() -> Type {
|
||||
unsafe { from_glib(ffi::gst_audio_resampler_method_get_type()) }
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
impl glib::value::ValueType for AudioResamplerMethod {
|
||||
type Type = Self;
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
unsafe impl<'a> FromValue<'a> for AudioResamplerMethod {
|
||||
type Checker = glib::value::GenericValueTypeChecker<Self>;
|
||||
|
||||
|
@ -711,8 +699,6 @@ unsafe impl<'a> FromValue<'a> for AudioResamplerMethod {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
impl ToValue for AudioResamplerMethod {
|
||||
fn to_value(&self) -> glib::Value {
|
||||
let mut value = glib::Value::for_value_type::<Self>();
|
||||
|
@ -755,16 +741,10 @@ pub enum AudioRingBufferFormatType {
|
|||
Mpeg2Aac,
|
||||
#[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC")]
|
||||
Mpeg4Aac,
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
#[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW")]
|
||||
Mpeg2AacRaw,
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
#[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW")]
|
||||
Mpeg4AacRaw,
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
#[doc(alias = "GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC")]
|
||||
Flac,
|
||||
#[doc(hidden)]
|
||||
|
@ -789,11 +769,8 @@ impl IntoGlib for AudioRingBufferFormatType {
|
|||
Self::Dts => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS,
|
||||
Self::Mpeg2Aac => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC,
|
||||
Self::Mpeg4Aac => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC,
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
Self::Mpeg2AacRaw => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW,
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
Self::Mpeg4AacRaw => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW,
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
Self::Flac => ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC,
|
||||
Self::__Unknown(value) => value,
|
||||
}
|
||||
|
@ -817,11 +794,8 @@ impl FromGlib<ffi::GstAudioRingBufferFormatType> for AudioRingBufferFormatType {
|
|||
ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS => Self::Dts,
|
||||
ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC => Self::Mpeg2Aac,
|
||||
ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC => Self::Mpeg4Aac,
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC_RAW => Self::Mpeg2AacRaw,
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC_RAW => Self::Mpeg4AacRaw,
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
ffi::GST_AUDIO_RING_BUFFER_FORMAT_TYPE_FLAC => Self::Flac,
|
||||
value => Self::__Unknown(value),
|
||||
}
|
||||
|
|
|
@ -3,25 +3,13 @@
|
|||
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
|
||||
// DO NOT EDIT
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod audio_aggregator;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use self::audio_aggregator::AudioAggregator;
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod audio_aggregator_convert_pad;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use self::audio_aggregator_convert_pad::AudioAggregatorConvertPad;
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod audio_aggregator_pad;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use self::audio_aggregator_pad::AudioAggregatorPad;
|
||||
|
||||
mod audio_base_sink;
|
||||
|
@ -45,11 +33,7 @@ pub use self::audio_src::AudioSrc;
|
|||
mod stream_volume;
|
||||
pub use self::stream_volume::StreamVolume;
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod audio_stream_align;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use self::audio_stream_align::AudioStreamAlign;
|
||||
|
||||
mod enums;
|
||||
|
@ -58,8 +42,6 @@ pub use self::enums::AudioDitherMethod;
|
|||
pub use self::enums::AudioFormat;
|
||||
pub use self::enums::AudioLayout;
|
||||
pub use self::enums::AudioNoiseShapingMethod;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub use self::enums::AudioResamplerMethod;
|
||||
pub use self::enums::AudioRingBufferFormatType;
|
||||
pub use self::enums::StreamVolumeFormat;
|
||||
|
@ -71,14 +53,8 @@ pub use self::flags::AudioPackFlags;
|
|||
|
||||
#[doc(hidden)]
|
||||
pub mod traits {
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use super::audio_aggregator::AudioAggregatorExt;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use super::audio_aggregator_convert_pad::AudioAggregatorConvertPadExt;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use super::audio_aggregator_pad::AudioAggregatorPadExt;
|
||||
pub use super::audio_base_sink::AudioBaseSinkExt;
|
||||
pub use super::audio_base_src::AudioBaseSrcExt;
|
||||
|
|
|
@ -43,17 +43,9 @@ mod audio_meta;
|
|||
pub use crate::audio_meta::*;
|
||||
mod audio_channel_position;
|
||||
pub use crate::audio_channel_position::*;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod audio_aggregator;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod audio_aggregator_convert_pad;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod audio_aggregator_pad;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod audio_stream_align;
|
||||
mod functions;
|
||||
pub use crate::functions::*;
|
||||
|
@ -70,8 +62,6 @@ mod audio_encoder;
|
|||
mod audio_converter;
|
||||
pub use crate::audio_converter::AudioConverterConfig;
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod utils;
|
||||
|
||||
// Re-export all the traits in a prelude module, so that applications
|
||||
|
@ -82,14 +72,8 @@ pub mod prelude {
|
|||
|
||||
pub use super::audio_decoder::AudioDecoderExtManual;
|
||||
pub use super::audio_encoder::AudioEncoderExtManual;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use crate::audio_aggregator::AudioAggregatorExtManual;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use crate::audio_aggregator_convert_pad::AudioAggregatorConvertPadExtManual;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use crate::audio_aggregator_pad::AudioAggregatorPadExtManual;
|
||||
pub use crate::audio_format::AudioFormatIteratorExt;
|
||||
|
||||
|
|
|
@ -2,14 +2,8 @@
|
|||
|
||||
#![allow(clippy::cast_ptr_alignment)]
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod audio_aggregator;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod audio_aggregator_convert_pad;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod audio_aggregator_pad;
|
||||
mod audio_base_sink;
|
||||
mod audio_base_src;
|
||||
|
@ -22,14 +16,8 @@ pub mod prelude {
|
|||
#[doc(hidden)]
|
||||
pub use gst_base::subclass::prelude::*;
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use super::audio_aggregator::{AudioAggregatorImpl, AudioAggregatorImplExt};
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use super::audio_aggregator_convert_pad::AudioAggregatorConvertPadImpl;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use super::audio_aggregator_pad::{AudioAggregatorPadImpl, AudioAggregatorPadImplExt};
|
||||
pub use super::audio_base_sink::AudioBaseSinkImpl;
|
||||
pub use super::audio_base_src::AudioBaseSrcImpl;
|
||||
|
|
|
@ -25,10 +25,7 @@ shell-words = "1.0.0"
|
|||
tempfile = "3"
|
||||
|
||||
[features]
|
||||
v1_10 = []
|
||||
v1_12 = ["v1_10"]
|
||||
v1_14 = ["v1_12"]
|
||||
v1_16 = ["v1_14"]
|
||||
v1_16 = []
|
||||
v1_18 = ["v1_16"]
|
||||
v1_20 = ["v1_18"]
|
||||
v1_22 = ["v1_20"]
|
||||
|
@ -55,15 +52,6 @@ rust-version = "1.57"
|
|||
features = ["dox"]
|
||||
[package.metadata.system-deps.gstreamer_audio_1_0]
|
||||
name = "gstreamer-audio-1.0"
|
||||
version = "1.8"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_audio_1_0.v1_10]
|
||||
version = "1.10"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_audio_1_0.v1_12]
|
||||
version = "1.12"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_audio_1_0.v1_14]
|
||||
version = "1.14"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_audio_1_0.v1_16]
|
||||
|
|
|
@ -2,16 +2,13 @@
|
|||
girs_directories = ["../../gir-files", "../../gst-gir-files"]
|
||||
library = "GstAudio"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "sys"
|
||||
|
||||
extra_versions = [
|
||||
"1.20",
|
||||
"1.18",
|
||||
"1.16",
|
||||
"1.14",
|
||||
"1.12",
|
||||
"1.10",
|
||||
]
|
||||
|
||||
external_libraries = [
|
||||
|
@ -37,13 +34,6 @@ status = "generate"
|
|||
name = "reorder_channels"
|
||||
version = "1.0"
|
||||
|
||||
[[object]]
|
||||
name = "GstAudio.AudioConverter"
|
||||
status = "generate"
|
||||
[[object.function]]
|
||||
name = "get_type"
|
||||
version = "1.14"
|
||||
|
||||
[[object]]
|
||||
name = "GstAudio.*"
|
||||
status = "generate"
|
||||
|
|
|
@ -1485,22 +1485,16 @@ extern "C" {
|
|||
//=========================================================================
|
||||
// GstAudioResamplerFilterInterpolation
|
||||
//=========================================================================
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_resampler_filter_interpolation_get_type() -> GType;
|
||||
|
||||
//=========================================================================
|
||||
// GstAudioResamplerFilterMode
|
||||
//=========================================================================
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_resampler_filter_mode_get_type() -> GType;
|
||||
|
||||
//=========================================================================
|
||||
// GstAudioResamplerMethod
|
||||
//=========================================================================
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_resampler_method_get_type() -> GType;
|
||||
|
||||
//=========================================================================
|
||||
|
@ -1546,8 +1540,6 @@ extern "C" {
|
|||
//=========================================================================
|
||||
// GstAudioResamplerFlags
|
||||
//=========================================================================
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_resampler_flags_get_type() -> GType;
|
||||
|
||||
//=========================================================================
|
||||
|
@ -1605,8 +1597,6 @@ extern "C" {
|
|||
out_channels: c_int,
|
||||
out_position: *mut GstAudioChannelPosition,
|
||||
) -> *mut GstAudioChannelMixer;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_channel_mixer_new_with_matrix(
|
||||
flags: GstAudioChannelMixerFlags,
|
||||
format: GstAudioFormat,
|
||||
|
@ -1623,8 +1613,6 @@ extern "C" {
|
|||
//=========================================================================
|
||||
// GstAudioConverter
|
||||
//=========================================================================
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_converter_get_type() -> GType;
|
||||
pub fn gst_audio_converter_new(
|
||||
flags: GstAudioConverterFlags,
|
||||
|
@ -1632,8 +1620,6 @@ extern "C" {
|
|||
out_info: *mut GstAudioInfo,
|
||||
config: *mut gst::GstStructure,
|
||||
) -> *mut GstAudioConverter;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_converter_convert(
|
||||
convert: *mut GstAudioConverter,
|
||||
flags: GstAudioConverterFlags,
|
||||
|
@ -1669,8 +1655,6 @@ extern "C" {
|
|||
out: *mut gpointer,
|
||||
out_frames: size_t,
|
||||
) -> gboolean;
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub fn gst_audio_converter_supports_inplace(convert: *mut GstAudioConverter) -> gboolean;
|
||||
pub fn gst_audio_converter_update_config(
|
||||
convert: *mut GstAudioConverter,
|
||||
|
@ -1773,26 +1757,16 @@ extern "C" {
|
|||
//=========================================================================
|
||||
// GstAudioResampler
|
||||
//=========================================================================
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_resampler_free(resampler: *mut GstAudioResampler);
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_resampler_get_in_frames(
|
||||
resampler: *mut GstAudioResampler,
|
||||
out_frames: size_t,
|
||||
) -> size_t;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_resampler_get_max_latency(resampler: *mut GstAudioResampler) -> size_t;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_resampler_get_out_frames(
|
||||
resampler: *mut GstAudioResampler,
|
||||
in_frames: size_t,
|
||||
) -> size_t;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_resampler_resample(
|
||||
resampler: *mut GstAudioResampler,
|
||||
in_: *mut gpointer,
|
||||
|
@ -1800,19 +1774,13 @@ extern "C" {
|
|||
out: *mut gpointer,
|
||||
out_frames: size_t,
|
||||
);
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_resampler_reset(resampler: *mut GstAudioResampler);
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_resampler_update(
|
||||
resampler: *mut GstAudioResampler,
|
||||
in_rate: c_int,
|
||||
out_rate: c_int,
|
||||
options: *mut gst::GstStructure,
|
||||
) -> gboolean;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_resampler_new(
|
||||
method: GstAudioResamplerMethod,
|
||||
flags: GstAudioResamplerFlags,
|
||||
|
@ -1822,8 +1790,6 @@ extern "C" {
|
|||
out_rate: c_int,
|
||||
options: *mut gst::GstStructure,
|
||||
) -> *mut GstAudioResampler;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_resampler_options_set_quality(
|
||||
method: GstAudioResamplerMethod,
|
||||
quality: c_uint,
|
||||
|
@ -1835,52 +1801,30 @@ extern "C" {
|
|||
//=========================================================================
|
||||
// GstAudioStreamAlign
|
||||
//=========================================================================
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_stream_align_get_type() -> GType;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_stream_align_new(
|
||||
rate: c_int,
|
||||
alignment_threshold: gst::GstClockTime,
|
||||
discont_wait: gst::GstClockTime,
|
||||
) -> *mut GstAudioStreamAlign;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_stream_align_copy(
|
||||
align: *const GstAudioStreamAlign,
|
||||
) -> *mut GstAudioStreamAlign;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_stream_align_free(align: *mut GstAudioStreamAlign);
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_stream_align_get_alignment_threshold(
|
||||
align: *const GstAudioStreamAlign,
|
||||
) -> gst::GstClockTime;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_stream_align_get_discont_wait(
|
||||
align: *const GstAudioStreamAlign,
|
||||
) -> gst::GstClockTime;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_stream_align_get_rate(align: *const GstAudioStreamAlign) -> c_int;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_stream_align_get_samples_since_discont(
|
||||
align: *const GstAudioStreamAlign,
|
||||
) -> u64;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_stream_align_get_timestamp_at_discont(
|
||||
align: *const GstAudioStreamAlign,
|
||||
) -> gst::GstClockTime;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_stream_align_mark_discont(align: *mut GstAudioStreamAlign);
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_stream_align_process(
|
||||
align: *mut GstAudioStreamAlign,
|
||||
discont: gboolean,
|
||||
|
@ -1890,30 +1834,20 @@ extern "C" {
|
|||
out_duration: *mut gst::GstClockTime,
|
||||
out_sample_position: *mut u64,
|
||||
) -> gboolean;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_stream_align_set_alignment_threshold(
|
||||
align: *mut GstAudioStreamAlign,
|
||||
alignment_threshold: gst::GstClockTime,
|
||||
);
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_stream_align_set_discont_wait(
|
||||
align: *mut GstAudioStreamAlign,
|
||||
discont_wait: gst::GstClockTime,
|
||||
);
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_stream_align_set_rate(align: *mut GstAudioStreamAlign, rate: c_int);
|
||||
|
||||
//=========================================================================
|
||||
// GstAudioAggregator
|
||||
//=========================================================================
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_aggregator_get_type() -> GType;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_aggregator_set_sink_caps(
|
||||
aagg: *mut GstAudioAggregator,
|
||||
pad: *mut GstAudioAggregatorPad,
|
||||
|
@ -1923,15 +1857,11 @@ extern "C" {
|
|||
//=========================================================================
|
||||
// GstAudioAggregatorConvertPad
|
||||
//=========================================================================
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_aggregator_convert_pad_get_type() -> GType;
|
||||
|
||||
//=========================================================================
|
||||
// GstAudioAggregatorPad
|
||||
//=========================================================================
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_audio_aggregator_pad_get_type() -> GType;
|
||||
|
||||
//=========================================================================
|
||||
|
@ -2074,8 +2004,6 @@ extern "C" {
|
|||
caps: *mut gst::GstCaps,
|
||||
filter: *mut gst::GstCaps,
|
||||
) -> *mut gst::GstCaps;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_decoder_set_allocation_caps(
|
||||
dec: *mut GstAudioDecoder,
|
||||
allocation_caps: *mut gst::GstCaps,
|
||||
|
@ -2153,8 +2081,6 @@ extern "C" {
|
|||
caps: *mut gst::GstCaps,
|
||||
filter: *mut gst::GstCaps,
|
||||
) -> *mut gst::GstCaps;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_encoder_set_allocation_caps(
|
||||
enc: *mut GstAudioEncoder,
|
||||
allocation_caps: *mut gst::GstCaps,
|
||||
|
@ -2250,8 +2176,6 @@ extern "C" {
|
|||
cb: GstAudioRingBufferCallback,
|
||||
user_data: gpointer,
|
||||
);
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub fn gst_audio_ring_buffer_set_callback_full(
|
||||
buf: *mut GstAudioRingBuffer,
|
||||
cb: GstAudioRingBufferCallback,
|
||||
|
@ -2318,8 +2242,6 @@ extern "C" {
|
|||
force_order: gboolean,
|
||||
channel_mask: *mut u64,
|
||||
) -> gboolean;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_audio_channel_positions_to_string(
|
||||
position: *const GstAudioChannelPosition,
|
||||
channels: c_int,
|
||||
|
|
|
@ -26,11 +26,7 @@ gir-format-check = "0.1"
|
|||
|
||||
[features]
|
||||
default = []
|
||||
v1_10 = ["gst/v1_10", "ffi/v1_10"]
|
||||
v1_12 = ["gst/v1_12", "ffi/v1_12", "v1_10"]
|
||||
v1_12_1 = ["gst/v1_12_1", "ffi/v1_12_1", "v1_12"]
|
||||
v1_14 = ["gst/v1_14", "ffi/v1_14", "v1_12_1"]
|
||||
v1_14_1 = ["gst/v1_14", "ffi/v1_14_1", "v1_14"]
|
||||
v1_14_1 = ["ffi/v1_14_1"]
|
||||
v1_16 = ["gst/v1_16", "ffi/v1_16", "v1_14_1"]
|
||||
v1_18 = ["gst/v1_18", "ffi/v1_18", "v1_16"]
|
||||
v1_20 = ["gst/v1_20", "ffi/v1_20", "v1_18"]
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
girs_directories = ["../gir-files", "../gst-gir-files"]
|
||||
library = "GstBase"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "normal"
|
||||
concurrency = "send+sync"
|
||||
generate_safety_asserts = true
|
||||
|
@ -214,10 +214,6 @@ manual_traits = ["AggregatorExtManual"]
|
|||
name = "min_latency"
|
||||
mandatory = true
|
||||
|
||||
[[object.property]]
|
||||
name = "latency"
|
||||
version = "1.14"
|
||||
|
||||
[[object.property]]
|
||||
name = "start-time-selection"
|
||||
version = "1.18"
|
||||
|
|
|
@ -24,7 +24,7 @@ API metadata provided by the GStreamer project.
|
|||
## Installation
|
||||
|
||||
To build the GStreamer bindings or anything depending on them, you need to
|
||||
have at least GStreamer 1.8 and gst-plugins-base 1.8 installed. In addition,
|
||||
have at least GStreamer 1.14 and gst-plugins-base 1.14 installed. In addition,
|
||||
some of the examples/tutorials require various GStreamer plugins to be
|
||||
available, which can be found in gst-plugins-base, gst-plugins-good,
|
||||
gst-plugins-bad, gst-plugins-ugly and/or gst-libav.
|
||||
|
@ -45,16 +45,13 @@ $ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
|||
gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev
|
||||
```
|
||||
|
||||
The minimum required version of the above libraries is >= 1.8. If you
|
||||
The minimum required version of the above libraries is >= 1.14. If you
|
||||
build the gstreamer-player sub-crate, or any of the examples that
|
||||
depend on gstreamer-player, you must ensure that in addition to the
|
||||
above packages, `libgstreamer-plugins-bad1.0-dev` is installed and
|
||||
that the version is >= 1.12. See the `Cargo.toml` files for the full
|
||||
details,
|
||||
depend on gstreamer-player, you must ensure that in addition to the above
|
||||
packages, `libgstreamer-plugins-bad1.0-dev` is installed. See the `Cargo.toml`
|
||||
files for the full details,
|
||||
|
||||
```console
|
||||
$ # Only if you wish to install gstreamer-player, make sure the version
|
||||
$ # of this package is >= 1.12.
|
||||
$ apt-get install libgstreamer-plugins-bad1.0-dev
|
||||
```
|
||||
|
||||
|
@ -82,15 +79,13 @@ $ brew install gstreamer gst-plugins-base gst-plugins-good \
|
|||
--enable-gtk3
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.pkg` files from the GStreamer website and
|
||||
install them, e.g. `gstreamer-1.0-1.12.3-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.12.3-x86_64.pkg`.
|
||||
install them, e.g. `gstreamer-1.0-1.14.0-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.0-x86_64.pkg`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via Homebrew)
|
||||
and set the `PKG_CONFIG_PATH` environment variable
|
||||
|
@ -118,9 +113,7 @@ $ pacman -S glib2-devel pkg-config \
|
|||
mingw-w64-x86_64-gst-rtsp-server
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
Note that the version of `pkg-config` included in `MSYS2` is
|
||||
[known to have problems](https://github.com/rust-lang/pkg-config-rs/issues/51#issuecomment-346300858)
|
||||
|
@ -130,8 +123,8 @@ would be [`pkg-config-lite`](https://sourceforge.net/projects/pkgconfiglite/).
|
|||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.msi` files for your platform from the
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.12.3.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.12.3.msi`.
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.0.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.0.msi`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via MSYS2 or
|
||||
from [here](https://sourceforge.net/projects/pkgconfiglite/))
|
||||
|
|
|
@ -294,14 +294,10 @@ impl UniqueAdapter {
|
|||
self.0.copy_bytes(offset, size)
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn distance_from_discont(&self) -> u64 {
|
||||
self.0.distance_from_discont()
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn dts_at_discont(&self) -> Option<gst::ClockTime> {
|
||||
self.0.dts_at_discont()
|
||||
}
|
||||
|
@ -350,8 +346,6 @@ impl UniqueAdapter {
|
|||
self.0.masked_scan_uint32_peek(mask, pattern, offset, size)
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn offset_at_discont(&self) -> u64 {
|
||||
self.0.offset_at_discont()
|
||||
}
|
||||
|
@ -364,8 +358,6 @@ impl UniqueAdapter {
|
|||
self.0.prev_dts_at_offset(offset)
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn prev_offset(&self) -> (u64, u64) {
|
||||
self.0.prev_offset()
|
||||
}
|
||||
|
@ -378,8 +370,6 @@ impl UniqueAdapter {
|
|||
self.0.prev_pts_at_offset(offset)
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn pts_at_discont(&self) -> Option<gst::ClockTime> {
|
||||
self.0.pts_at_discont()
|
||||
}
|
||||
|
|
|
@ -40,22 +40,16 @@ impl Adapter {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "gst_adapter_distance_from_discont")]
|
||||
pub fn distance_from_discont(&self) -> u64 {
|
||||
unsafe { ffi::gst_adapter_distance_from_discont(self.to_glib_none().0) }
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "gst_adapter_dts_at_discont")]
|
||||
pub fn dts_at_discont(&self) -> Option<gst::ClockTime> {
|
||||
unsafe { from_glib(ffi::gst_adapter_dts_at_discont(self.to_glib_none().0)) }
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "gst_adapter_offset_at_discont")]
|
||||
pub fn offset_at_discont(&self) -> u64 {
|
||||
unsafe { ffi::gst_adapter_offset_at_discont(self.to_glib_none().0) }
|
||||
|
@ -88,8 +82,6 @@ impl Adapter {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "gst_adapter_prev_offset")]
|
||||
pub fn prev_offset(&self) -> (u64, u64) {
|
||||
unsafe {
|
||||
|
@ -127,8 +119,6 @@ impl Adapter {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "gst_adapter_pts_at_discont")]
|
||||
pub fn pts_at_discont(&self) -> Option<gst::ClockTime> {
|
||||
unsafe { from_glib(ffi::gst_adapter_pts_at_discont(self.to_glib_none().0)) }
|
||||
|
|
|
@ -114,8 +114,6 @@ pub trait AggregatorExt: 'static {
|
|||
f: F,
|
||||
) -> SignalHandlerId;
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
#[doc(alias = "latency")]
|
||||
fn connect_latency_notify<F: Fn(&Self) + Send + Sync + 'static>(&self, f: F)
|
||||
-> SignalHandlerId;
|
||||
|
@ -286,8 +284,6 @@ impl<O: IsA<Aggregator>> AggregatorExt for O {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
fn connect_latency_notify<F: Fn(&Self) + Send + Sync + 'static>(
|
||||
&self,
|
||||
f: F,
|
||||
|
|
|
@ -33,8 +33,6 @@ pub trait BaseParseExt: 'static {
|
|||
#[doc(alias = "gst_base_parse_add_index_entry")]
|
||||
fn add_index_entry(&self, offset: u64, ts: gst::ClockTime, key: bool, force: bool) -> bool;
|
||||
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
#[doc(alias = "gst_base_parse_drain")]
|
||||
fn drain(&self);
|
||||
|
||||
|
@ -98,8 +96,6 @@ impl<O: IsA<BaseParse>> BaseParseExt for O {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
fn drain(&self) {
|
||||
unsafe {
|
||||
ffi::gst_base_parse_drain(self.as_ref().to_glib_none().0);
|
||||
|
|
|
@ -38,8 +38,6 @@ pub trait BaseSinkExt: 'static {
|
|||
#[doc(alias = "get_blocksize")]
|
||||
fn blocksize(&self) -> u32;
|
||||
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
#[doc(alias = "gst_base_sink_get_drop_out_of_segment")]
|
||||
#[doc(alias = "get_drop_out_of_segment")]
|
||||
fn drops_out_of_segment(&self) -> bool;
|
||||
|
@ -91,8 +89,6 @@ pub trait BaseSinkExt: 'static {
|
|||
#[doc(alias = "gst_base_sink_set_blocksize")]
|
||||
fn set_blocksize(&self, blocksize: u32);
|
||||
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
#[doc(alias = "gst_base_sink_set_drop_out_of_segment")]
|
||||
fn set_drop_out_of_segment(&self, drop_out_of_segment: bool);
|
||||
|
||||
|
@ -233,8 +229,6 @@ impl<O: IsA<BaseSink>> BaseSinkExt for O {
|
|||
unsafe { ffi::gst_base_sink_get_blocksize(self.as_ref().to_glib_none().0) }
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
fn drops_out_of_segment(&self) -> bool {
|
||||
unsafe {
|
||||
from_glib(ffi::gst_base_sink_get_drop_out_of_segment(
|
||||
|
@ -312,8 +306,6 @@ impl<O: IsA<BaseSink>> BaseSinkExt for O {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
fn set_drop_out_of_segment(&self, drop_out_of_segment: bool) {
|
||||
unsafe {
|
||||
ffi::gst_base_sink_set_drop_out_of_segment(
|
||||
|
|
|
@ -6,18 +6,10 @@
|
|||
mod adapter;
|
||||
pub use self::adapter::Adapter;
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod aggregator;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use self::aggregator::Aggregator;
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod aggregator_pad;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use self::aggregator_pad::AggregatorPad;
|
||||
|
||||
mod base_parse;
|
||||
|
@ -47,11 +39,7 @@ pub mod functions;
|
|||
|
||||
#[doc(hidden)]
|
||||
pub mod traits {
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use super::aggregator::AggregatorExt;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use super::aggregator_pad::AggregatorPadExt;
|
||||
pub use super::base_parse::BaseParseExt;
|
||||
pub use super::base_sink::BaseSinkExt;
|
||||
|
|
|
@ -38,11 +38,7 @@ mod adapter;
|
|||
pub use crate::adapter::*;
|
||||
mod flow_combiner;
|
||||
pub use crate::flow_combiner::*;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod aggregator;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod aggregator_pad;
|
||||
mod base_parse;
|
||||
mod base_sink;
|
||||
|
@ -62,11 +58,7 @@ pub mod prelude {
|
|||
#[doc(hidden)]
|
||||
pub use gst::prelude::*;
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use crate::aggregator::AggregatorExtManual;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use crate::aggregator_pad::AggregatorPadExtManual;
|
||||
pub use crate::auto::traits::*;
|
||||
pub use crate::base_parse::BaseParseExtManual;
|
||||
|
|
|
@ -12,22 +12,14 @@ mod push_src;
|
|||
|
||||
pub use self::base_transform::BaseTransformMode;
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod aggregator;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
mod aggregator_pad;
|
||||
|
||||
pub mod prelude {
|
||||
#[doc(hidden)]
|
||||
pub use gst::subclass::prelude::*;
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use super::aggregator::{AggregatorImpl, AggregatorImplExt};
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub use super::aggregator_pad::{AggregatorPadImpl, AggregatorPadImplExt};
|
||||
pub use super::base_parse::{BaseParseImpl, BaseParseImplExt};
|
||||
pub use super::base_sink::{BaseSinkImpl, BaseSinkImplExt};
|
||||
|
|
|
@ -21,11 +21,7 @@ shell-words = "1.0.0"
|
|||
tempfile = "3"
|
||||
|
||||
[features]
|
||||
v1_10 = []
|
||||
v1_12 = ["v1_10"]
|
||||
v1_12_1 = ["v1_12"]
|
||||
v1_14 = ["v1_12_1"]
|
||||
v1_14_1 = ["v1_14"]
|
||||
v1_14_1 = []
|
||||
v1_14_3 = ["v1_14_1"]
|
||||
v1_16 = ["v1_14_3"]
|
||||
v1_18 = ["v1_16"]
|
||||
|
@ -54,18 +50,6 @@ rust-version = "1.57"
|
|||
features = ["dox"]
|
||||
[package.metadata.system-deps.gstreamer_base_1_0]
|
||||
name = "gstreamer-base-1.0"
|
||||
version = "1.8"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_base_1_0.v1_10]
|
||||
version = "1.10"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_base_1_0.v1_12]
|
||||
version = "1.12"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_base_1_0.v1_12_1]
|
||||
version = "1.12.1"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_base_1_0.v1_14]
|
||||
version = "1.14"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_base_1_0.v1_14_1]
|
||||
|
|
|
@ -2,16 +2,13 @@
|
|||
girs_directories = ["../../gir-files", "../../gst-gir-files"]
|
||||
library = "GstBase"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "sys"
|
||||
|
||||
extra_versions = [
|
||||
"1.20",
|
||||
"1.18",
|
||||
"1.16",
|
||||
"1.14",
|
||||
"1.12",
|
||||
"1.10",
|
||||
]
|
||||
|
||||
external_libraries = [
|
||||
|
|
|
@ -1265,8 +1265,6 @@ extern "C" {
|
|||
flags: GstBaseParseFrameFlags,
|
||||
overhead: c_int,
|
||||
) -> *mut GstBaseParseFrame;
|
||||
#[cfg(any(feature = "v1_12_1", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12_1")))]
|
||||
pub fn gst_base_parse_frame_copy(frame: *mut GstBaseParseFrame) -> *mut GstBaseParseFrame;
|
||||
pub fn gst_base_parse_frame_free(frame: *mut GstBaseParseFrame);
|
||||
pub fn gst_base_parse_frame_init(frame: *mut GstBaseParseFrame);
|
||||
|
@ -1652,13 +1650,9 @@ extern "C" {
|
|||
pub fn gst_flow_combiner_add_pad(combiner: *mut GstFlowCombiner, pad: *mut gst::GstPad);
|
||||
pub fn gst_flow_combiner_clear(combiner: *mut GstFlowCombiner);
|
||||
pub fn gst_flow_combiner_free(combiner: *mut GstFlowCombiner);
|
||||
#[cfg(any(feature = "v1_12_1", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12_1")))]
|
||||
pub fn gst_flow_combiner_ref(combiner: *mut GstFlowCombiner) -> *mut GstFlowCombiner;
|
||||
pub fn gst_flow_combiner_remove_pad(combiner: *mut GstFlowCombiner, pad: *mut gst::GstPad);
|
||||
pub fn gst_flow_combiner_reset(combiner: *mut GstFlowCombiner);
|
||||
#[cfg(any(feature = "v1_12_1", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12_1")))]
|
||||
pub fn gst_flow_combiner_unref(combiner: *mut GstFlowCombiner);
|
||||
pub fn gst_flow_combiner_update_flow(
|
||||
combiner: *mut GstFlowCombiner,
|
||||
|
@ -1698,19 +1692,11 @@ extern "C" {
|
|||
#[cfg(any(feature = "v1_16", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_16")))]
|
||||
pub fn gst_queue_array_peek_nth_struct(array: *mut GstQueueArray, idx: c_uint) -> gpointer;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_queue_array_peek_tail(array: *mut GstQueueArray) -> gpointer;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_queue_array_peek_tail_struct(array: *mut GstQueueArray) -> gpointer;
|
||||
pub fn gst_queue_array_pop_head(array: *mut GstQueueArray) -> gpointer;
|
||||
pub fn gst_queue_array_pop_head_struct(array: *mut GstQueueArray) -> gpointer;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_queue_array_pop_tail(array: *mut GstQueueArray) -> gpointer;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_queue_array_pop_tail_struct(array: *mut GstQueueArray) -> gpointer;
|
||||
pub fn gst_queue_array_push_tail(array: *mut GstQueueArray, data: gpointer);
|
||||
pub fn gst_queue_array_push_tail_struct(array: *mut GstQueueArray, p_struct: gpointer);
|
||||
|
@ -1740,11 +1726,7 @@ extern "C" {
|
|||
offset: size_t,
|
||||
size: size_t,
|
||||
) -> *mut glib::GBytes;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_adapter_distance_from_discont(adapter: *mut GstAdapter) -> u64;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_adapter_dts_at_discont(adapter: *mut GstAdapter) -> gst::GstClockTime;
|
||||
pub fn gst_adapter_flush(adapter: *mut GstAdapter, flush: size_t);
|
||||
pub fn gst_adapter_get_buffer(adapter: *mut GstAdapter, nbytes: size_t) -> *mut gst::GstBuffer;
|
||||
|
@ -1773,8 +1755,6 @@ extern "C" {
|
|||
size: size_t,
|
||||
value: *mut u32,
|
||||
) -> ssize_t;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_adapter_offset_at_discont(adapter: *mut GstAdapter) -> u64;
|
||||
pub fn gst_adapter_prev_dts(adapter: *mut GstAdapter, distance: *mut u64) -> gst::GstClockTime;
|
||||
pub fn gst_adapter_prev_dts_at_offset(
|
||||
|
@ -1782,8 +1762,6 @@ extern "C" {
|
|||
offset: size_t,
|
||||
distance: *mut u64,
|
||||
) -> gst::GstClockTime;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_adapter_prev_offset(adapter: *mut GstAdapter, distance: *mut u64) -> u64;
|
||||
pub fn gst_adapter_prev_pts(adapter: *mut GstAdapter, distance: *mut u64) -> gst::GstClockTime;
|
||||
pub fn gst_adapter_prev_pts_at_offset(
|
||||
|
@ -1791,8 +1769,6 @@ extern "C" {
|
|||
offset: size_t,
|
||||
distance: *mut u64,
|
||||
) -> gst::GstClockTime;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn gst_adapter_pts_at_discont(adapter: *mut GstAdapter) -> gst::GstClockTime;
|
||||
pub fn gst_adapter_push(adapter: *mut GstAdapter, buf: *mut gst::GstBuffer);
|
||||
pub fn gst_adapter_take(adapter: *mut GstAdapter, nbytes: size_t) -> gpointer;
|
||||
|
@ -1812,11 +1788,7 @@ extern "C" {
|
|||
//=========================================================================
|
||||
// GstAggregator
|
||||
//=========================================================================
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_aggregator_get_type() -> GType;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_aggregator_finish_buffer(
|
||||
aggregator: *mut GstAggregator,
|
||||
buffer: *mut gst::GstBuffer,
|
||||
|
@ -1827,21 +1799,15 @@ extern "C" {
|
|||
aggregator: *mut GstAggregator,
|
||||
bufferlist: *mut gst::GstBufferList,
|
||||
) -> gst::GstFlowReturn;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_aggregator_get_allocator(
|
||||
self_: *mut GstAggregator,
|
||||
allocator: *mut *mut gst::GstAllocator,
|
||||
params: *mut gst::GstAllocationParams,
|
||||
);
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_aggregator_get_buffer_pool(self_: *mut GstAggregator) -> *mut gst::GstBufferPool;
|
||||
#[cfg(any(feature = "v1_20", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_20")))]
|
||||
pub fn gst_aggregator_get_ignore_inactive_pads(self_: *mut GstAggregator) -> gboolean;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_aggregator_get_latency(self_: *mut GstAggregator) -> gst::GstClockTime;
|
||||
#[cfg(any(feature = "v1_18", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_18")))]
|
||||
|
@ -1864,15 +1830,11 @@ extern "C" {
|
|||
#[cfg(any(feature = "v1_20", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_20")))]
|
||||
pub fn gst_aggregator_set_ignore_inactive_pads(self_: *mut GstAggregator, ignore: gboolean);
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_aggregator_set_latency(
|
||||
self_: *mut GstAggregator,
|
||||
min_latency: gst::GstClockTime,
|
||||
max_latency: gst::GstClockTime,
|
||||
);
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_aggregator_set_src_caps(self_: *mut GstAggregator, caps: *mut gst::GstCaps);
|
||||
#[cfg(any(feature = "v1_16", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_16")))]
|
||||
|
@ -1887,26 +1849,16 @@ extern "C" {
|
|||
//=========================================================================
|
||||
// GstAggregatorPad
|
||||
//=========================================================================
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_aggregator_pad_get_type() -> GType;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_aggregator_pad_drop_buffer(pad: *mut GstAggregatorPad) -> gboolean;
|
||||
#[cfg(any(feature = "v1_14_1", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14_1")))]
|
||||
pub fn gst_aggregator_pad_has_buffer(pad: *mut GstAggregatorPad) -> gboolean;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_aggregator_pad_is_eos(pad: *mut GstAggregatorPad) -> gboolean;
|
||||
#[cfg(any(feature = "v1_20", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_20")))]
|
||||
pub fn gst_aggregator_pad_is_inactive(pad: *mut GstAggregatorPad) -> gboolean;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_aggregator_pad_peek_buffer(pad: *mut GstAggregatorPad) -> *mut gst::GstBuffer;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_aggregator_pad_pop_buffer(pad: *mut GstAggregatorPad) -> *mut gst::GstBuffer;
|
||||
|
||||
//=========================================================================
|
||||
|
@ -1927,8 +1879,6 @@ extern "C" {
|
|||
dest_format: gst::GstFormat,
|
||||
dest_value: *mut i64,
|
||||
) -> gboolean;
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub fn gst_base_parse_drain(parse: *mut GstBaseParse);
|
||||
pub fn gst_base_parse_finish_frame(
|
||||
parse: *mut GstBaseParse,
|
||||
|
@ -1983,8 +1933,6 @@ extern "C" {
|
|||
obj: *mut gst::GstMiniObject,
|
||||
) -> gst::GstFlowReturn;
|
||||
pub fn gst_base_sink_get_blocksize(sink: *mut GstBaseSink) -> c_uint;
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub fn gst_base_sink_get_drop_out_of_segment(sink: *mut GstBaseSink) -> gboolean;
|
||||
pub fn gst_base_sink_get_last_sample(sink: *mut GstBaseSink) -> *mut gst::GstSample;
|
||||
pub fn gst_base_sink_get_latency(sink: *mut GstBaseSink) -> gst::GstClockTime;
|
||||
|
@ -2012,8 +1960,6 @@ extern "C" {
|
|||
) -> gboolean;
|
||||
pub fn gst_base_sink_set_async_enabled(sink: *mut GstBaseSink, enabled: gboolean);
|
||||
pub fn gst_base_sink_set_blocksize(sink: *mut GstBaseSink, blocksize: c_uint);
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub fn gst_base_sink_set_drop_out_of_segment(
|
||||
sink: *mut GstBaseSink,
|
||||
drop_out_of_segment: gboolean,
|
||||
|
@ -2089,8 +2035,6 @@ extern "C" {
|
|||
pub fn gst_base_src_set_live(src: *mut GstBaseSrc, live: gboolean);
|
||||
pub fn gst_base_src_start_complete(basesrc: *mut GstBaseSrc, ret: gst::GstFlowReturn);
|
||||
pub fn gst_base_src_start_wait(basesrc: *mut GstBaseSrc) -> gst::GstFlowReturn;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_base_src_submit_buffer_list(
|
||||
src: *mut GstBaseSrc,
|
||||
buffer_list: *mut gst::GstBufferList,
|
||||
|
|
|
@ -24,10 +24,7 @@ gir-format-check = "0.1"
|
|||
|
||||
[features]
|
||||
default = []
|
||||
v1_10 = ["gst/v1_10", "ffi/v1_10"]
|
||||
v1_12 = ["gst/v1_12", "ffi/v1_12", "v1_10"]
|
||||
v1_14 = ["gst/v1_14", "ffi/v1_14", "v1_12"]
|
||||
v1_16 = ["gst/v1_16", "ffi/v1_16", "v1_14"]
|
||||
v1_16 = ["gst/v1_16", "ffi/v1_16"]
|
||||
v1_18 = ["gst/v1_18", "ffi/v1_18", "v1_16"]
|
||||
v1_20 = ["gst/v1_20", "ffi/v1_20", "v1_18"]
|
||||
v1_22 = ["gst/v1_22", "ffi/v1_22", "v1_20"]
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
girs_directories = ["../gir-files", "../gst-gir-files"]
|
||||
library = "GstCheck"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "normal"
|
||||
concurrency = "send+sync"
|
||||
generate_safety_asserts = true
|
||||
|
|
|
@ -24,7 +24,7 @@ API metadata provided by the GStreamer project.
|
|||
## Installation
|
||||
|
||||
To build the GStreamer bindings or anything depending on them, you need to
|
||||
have at least GStreamer 1.8 and gst-plugins-base 1.8 installed. In addition,
|
||||
have at least GStreamer 1.14 and gst-plugins-base 1.14 installed. In addition,
|
||||
some of the examples/tutorials require various GStreamer plugins to be
|
||||
available, which can be found in gst-plugins-base, gst-plugins-good,
|
||||
gst-plugins-bad, gst-plugins-ugly and/or gst-libav.
|
||||
|
@ -45,16 +45,13 @@ $ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
|||
gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev
|
||||
```
|
||||
|
||||
The minimum required version of the above libraries is >= 1.8. If you
|
||||
The minimum required version of the above libraries is >= 1.14. If you
|
||||
build the gstreamer-player sub-crate, or any of the examples that
|
||||
depend on gstreamer-player, you must ensure that in addition to the
|
||||
above packages, `libgstreamer-plugins-bad1.0-dev` is installed and
|
||||
that the version is >= 1.12. See the `Cargo.toml` files for the full
|
||||
details,
|
||||
depend on gstreamer-player, you must ensure that in addition to the above
|
||||
packages, `libgstreamer-plugins-bad1.0-dev` is installed. See the `Cargo.toml`
|
||||
files for the full details,
|
||||
|
||||
```console
|
||||
$ # Only if you wish to install gstreamer-player, make sure the version
|
||||
$ # of this package is >= 1.12.
|
||||
$ apt-get install libgstreamer-plugins-bad1.0-dev
|
||||
```
|
||||
|
||||
|
@ -82,15 +79,13 @@ $ brew install gstreamer gst-plugins-base gst-plugins-good \
|
|||
--enable-gtk3
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.pkg` files from the GStreamer website and
|
||||
install them, e.g. `gstreamer-1.0-1.12.3-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.12.3-x86_64.pkg`.
|
||||
install them, e.g. `gstreamer-1.0-1.14.0-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.0-x86_64.pkg`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via Homebrew)
|
||||
and set the `PKG_CONFIG_PATH` environment variable
|
||||
|
@ -118,9 +113,7 @@ $ pacman -S glib2-devel pkg-config \
|
|||
mingw-w64-x86_64-gst-rtsp-server
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
Note that the version of `pkg-config` included in `MSYS2` is
|
||||
[known to have problems](https://github.com/rust-lang/pkg-config-rs/issues/51#issuecomment-346300858)
|
||||
|
@ -130,8 +123,8 @@ would be [`pkg-config-lite`](https://sourceforge.net/projects/pkgconfiglite/).
|
|||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.msi` files for your platform from the
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.12.3.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.12.3.msi`.
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.0.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.0.msi`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via MSYS2 or
|
||||
from [here](https://sourceforge.net/projects/pkgconfiglite/))
|
||||
|
|
|
@ -519,8 +519,6 @@ impl Harness {
|
|||
// unsafe { TODO: call ffi::gst_harness_stress_statechange_start_full() }
|
||||
//}
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
#[doc(alias = "gst_harness_take_all_data_as_buffer")]
|
||||
pub fn take_all_data_as_buffer(&mut self) -> Result<gst::Buffer, glib::BoolError> {
|
||||
unsafe {
|
||||
|
@ -529,8 +527,6 @@ impl Harness {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
#[doc(alias = "gst_harness_take_all_data_as_bytes")]
|
||||
pub fn take_all_data_as_bytes(&mut self) -> Result<glib::Bytes, glib::BoolError> {
|
||||
unsafe {
|
||||
|
|
|
@ -21,10 +21,7 @@ shell-words = "1.0.0"
|
|||
tempfile = "3"
|
||||
|
||||
[features]
|
||||
v1_10 = []
|
||||
v1_12 = ["v1_10"]
|
||||
v1_14 = ["v1_12"]
|
||||
v1_16 = ["v1_14"]
|
||||
v1_16 = []
|
||||
v1_18 = ["v1_16"]
|
||||
v1_20 = ["v1_18"]
|
||||
v1_22 = ["v1_20"]
|
||||
|
@ -51,15 +48,6 @@ rust-version = "1.57"
|
|||
features = ["dox"]
|
||||
[package.metadata.system-deps.gstreamer_check_1_0]
|
||||
name = "gstreamer-check-1.0"
|
||||
version = "1.8"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_check_1_0.v1_10]
|
||||
version = "1.10"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_check_1_0.v1_12]
|
||||
version = "1.12"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_check_1_0.v1_14]
|
||||
version = "1.14"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_check_1_0.v1_16]
|
||||
|
|
|
@ -2,16 +2,13 @@
|
|||
girs_directories = ["../../gir-files", "../../gst-gir-files"]
|
||||
library = "GstCheck"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "sys"
|
||||
|
||||
extra_versions = [
|
||||
"1.20",
|
||||
"1.18",
|
||||
"1.16",
|
||||
"1.14",
|
||||
"1.12",
|
||||
"1.10",
|
||||
]
|
||||
|
||||
external_libraries = [
|
||||
|
|
|
@ -309,14 +309,8 @@ extern "C" {
|
|||
h: *mut GstHarness,
|
||||
sleep: c_ulong,
|
||||
) -> *mut GstHarnessThread;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_harness_take_all_data(h: *mut GstHarness, size: *mut size_t) -> *mut u8;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_harness_take_all_data_as_buffer(h: *mut GstHarness) -> *mut gst::GstBuffer;
|
||||
#[cfg(any(feature = "v1_14", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_14")))]
|
||||
pub fn gst_harness_take_all_data_as_bytes(h: *mut GstHarness) -> *mut glib::GBytes;
|
||||
pub fn gst_harness_teardown(h: *mut GstHarness);
|
||||
pub fn gst_harness_try_pull(h: *mut GstHarness) -> *mut gst::GstBuffer;
|
||||
|
|
|
@ -25,10 +25,7 @@ gir-format-check = "0.1"
|
|||
|
||||
[features]
|
||||
default = []
|
||||
v1_10 = ["gst/v1_10", "ffi/v1_10"]
|
||||
v1_12 = ["gst/v1_12", "ffi/v1_12", "v1_10"]
|
||||
v1_14 = ["gst/v1_14", "ffi/v1_14", "v1_12"]
|
||||
v1_16 = ["gst/v1_16", "ffi/v1_16", "v1_14"]
|
||||
v1_16 = ["gst/v1_16", "ffi/v1_16"]
|
||||
v1_18 = ["gst/v1_18", "ffi/v1_18", "v1_16"]
|
||||
v1_20 = ["gst/v1_20", "ffi/v1_20", "v1_18"]
|
||||
v1_22 = ["gst/v1_22", "ffi/v1_22", "v1_20"]
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
girs_directories = ["../gir-files", "../gst-gir-files"]
|
||||
library = "GstController"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "normal"
|
||||
concurrency = "send+sync"
|
||||
generate_safety_asserts = true
|
||||
|
@ -24,6 +24,7 @@ generate = [
|
|||
"GstController.InterpolationMode",
|
||||
"GstController.LFOControlSource",
|
||||
"GstController.LFOWaveform",
|
||||
"GstController.ProxyControlBinding",
|
||||
"GstController.TriggerControlSource",
|
||||
]
|
||||
|
||||
|
@ -39,11 +40,6 @@ name = "Gst.ClockTime"
|
|||
status = "manual"
|
||||
conversion_type = "Option"
|
||||
|
||||
[[object]]
|
||||
name = "GstController.ProxyControlBinding"
|
||||
status = "generate"
|
||||
version = "1.12"
|
||||
|
||||
[[object]]
|
||||
name = "GstController.TimedValueControlSource"
|
||||
status = "generate"
|
||||
|
|
|
@ -24,7 +24,7 @@ API metadata provided by the GStreamer project.
|
|||
## Installation
|
||||
|
||||
To build the GStreamer bindings or anything depending on them, you need to
|
||||
have at least GStreamer 1.8 and gst-plugins-base 1.8 installed. In addition,
|
||||
have at least GStreamer 1.14 and gst-plugins-base 1.14 installed. In addition,
|
||||
some of the examples/tutorials require various GStreamer plugins to be
|
||||
available, which can be found in gst-plugins-base, gst-plugins-good,
|
||||
gst-plugins-bad, gst-plugins-ugly and/or gst-libav.
|
||||
|
@ -45,16 +45,13 @@ $ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
|||
gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev
|
||||
```
|
||||
|
||||
The minimum required version of the above libraries is >= 1.8. If you
|
||||
The minimum required version of the above libraries is >= 1.14. If you
|
||||
build the gstreamer-player sub-crate, or any of the examples that
|
||||
depend on gstreamer-player, you must ensure that in addition to the
|
||||
above packages, `libgstreamer-plugins-bad1.0-dev` is installed and
|
||||
that the version is >= 1.12. See the `Cargo.toml` files for the full
|
||||
details,
|
||||
depend on gstreamer-player, you must ensure that in addition to the above
|
||||
packages, `libgstreamer-plugins-bad1.0-dev` is installed. See the `Cargo.toml`
|
||||
files for the full details,
|
||||
|
||||
```console
|
||||
$ # Only if you wish to install gstreamer-player, make sure the version
|
||||
$ # of this package is >= 1.12.
|
||||
$ apt-get install libgstreamer-plugins-bad1.0-dev
|
||||
```
|
||||
|
||||
|
@ -82,15 +79,13 @@ $ brew install gstreamer gst-plugins-base gst-plugins-good \
|
|||
--enable-gtk3
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.pkg` files from the GStreamer website and
|
||||
install them, e.g. `gstreamer-1.0-1.12.3-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.12.3-x86_64.pkg`.
|
||||
install them, e.g. `gstreamer-1.0-1.14.0-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.0-x86_64.pkg`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via Homebrew)
|
||||
and set the `PKG_CONFIG_PATH` environment variable
|
||||
|
@ -118,9 +113,7 @@ $ pacman -S glib2-devel pkg-config \
|
|||
mingw-w64-x86_64-gst-rtsp-server
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
Note that the version of `pkg-config` included in `MSYS2` is
|
||||
[known to have problems](https://github.com/rust-lang/pkg-config-rs/issues/51#issuecomment-346300858)
|
||||
|
@ -130,8 +123,8 @@ would be [`pkg-config-lite`](https://sourceforge.net/projects/pkgconfiglite/).
|
|||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.msi` files for your platform from the
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.12.3.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.12.3.msi`.
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.0.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.0.msi`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via MSYS2 or
|
||||
from [here](https://sourceforge.net/projects/pkgconfiglite/))
|
||||
|
|
|
@ -15,11 +15,7 @@ pub use self::interpolation_control_source::InterpolationControlSource;
|
|||
mod lfo_control_source;
|
||||
pub use self::lfo_control_source::LFOControlSource;
|
||||
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
mod proxy_control_binding;
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub use self::proxy_control_binding::ProxyControlBinding;
|
||||
|
||||
mod timed_value_control_source;
|
||||
|
|
|
@ -22,10 +22,7 @@ shell-words = "1.0.0"
|
|||
tempfile = "3"
|
||||
|
||||
[features]
|
||||
v1_10 = []
|
||||
v1_12 = ["v1_10"]
|
||||
v1_14 = ["v1_12"]
|
||||
v1_16 = ["v1_14"]
|
||||
v1_16 = []
|
||||
v1_18 = ["v1_16"]
|
||||
v1_20 = ["v1_18"]
|
||||
v1_22 = ["v1_20"]
|
||||
|
@ -52,15 +49,6 @@ rust-version = "1.57"
|
|||
features = ["dox"]
|
||||
[package.metadata.system-deps.gstreamer_controller_1_0]
|
||||
name = "gstreamer-controller-1.0"
|
||||
version = "1.8"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_controller_1_0.v1_10]
|
||||
version = "1.10"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_controller_1_0.v1_12]
|
||||
version = "1.12"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_controller_1_0.v1_14]
|
||||
version = "1.14"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_controller_1_0.v1_16]
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
girs_directories = ["../../gir-files", "../../gst-gir-files"]
|
||||
library = "GstController"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "sys"
|
||||
|
||||
external_libraries = [
|
||||
|
@ -14,9 +14,6 @@ extra_versions = [
|
|||
"1.20",
|
||||
"1.18",
|
||||
"1.16",
|
||||
"1.14",
|
||||
"1.12",
|
||||
"1.10",
|
||||
]
|
||||
|
||||
[external_libraries]
|
||||
|
|
|
@ -478,8 +478,6 @@ extern "C" {
|
|||
// GstProxyControlBinding
|
||||
//=========================================================================
|
||||
pub fn gst_proxy_control_binding_get_type() -> GType;
|
||||
#[cfg(any(feature = "v1_12", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_12")))]
|
||||
pub fn gst_proxy_control_binding_new(
|
||||
object: *mut gst::GstObject,
|
||||
property_name: *const c_char,
|
||||
|
|
|
@ -27,10 +27,7 @@ gst-pbutils = { package = "gstreamer-pbutils", path = "../gstreamer-pbutils" }
|
|||
gir-format-check = "0.1"
|
||||
|
||||
[features]
|
||||
v1_10 = ["gst/v1_10", "gst-base/v1_10", "gst-pbutils/v1_10", "ffi/v1_10"]
|
||||
v1_12 = ["gst/v1_12", "gst-base/v1_12", "gst-pbutils/v1_12", "ffi/v1_12", "v1_10"]
|
||||
v1_14 = ["gst/v1_14", "gst-base/v1_14", "gst-pbutils/v1_14", "ffi/v1_14", "v1_12"]
|
||||
v1_16 = ["gst/v1_16", "gst-base/v1_16", "gst-pbutils/v1_16", "ffi/v1_16", "v1_14"]
|
||||
v1_16 = ["gst/v1_16", "gst-base/v1_16", "gst-pbutils/v1_16", "ffi/v1_16"]
|
||||
v1_18 = ["gst/v1_18", "gst-base/v1_18", "gst-pbutils/v1_18", "ffi/v1_18", "v1_16"]
|
||||
v1_20 = ["gst/v1_20", "gst-base/v1_20", "gst-pbutils/v1_20", "ffi/v1_20", "v1_18"]
|
||||
v1_22 = ["gst/v1_22", "gst-base/v1_22", "gst-pbutils/v1_22", "ffi/v1_22", "v1_20"]
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
girs_directories = ["../gir-files", "../gst-gir-files"]
|
||||
library = "GES"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "normal"
|
||||
generate_safety_asserts = true
|
||||
single_version_file = true
|
||||
|
|
|
@ -29,7 +29,7 @@ API metadata provided by the GStreamer project.
|
|||
## Installation
|
||||
|
||||
To build the GStreamer bindings or anything depending on them, you need to
|
||||
have at least GStreamer 1.8 and gst-plugins-base 1.8 installed. In addition,
|
||||
have at least GStreamer 1.14 and gst-plugins-base 1.14 installed. In addition,
|
||||
some of the examples/tutorials require various GStreamer plugins to be
|
||||
available, which can be found in gst-plugins-base, gst-plugins-good,
|
||||
gst-plugins-bad, gst-plugins-ugly and/or gst-libav.
|
||||
|
@ -50,16 +50,13 @@ $ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
|||
gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev
|
||||
```
|
||||
|
||||
The minimum required version of the above libraries is >= 1.8. If you
|
||||
The minimum required version of the above libraries is >= 1.14. If you
|
||||
build the gstreamer-player sub-crate, or any of the examples that
|
||||
depend on gstreamer-player, you must ensure that in addition to the
|
||||
above packages, `libgstreamer-plugins-bad1.0-dev` is installed and
|
||||
that the version is >= 1.12. See the `Cargo.toml` files for the full
|
||||
details,
|
||||
depend on gstreamer-player, you must ensure that in addition to the above
|
||||
packages, `libgstreamer-plugins-bad1.0-dev` is installed. See the `Cargo.toml`
|
||||
files for the full details,
|
||||
|
||||
```console
|
||||
$ # Only if you wish to install gstreamer-player, make sure the version
|
||||
$ # of this package is >= 1.12.
|
||||
$ apt-get install libgstreamer-plugins-bad1.0-dev
|
||||
```
|
||||
|
||||
|
@ -87,15 +84,13 @@ $ brew install gstreamer gst-plugins-base gst-plugins-good \
|
|||
--enable-gtk3
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.pkg` files from the GStreamer website and
|
||||
install them, e.g. `gstreamer-1.0-1.12.3-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.12.3-x86_64.pkg`.
|
||||
install them, e.g. `gstreamer-1.0-1.14.0-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.0-x86_64.pkg`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via Homebrew)
|
||||
and set the `PKG_CONFIG_PATH` environment variable
|
||||
|
@ -123,9 +118,7 @@ $ pacman -S glib2-devel pkg-config \
|
|||
mingw-w64-x86_64-gst-rtsp-server
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
Note that the version of `pkg-config` included in `MSYS2` is
|
||||
[known to have problems](https://github.com/rust-lang/pkg-config-rs/issues/51#issuecomment-346300858)
|
||||
|
@ -135,8 +128,8 @@ would be [`pkg-config-lite`](https://sourceforge.net/projects/pkgconfiglite/).
|
|||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.msi` files for your platform from the
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.12.3.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.12.3.msi`.
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.0.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.0.msi`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via MSYS2 or
|
||||
from [here](https://sourceforge.net/projects/pkgconfiglite/))
|
||||
|
|
|
@ -5,14 +5,8 @@
|
|||
|
||||
use crate::Extractable;
|
||||
use crate::Formatter;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
use crate::Timeline;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
use glib::object::IsA;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
use glib::translate::*;
|
||||
|
||||
glib::wrapper! {
|
||||
|
@ -27,8 +21,6 @@ glib::wrapper! {
|
|||
impl CommandLineFormatter {
|
||||
pub const NONE: Option<&'static CommandLineFormatter> = None;
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "ges_command_line_formatter_get_help")]
|
||||
#[doc(alias = "get_help")]
|
||||
pub fn help(commands: &[&str]) -> glib::GString {
|
||||
|
@ -42,8 +34,6 @@ impl CommandLineFormatter {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
#[doc(alias = "ges_command_line_formatter_get_timeline_uri")]
|
||||
#[doc(alias = "get_timeline_uri")]
|
||||
pub fn timeline_uri(timeline: &impl IsA<Timeline>) -> glib::GString {
|
||||
|
|
|
@ -209,7 +209,7 @@ pub trait TimelineElementExt: 'static {
|
|||
#[doc(alias = "ges_timeline_element_set_parent")]
|
||||
fn set_parent(&self, parent: &impl IsA<TimelineElement>) -> Result<(), glib::error::BoolError>;
|
||||
|
||||
#[cfg_attr(feature = "v1_10", deprecated = "Since 1.10")]
|
||||
#[deprecated = "Since 1.10"]
|
||||
#[doc(alias = "ges_timeline_element_set_priority")]
|
||||
fn set_priority(&self, priority: u32) -> bool;
|
||||
|
||||
|
@ -260,7 +260,7 @@ pub trait TimelineElementExt: 'static {
|
|||
#[doc(alias = "parent")]
|
||||
fn connect_parent_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
|
||||
|
||||
#[cfg_attr(feature = "v1_10", deprecated = "Since 1.10")]
|
||||
#[deprecated = "Since 1.10"]
|
||||
#[doc(alias = "priority")]
|
||||
fn connect_priority_notify<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
|
||||
|
||||
|
|
|
@ -29,10 +29,7 @@ shell-words = "1.0.0"
|
|||
tempfile = "3"
|
||||
|
||||
[features]
|
||||
v1_10 = []
|
||||
v1_12 = ["v1_10"]
|
||||
v1_14 = ["v1_12"]
|
||||
v1_16 = ["v1_14"]
|
||||
v1_16 = []
|
||||
v1_18 = ["v1_16"]
|
||||
v1_20 = ["v1_18"]
|
||||
v1_22 = ["v1_20"]
|
||||
|
@ -59,15 +56,6 @@ rust-version = "1.57"
|
|||
features = ["dox"]
|
||||
[package.metadata.system-deps.gst_editing_services_1_0]
|
||||
name = "gst-editing-services-1.0"
|
||||
version = "1.8"
|
||||
|
||||
[package.metadata.system-deps.gst_editing_services_1_0.v1_10]
|
||||
version = "1.10"
|
||||
|
||||
[package.metadata.system-deps.gst_editing_services_1_0.v1_12]
|
||||
version = "1.12"
|
||||
|
||||
[package.metadata.system-deps.gst_editing_services_1_0.v1_14]
|
||||
version = "1.14"
|
||||
|
||||
[package.metadata.system-deps.gst_editing_services_1_0.v1_16]
|
||||
|
|
|
@ -2,16 +2,13 @@
|
|||
girs_directories = ["../../gir-files", "../../gst-gir-files"]
|
||||
library = "GES"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "sys"
|
||||
|
||||
extra_versions = [
|
||||
"1.20",
|
||||
"1.18",
|
||||
"1.16",
|
||||
"1.14",
|
||||
"1.12",
|
||||
"1.10",
|
||||
]
|
||||
|
||||
external_libraries = [
|
||||
|
|
|
@ -3120,14 +3120,10 @@ extern "C" {
|
|||
// GESCommandLineFormatter
|
||||
//=========================================================================
|
||||
pub fn ges_command_line_formatter_get_type() -> GType;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn ges_command_line_formatter_get_help(
|
||||
nargs: c_int,
|
||||
commands: *mut *mut c_char,
|
||||
) -> *mut c_char;
|
||||
#[cfg(any(feature = "v1_10", feature = "dox"))]
|
||||
#[cfg_attr(feature = "dox", doc(cfg(feature = "v1_10")))]
|
||||
pub fn ges_command_line_formatter_get_timeline_uri(timeline: *mut GESTimeline) -> *mut c_char;
|
||||
|
||||
//=========================================================================
|
||||
|
|
|
@ -23,9 +23,9 @@ libc = "0.2"
|
|||
once_cell = "1.0"
|
||||
ffi = { package = "gstreamer-gl-sys", path = "sys" }
|
||||
glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
|
||||
gst = { package = "gstreamer", path = "../gstreamer", features = ["v1_14"] }
|
||||
gst-base = { package = "gstreamer-base", path = "../gstreamer-base", features = ["v1_14"] }
|
||||
gst-video = { package = "gstreamer-video", path = "../gstreamer-video", features = ["v1_14"] }
|
||||
gst = { package = "gstreamer", path = "../gstreamer" }
|
||||
gst-base = { package = "gstreamer-base", path = "../gstreamer-base" }
|
||||
gst-video = { package = "gstreamer-video", path = "../gstreamer-video" }
|
||||
|
||||
[dev-dependencies]
|
||||
gir-format-check = "0.1"
|
||||
|
|
|
@ -24,12 +24,11 @@ API metadata provided by the GStreamer project.
|
|||
|
||||
## Installation
|
||||
|
||||
To build the GStreamer bindings or anything depending on them, you
|
||||
need to have at least GStreamer 1.14 and gst-plugins-base 1.14
|
||||
installed. In addition, some of the examples/tutorials require various
|
||||
GStreamer plugins to be available, which can be found in
|
||||
gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly
|
||||
and/or gst-libav.
|
||||
To build the GStreamer bindings or anything depending on them, you need to
|
||||
have at least GStreamer 1.14 and gst-plugins-base 1.14 installed. In addition,
|
||||
some of the examples/tutorials require various GStreamer plugins to be
|
||||
available, which can be found in gst-plugins-base, gst-plugins-good,
|
||||
gst-plugins-bad, gst-plugins-ugly and/or gst-libav.
|
||||
|
||||
<a name="installation-linux"/>
|
||||
|
||||
|
@ -47,8 +46,15 @@ $ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
|||
gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev
|
||||
```
|
||||
|
||||
The minimum required version of the above libraries is >= 1.14. See
|
||||
the `Cargo.toml` files for the full details.
|
||||
The minimum required version of the above libraries is >= 1.14. If you
|
||||
build the gstreamer-player sub-crate, or any of the examples that
|
||||
depend on gstreamer-player, you must ensure that in addition to the above
|
||||
packages, `libgstreamer-plugins-bad1.0-dev` is installed. See the `Cargo.toml`
|
||||
files for the full details,
|
||||
|
||||
```console
|
||||
$ apt-get install libgstreamer-plugins-bad1.0-dev
|
||||
```
|
||||
|
||||
Package names on other distributions should be similar.
|
||||
Please submit a pull request with instructions for yours.
|
||||
|
@ -74,13 +80,13 @@ $ brew install gstreamer gst-plugins-base gst-plugins-good \
|
|||
--enable-gtk3
|
||||
```
|
||||
|
||||
Please, make sure the version of these libraries is >= 1.14.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.pkg` files from the GStreamer website and
|
||||
install them, e.g. `gstreamer-1.0-1.14.4-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.4-x86_64.pkg`.
|
||||
install them, e.g. `gstreamer-1.0-1.14.0-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.0-x86_64.pkg`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via Homebrew)
|
||||
and set the `PKG_CONFIG_PATH` environment variable
|
||||
|
@ -108,7 +114,7 @@ $ pacman -S glib2-devel pkg-config \
|
|||
mingw-w64-x86_64-gst-rtsp-server
|
||||
```
|
||||
|
||||
Please, make sure the version of these libraries is >= 1.14.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
Note that the version of `pkg-config` included in `MSYS2` is
|
||||
[known to have problems](https://github.com/rust-lang/pkg-config-rs/issues/51#issuecomment-346300858)
|
||||
|
@ -118,8 +124,8 @@ would be [`pkg-config-lite`](https://sourceforge.net/projects/pkgconfiglite/).
|
|||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.msi` files for your platform from the
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.4.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.4.msi`.
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.0.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.0.msi`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via MSYS2 or
|
||||
from [here](https://sourceforge.net/projects/pkgconfiglite/))
|
||||
|
|
|
@ -21,7 +21,7 @@ libc = "0.2"
|
|||
ffi = { package = "gstreamer-gl-egl-sys", path = "sys" }
|
||||
|
||||
glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
|
||||
gst = { package = "gstreamer", path = "../../gstreamer", features = ["v1_14"] }
|
||||
gst = { package = "gstreamer", path = "../../gstreamer" }
|
||||
gst-gl = { package = "gstreamer-gl", path = "../" }
|
||||
|
||||
[dev-dependencies]
|
||||
|
|
|
@ -24,12 +24,11 @@ API metadata provided by the GStreamer project.
|
|||
|
||||
## Installation
|
||||
|
||||
To build the GStreamer bindings or anything depending on them, you
|
||||
need to have at least GStreamer 1.14 and gst-plugins-base 1.14
|
||||
installed. In addition, some of the examples/tutorials require various
|
||||
GStreamer plugins to be available, which can be found in
|
||||
gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly
|
||||
and/or gst-libav.
|
||||
To build the GStreamer bindings or anything depending on them, you need to
|
||||
have at least GStreamer 1.14 and gst-plugins-base 1.14 installed. In addition,
|
||||
some of the examples/tutorials require various GStreamer plugins to be
|
||||
available, which can be found in gst-plugins-base, gst-plugins-good,
|
||||
gst-plugins-bad, gst-plugins-ugly and/or gst-libav.
|
||||
|
||||
<a name="installation-linux"/>
|
||||
|
||||
|
@ -47,8 +46,15 @@ $ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
|||
gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev
|
||||
```
|
||||
|
||||
The minimum required version of the above libraries is >= 1.14. See
|
||||
the `Cargo.toml` files for the full details.
|
||||
The minimum required version of the above libraries is >= 1.14. If you
|
||||
build the gstreamer-player sub-crate, or any of the examples that
|
||||
depend on gstreamer-player, you must ensure that in addition to the above
|
||||
packages, `libgstreamer-plugins-bad1.0-dev` is installed. See the `Cargo.toml`
|
||||
files for the full details,
|
||||
|
||||
```console
|
||||
$ apt-get install libgstreamer-plugins-bad1.0-dev
|
||||
```
|
||||
|
||||
Package names on other distributions should be similar.
|
||||
Please submit a pull request with instructions for yours.
|
||||
|
@ -74,13 +80,13 @@ $ brew install gstreamer gst-plugins-base gst-plugins-good \
|
|||
--enable-gtk3
|
||||
```
|
||||
|
||||
Please, make sure the version of these libraries is >= 1.14.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.pkg` files from the GStreamer website and
|
||||
install them, e.g. `gstreamer-1.0-1.14.4-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.4-x86_64.pkg`.
|
||||
install them, e.g. `gstreamer-1.0-1.14.0-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.0-x86_64.pkg`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via Homebrew)
|
||||
and set the `PKG_CONFIG_PATH` environment variable
|
||||
|
@ -108,7 +114,7 @@ $ pacman -S glib2-devel pkg-config \
|
|||
mingw-w64-x86_64-gst-rtsp-server
|
||||
```
|
||||
|
||||
Please, make sure the version of these libraries is >= 1.14.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
Note that the version of `pkg-config` included in `MSYS2` is
|
||||
[known to have problems](https://github.com/rust-lang/pkg-config-rs/issues/51#issuecomment-346300858)
|
||||
|
@ -118,8 +124,8 @@ would be [`pkg-config-lite`](https://sourceforge.net/projects/pkgconfiglite/).
|
|||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.msi` files for your platform from the
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.4.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.4.msi`.
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.0.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.0.msi`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via MSYS2 or
|
||||
from [here](https://sourceforge.net/projects/pkgconfiglite/))
|
||||
|
|
|
@ -15,17 +15,14 @@ git = "https://github.com/gtk-rs/gtk-rs-core"
|
|||
[dependencies.gst_base]
|
||||
package = "gstreamer-base-sys"
|
||||
path = "../../gstreamer-base/sys"
|
||||
features = ["v1_14"]
|
||||
|
||||
[dependencies.gst]
|
||||
package = "gstreamer-sys"
|
||||
path = "../../gstreamer/sys"
|
||||
features = ["v1_14"]
|
||||
|
||||
[dependencies.gst_video]
|
||||
package = "gstreamer-video-sys"
|
||||
path = "../../gstreamer-video/sys"
|
||||
features = ["v1_14"]
|
||||
|
||||
[dev-dependencies]
|
||||
shell-words = "1.0.0"
|
||||
|
|
|
@ -21,7 +21,7 @@ libc = "0.2"
|
|||
ffi = { package = "gstreamer-gl-wayland-sys", path = "sys" }
|
||||
|
||||
glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
|
||||
gst = { package = "gstreamer", path = "../../gstreamer", features = ["v1_14"] }
|
||||
gst = { package = "gstreamer", path = "../../gstreamer" }
|
||||
gst-gl = { package = "gstreamer-gl", path = "../" }
|
||||
|
||||
[dev-dependencies]
|
||||
|
|
|
@ -24,12 +24,11 @@ API metadata provided by the GStreamer project.
|
|||
|
||||
## Installation
|
||||
|
||||
To build the GStreamer bindings or anything depending on them, you
|
||||
need to have at least GStreamer 1.14 and gst-plugins-base 1.14
|
||||
installed. In addition, some of the examples/tutorials require various
|
||||
GStreamer plugins to be available, which can be found in
|
||||
gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly
|
||||
and/or gst-libav.
|
||||
To build the GStreamer bindings or anything depending on them, you need to
|
||||
have at least GStreamer 1.14 and gst-plugins-base 1.14 installed. In addition,
|
||||
some of the examples/tutorials require various GStreamer plugins to be
|
||||
available, which can be found in gst-plugins-base, gst-plugins-good,
|
||||
gst-plugins-bad, gst-plugins-ugly and/or gst-libav.
|
||||
|
||||
<a name="installation-linux"/>
|
||||
|
||||
|
@ -47,8 +46,15 @@ $ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
|||
gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev
|
||||
```
|
||||
|
||||
The minimum required version of the above libraries is >= 1.14. See
|
||||
the `Cargo.toml` files for the full details.
|
||||
The minimum required version of the above libraries is >= 1.14. If you
|
||||
build the gstreamer-player sub-crate, or any of the examples that
|
||||
depend on gstreamer-player, you must ensure that in addition to the above
|
||||
packages, `libgstreamer-plugins-bad1.0-dev` is installed. See the `Cargo.toml`
|
||||
files for the full details,
|
||||
|
||||
```console
|
||||
$ apt-get install libgstreamer-plugins-bad1.0-dev
|
||||
```
|
||||
|
||||
Package names on other distributions should be similar.
|
||||
Please submit a pull request with instructions for yours.
|
||||
|
@ -74,13 +80,13 @@ $ brew install gstreamer gst-plugins-base gst-plugins-good \
|
|||
--enable-gtk3
|
||||
```
|
||||
|
||||
Please, make sure the version of these libraries is >= 1.14.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.pkg` files from the GStreamer website and
|
||||
install them, e.g. `gstreamer-1.0-1.14.4-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.4-x86_64.pkg`.
|
||||
install them, e.g. `gstreamer-1.0-1.14.0-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.0-x86_64.pkg`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via Homebrew)
|
||||
and set the `PKG_CONFIG_PATH` environment variable
|
||||
|
@ -108,7 +114,7 @@ $ pacman -S glib2-devel pkg-config \
|
|||
mingw-w64-x86_64-gst-rtsp-server
|
||||
```
|
||||
|
||||
Please, make sure the version of these libraries is >= 1.14.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
Note that the version of `pkg-config` included in `MSYS2` is
|
||||
[known to have problems](https://github.com/rust-lang/pkg-config-rs/issues/51#issuecomment-346300858)
|
||||
|
@ -118,8 +124,8 @@ would be [`pkg-config-lite`](https://sourceforge.net/projects/pkgconfiglite/).
|
|||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.msi` files for your platform from the
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.4.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.4.msi`.
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.0.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.0.msi`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via MSYS2 or
|
||||
from [here](https://sourceforge.net/projects/pkgconfiglite/))
|
||||
|
|
|
@ -21,7 +21,7 @@ libc = "0.2"
|
|||
ffi = { package = "gstreamer-gl-x11-sys", path = "sys" }
|
||||
|
||||
glib = { git = "https://github.com/gtk-rs/gtk-rs-core" }
|
||||
gst = { package = "gstreamer", path = "../../gstreamer", features = ["v1_14"] }
|
||||
gst = { package = "gstreamer", path = "../../gstreamer" }
|
||||
gst-gl = { package = "gstreamer-gl", path = "../" }
|
||||
|
||||
[dev-dependencies]
|
||||
|
|
|
@ -24,12 +24,11 @@ API metadata provided by the GStreamer project.
|
|||
|
||||
## Installation
|
||||
|
||||
To build the GStreamer bindings or anything depending on them, you
|
||||
need to have at least GStreamer 1.14 and gst-plugins-base 1.14
|
||||
installed. In addition, some of the examples/tutorials require various
|
||||
GStreamer plugins to be available, which can be found in
|
||||
gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly
|
||||
and/or gst-libav.
|
||||
To build the GStreamer bindings or anything depending on them, you need to
|
||||
have at least GStreamer 1.14 and gst-plugins-base 1.14 installed. In addition,
|
||||
some of the examples/tutorials require various GStreamer plugins to be
|
||||
available, which can be found in gst-plugins-base, gst-plugins-good,
|
||||
gst-plugins-bad, gst-plugins-ugly and/or gst-libav.
|
||||
|
||||
<a name="installation-linux"/>
|
||||
|
||||
|
@ -47,8 +46,15 @@ $ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
|||
gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev
|
||||
```
|
||||
|
||||
The minimum required version of the above libraries is >= 1.14. See
|
||||
the `Cargo.toml` files for the full details.
|
||||
The minimum required version of the above libraries is >= 1.14. If you
|
||||
build the gstreamer-player sub-crate, or any of the examples that
|
||||
depend on gstreamer-player, you must ensure that in addition to the above
|
||||
packages, `libgstreamer-plugins-bad1.0-dev` is installed. See the `Cargo.toml`
|
||||
files for the full details,
|
||||
|
||||
```console
|
||||
$ apt-get install libgstreamer-plugins-bad1.0-dev
|
||||
```
|
||||
|
||||
Package names on other distributions should be similar.
|
||||
Please submit a pull request with instructions for yours.
|
||||
|
@ -74,13 +80,13 @@ $ brew install gstreamer gst-plugins-base gst-plugins-good \
|
|||
--enable-gtk3
|
||||
```
|
||||
|
||||
Please, make sure the version of these libraries is >= 1.14.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.pkg` files from the GStreamer website and
|
||||
install them, e.g. `gstreamer-1.0-1.14.4-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.4-x86_64.pkg`.
|
||||
install them, e.g. `gstreamer-1.0-1.14.0-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.0-x86_64.pkg`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via Homebrew)
|
||||
and set the `PKG_CONFIG_PATH` environment variable
|
||||
|
@ -108,7 +114,7 @@ $ pacman -S glib2-devel pkg-config \
|
|||
mingw-w64-x86_64-gst-rtsp-server
|
||||
```
|
||||
|
||||
Please, make sure the version of these libraries is >= 1.14.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
Note that the version of `pkg-config` included in `MSYS2` is
|
||||
[known to have problems](https://github.com/rust-lang/pkg-config-rs/issues/51#issuecomment-346300858)
|
||||
|
@ -118,8 +124,8 @@ would be [`pkg-config-lite`](https://sourceforge.net/projects/pkgconfiglite/).
|
|||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.msi` files for your platform from the
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.4.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.4.msi`.
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.0.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.0.msi`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via MSYS2 or
|
||||
from [here](https://sourceforge.net/projects/pkgconfiglite/))
|
||||
|
|
|
@ -21,8 +21,7 @@ shell-words = "1.0.0"
|
|||
tempfile = "3"
|
||||
|
||||
[features]
|
||||
v1_14 = []
|
||||
v1_16 = ["v1_14"]
|
||||
v1_16 = []
|
||||
v1_18 = ["v1_16"]
|
||||
v1_20 = ["v1_18"]
|
||||
v1_22 = ["v1_20"]
|
||||
|
@ -49,9 +48,6 @@ rust-version = "1.57"
|
|||
features = ["dox"]
|
||||
[package.metadata.system-deps.gstreamer_mpegts_1_0]
|
||||
name = "gstreamer-mpegts-1.0"
|
||||
version = "1.12"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_mpegts_1_0.v1_14]
|
||||
version = "1.14"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_mpegts_1_0.v1_16]
|
||||
|
|
|
@ -2,14 +2,13 @@
|
|||
girs_directories = ["../../gir-files", "../../gst-gir-files"]
|
||||
library = "GstMpegts"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.12"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "sys"
|
||||
|
||||
extra_versions = [
|
||||
"1.20",
|
||||
"1.18",
|
||||
"1.16",
|
||||
"1.14",
|
||||
]
|
||||
|
||||
external_libraries = [
|
||||
|
|
|
@ -24,10 +24,7 @@ gir-format-check = "0.1"
|
|||
|
||||
[features]
|
||||
default = []
|
||||
v1_10 = ["gst/v1_10", "ffi/v1_10"]
|
||||
v1_12 = ["gst/v1_12", "ffi/v1_12", "v1_10"]
|
||||
v1_14 = ["gst/v1_14", "ffi/v1_14", "v1_12"]
|
||||
v1_16 = ["gst/v1_16", "ffi/v1_16", "v1_14"]
|
||||
v1_16 = ["gst/v1_16", "ffi/v1_16"]
|
||||
v1_18 = ["gst/v1_18", "ffi/v1_18", "v1_16"]
|
||||
v1_20 = ["gst/v1_20", "ffi/v1_20", "v1_18"]
|
||||
v1_22 = ["gst/v1_22", "ffi/v1_22", "v1_20"]
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
girs_directories = ["../gir-files", "../gst-gir-files"]
|
||||
library = "GstNet"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "normal"
|
||||
concurrency = "send+sync"
|
||||
generate_safety_asserts = true
|
||||
|
@ -39,37 +39,17 @@ name = "GstNet.NetClientClock"
|
|||
status = "generate"
|
||||
final_type = true
|
||||
|
||||
[[object.function]]
|
||||
name = "new"
|
||||
# Floating reference handling
|
||||
manual = true
|
||||
|
||||
[[object]]
|
||||
name = "GstNet.NetTimeProvider"
|
||||
status = "generate"
|
||||
final_type = true
|
||||
|
||||
[[object.function]]
|
||||
name = "new"
|
||||
# Floating reference handling
|
||||
manual = true
|
||||
|
||||
[[object]]
|
||||
name = "GstNet.NtpClock"
|
||||
status = "generate"
|
||||
final_type = true
|
||||
|
||||
[[object.function]]
|
||||
name = "new"
|
||||
# Floating reference handling
|
||||
manual = true
|
||||
|
||||
[[object]]
|
||||
name = "GstNet.PtpClock"
|
||||
status = "generate"
|
||||
final_type = true
|
||||
|
||||
[[object.function]]
|
||||
name = "new"
|
||||
# Floating reference handling
|
||||
manual = true
|
||||
|
|
|
@ -24,7 +24,7 @@ API metadata provided by the GStreamer project.
|
|||
## Installation
|
||||
|
||||
To build the GStreamer bindings or anything depending on them, you need to
|
||||
have at least GStreamer 1.8 and gst-plugins-base 1.8 installed. In addition,
|
||||
have at least GStreamer 1.14 and gst-plugins-base 1.14 installed. In addition,
|
||||
some of the examples/tutorials require various GStreamer plugins to be
|
||||
available, which can be found in gst-plugins-base, gst-plugins-good,
|
||||
gst-plugins-bad, gst-plugins-ugly and/or gst-libav.
|
||||
|
@ -45,16 +45,13 @@ $ apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
|
|||
gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev
|
||||
```
|
||||
|
||||
The minimum required version of the above libraries is >= 1.8. If you
|
||||
The minimum required version of the above libraries is >= 1.14. If you
|
||||
build the gstreamer-player sub-crate, or any of the examples that
|
||||
depend on gstreamer-player, you must ensure that in addition to the
|
||||
above packages, `libgstreamer-plugins-bad1.0-dev` is installed and
|
||||
that the version is >= 1.12. See the `Cargo.toml` files for the full
|
||||
details,
|
||||
depend on gstreamer-player, you must ensure that in addition to the above
|
||||
packages, `libgstreamer-plugins-bad1.0-dev` is installed. See the `Cargo.toml`
|
||||
files for the full details,
|
||||
|
||||
```console
|
||||
$ # Only if you wish to install gstreamer-player, make sure the version
|
||||
$ # of this package is >= 1.12.
|
||||
$ apt-get install libgstreamer-plugins-bad1.0-dev
|
||||
```
|
||||
|
||||
|
@ -82,15 +79,13 @@ $ brew install gstreamer gst-plugins-base gst-plugins-good \
|
|||
--enable-gtk3
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.pkg` files from the GStreamer website and
|
||||
install them, e.g. `gstreamer-1.0-1.12.3-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.12.3-x86_64.pkg`.
|
||||
install them, e.g. `gstreamer-1.0-1.14.0-x86_64.pkg` and
|
||||
`gstreamer-1.0-devel-1.14.0-x86_64.pkg`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via Homebrew)
|
||||
and set the `PKG_CONFIG_PATH` environment variable
|
||||
|
@ -118,9 +113,7 @@ $ pacman -S glib2-devel pkg-config \
|
|||
mingw-w64-x86_64-gst-rtsp-server
|
||||
```
|
||||
|
||||
If you wish to install the gstreamer-player sub-crate, make sure the
|
||||
version of these libraries is >= 1.12. Otherwise, a version >= 1.8 is
|
||||
sufficient.
|
||||
Make sure the version of these libraries is >= 1.14.
|
||||
|
||||
Note that the version of `pkg-config` included in `MSYS2` is
|
||||
[known to have problems](https://github.com/rust-lang/pkg-config-rs/issues/51#issuecomment-346300858)
|
||||
|
@ -130,8 +123,8 @@ would be [`pkg-config-lite`](https://sourceforge.net/projects/pkgconfiglite/).
|
|||
#### GStreamer Binaries
|
||||
|
||||
You need to download the *two* `.msi` files for your platform from the
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.12.3.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.12.3.msi`.
|
||||
GStreamer website and install them, e.g. `gstreamer-1.0-x86_64-1.14.0.msi` and
|
||||
`gstreamer-1.0-devel-x86_64-1.14.0.msi`.
|
||||
|
||||
After installation, you also need to install `pkg-config` (e.g. via MSYS2 or
|
||||
from [here](https://sourceforge.net/projects/pkgconfiglite/))
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
|
||||
// DO NOT EDIT
|
||||
|
||||
use glib::object::Cast;
|
||||
use glib::object::IsA;
|
||||
use glib::object::ObjectType as ObjectType_;
|
||||
use glib::signal::connect_raw;
|
||||
|
@ -23,6 +24,25 @@ glib::wrapper! {
|
|||
}
|
||||
|
||||
impl NetClientClock {
|
||||
#[doc(alias = "gst_net_client_clock_new")]
|
||||
pub fn new(
|
||||
name: &str,
|
||||
remote_address: &str,
|
||||
remote_port: i32,
|
||||
base_time: impl Into<Option<gst::ClockTime>>,
|
||||
) -> NetClientClock {
|
||||
assert_initialized_main_thread!();
|
||||
unsafe {
|
||||
gst::Clock::from_glib_full(ffi::gst_net_client_clock_new(
|
||||
name.to_glib_none().0,
|
||||
remote_address.to_glib_none().0,
|
||||
remote_port,
|
||||
base_time.into().into_glib(),
|
||||
))
|
||||
.unsafe_cast()
|
||||
}
|
||||
}
|
||||
|
||||
pub fn address(&self) -> Option<glib::GString> {
|
||||
glib::ObjectExt::property(self, "address")
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
|
||||
// DO NOT EDIT
|
||||
|
||||
use glib::object::IsA;
|
||||
use glib::object::ObjectType as ObjectType_;
|
||||
use glib::signal::connect_raw;
|
||||
use glib::signal::SignalHandlerId;
|
||||
|
@ -22,6 +23,18 @@ glib::wrapper! {
|
|||
}
|
||||
|
||||
impl NetTimeProvider {
|
||||
#[doc(alias = "gst_net_time_provider_new")]
|
||||
pub fn new(clock: &impl IsA<gst::Clock>, address: Option<&str>, port: i32) -> NetTimeProvider {
|
||||
assert_initialized_main_thread!();
|
||||
unsafe {
|
||||
from_glib_full(ffi::gst_net_time_provider_new(
|
||||
clock.as_ref().to_glib_none().0,
|
||||
address.to_glib_none().0,
|
||||
port,
|
||||
))
|
||||
}
|
||||
}
|
||||
|
||||
pub fn is_active(&self) -> bool {
|
||||
glib::ObjectExt::property(self, "active")
|
||||
}
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
// DO NOT EDIT
|
||||
|
||||
use crate::NetClientClock;
|
||||
use glib::object::Cast;
|
||||
use glib::translate::*;
|
||||
|
||||
glib::wrapper! {
|
||||
#[doc(alias = "GstNtpClock")]
|
||||
|
@ -14,7 +16,26 @@ glib::wrapper! {
|
|||
}
|
||||
}
|
||||
|
||||
impl NtpClock {}
|
||||
impl NtpClock {
|
||||
#[doc(alias = "gst_ntp_clock_new")]
|
||||
pub fn new(
|
||||
name: &str,
|
||||
remote_address: &str,
|
||||
remote_port: i32,
|
||||
base_time: impl Into<Option<gst::ClockTime>>,
|
||||
) -> NtpClock {
|
||||
assert_initialized_main_thread!();
|
||||
unsafe {
|
||||
gst::Clock::from_glib_full(ffi::gst_ntp_clock_new(
|
||||
name.to_glib_none().0,
|
||||
remote_address.to_glib_none().0,
|
||||
remote_port,
|
||||
base_time.into().into_glib(),
|
||||
))
|
||||
.unsafe_cast()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unsafe impl Send for NtpClock {}
|
||||
unsafe impl Sync for NtpClock {}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
|
||||
// DO NOT EDIT
|
||||
|
||||
use glib::object::Cast;
|
||||
use glib::object::ObjectType as ObjectType_;
|
||||
use glib::signal::connect_raw;
|
||||
use glib::signal::SignalHandlerId;
|
||||
|
@ -21,6 +22,15 @@ glib::wrapper! {
|
|||
}
|
||||
|
||||
impl PtpClock {
|
||||
#[doc(alias = "gst_ptp_clock_new")]
|
||||
pub fn new(name: &str, domain: u32) -> PtpClock {
|
||||
assert_initialized_main_thread!();
|
||||
unsafe {
|
||||
gst::Clock::from_glib_full(ffi::gst_ptp_clock_new(name.to_glib_none().0, domain))
|
||||
.unsafe_cast()
|
||||
}
|
||||
}
|
||||
|
||||
pub fn domain(&self) -> u32 {
|
||||
glib::ObjectExt::property(self, "domain")
|
||||
}
|
||||
|
|
|
@ -28,10 +28,6 @@ macro_rules! skip_assert_initialized {
|
|||
#[allow(unused_imports)]
|
||||
mod auto;
|
||||
pub use crate::auto::*;
|
||||
mod net_client_clock;
|
||||
mod net_time_provider;
|
||||
mod ntp_clock;
|
||||
mod ptp_clock;
|
||||
|
||||
pub use crate::net_address_meta::*;
|
||||
mod net_address_meta;
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
// Take a look at the license at the top of the repository in the LICENSE file.
|
||||
|
||||
use crate::NetClientClock;
|
||||
|
||||
use glib::prelude::*;
|
||||
use glib::translate::*;
|
||||
|
||||
impl NetClientClock {
|
||||
#[doc(alias = "gst_net_client_clock_new")]
|
||||
pub fn new(
|
||||
name: Option<&str>,
|
||||
remote_address: &str,
|
||||
remote_port: i32,
|
||||
base_time: gst::ClockTime,
|
||||
) -> NetClientClock {
|
||||
assert_initialized_main_thread!();
|
||||
let name = name.to_glib_none();
|
||||
let (major, minor, _, _) = gst::version();
|
||||
if (major, minor) > (1, 12) {
|
||||
unsafe {
|
||||
gst::Clock::from_glib_full(ffi::gst_net_client_clock_new(
|
||||
name.0,
|
||||
remote_address.to_glib_none().0,
|
||||
remote_port,
|
||||
base_time.into_glib(),
|
||||
))
|
||||
.unsafe_cast()
|
||||
}
|
||||
} else {
|
||||
// Workaround for bad floating reference handling in 1.12. This issue was fixed for 1.13
|
||||
unsafe {
|
||||
gst::Clock::from_glib_none(ffi::gst_net_client_clock_new(
|
||||
name.0,
|
||||
remote_address.to_glib_none().0,
|
||||
remote_port,
|
||||
base_time.into_glib(),
|
||||
))
|
||||
.unsafe_cast()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
// Take a look at the license at the top of the repository in the LICENSE file.
|
||||
|
||||
use crate::NetTimeProvider;
|
||||
|
||||
use glib::prelude::*;
|
||||
use glib::translate::*;
|
||||
|
||||
impl NetTimeProvider {
|
||||
#[doc(alias = "gst_net_time_provider_new")]
|
||||
pub fn new<P: IsA<gst::Clock>>(clock: &P, address: Option<&str>, port: i32) -> NetTimeProvider {
|
||||
assert_initialized_main_thread!();
|
||||
let address = address.to_glib_none();
|
||||
|
||||
let (major, minor, _, _) = gst::version();
|
||||
if (major, minor) > (1, 12) {
|
||||
unsafe {
|
||||
from_glib_full(ffi::gst_net_time_provider_new(
|
||||
clock.as_ref().to_glib_none().0,
|
||||
address.0,
|
||||
port,
|
||||
))
|
||||
}
|
||||
} else {
|
||||
// Workaround for bad floating reference handling in 1.12. This issue was fixed for 1.13
|
||||
unsafe {
|
||||
from_glib_none(ffi::gst_net_time_provider_new(
|
||||
clock.as_ref().to_glib_none().0,
|
||||
address.0,
|
||||
port,
|
||||
))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,42 +0,0 @@
|
|||
// Take a look at the license at the top of the repository in the LICENSE file.
|
||||
|
||||
use crate::NtpClock;
|
||||
|
||||
use glib::prelude::*;
|
||||
use glib::translate::*;
|
||||
|
||||
impl NtpClock {
|
||||
#[doc(alias = "gst_ntp_clock_new")]
|
||||
pub fn new(
|
||||
name: Option<&str>,
|
||||
remote_address: &str,
|
||||
remote_port: i32,
|
||||
base_time: gst::ClockTime,
|
||||
) -> NtpClock {
|
||||
assert_initialized_main_thread!();
|
||||
let name = name.to_glib_none();
|
||||
let (major, minor, _, _) = gst::version();
|
||||
if (major, minor) > (1, 12) {
|
||||
unsafe {
|
||||
gst::Clock::from_glib_full(ffi::gst_ntp_clock_new(
|
||||
name.0,
|
||||
remote_address.to_glib_none().0,
|
||||
remote_port,
|
||||
base_time.into_glib(),
|
||||
))
|
||||
.unsafe_cast()
|
||||
}
|
||||
} else {
|
||||
// Workaround for bad floating reference handling in 1.12. This issue was fixed for 1.13
|
||||
unsafe {
|
||||
gst::Clock::from_glib_none(ffi::gst_ntp_clock_new(
|
||||
name.0,
|
||||
remote_address.to_glib_none().0,
|
||||
remote_port,
|
||||
base_time.into_glib(),
|
||||
))
|
||||
.unsafe_cast()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
// Take a look at the license at the top of the repository in the LICENSE file.
|
||||
|
||||
use crate::PtpClock;
|
||||
|
||||
use glib::prelude::*;
|
||||
use glib::translate::*;
|
||||
|
||||
impl PtpClock {
|
||||
#[doc(alias = "gst_ptp_clock_new")]
|
||||
pub fn new(name: Option<&str>, domain: u32) -> PtpClock {
|
||||
assert_initialized_main_thread!();
|
||||
let name = name.to_glib_none();
|
||||
let (major, minor, _, _) = gst::version();
|
||||
if (major, minor) > (1, 12) {
|
||||
unsafe {
|
||||
gst::Clock::from_glib_full(ffi::gst_ptp_clock_new(name.0, domain)).unsafe_cast()
|
||||
}
|
||||
} else {
|
||||
// Workaround for bad floating reference handling in 1.12. This issue was fixed for 1.13
|
||||
unsafe {
|
||||
gst::Clock::from_glib_none(ffi::gst_ptp_clock_new(name.0, domain)).unsafe_cast()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -21,10 +21,7 @@ shell-words = "1.0.0"
|
|||
tempfile = "3"
|
||||
|
||||
[features]
|
||||
v1_10 = []
|
||||
v1_12 = ["v1_10"]
|
||||
v1_14 = ["v1_12"]
|
||||
v1_16 = ["v1_14"]
|
||||
v1_16 = []
|
||||
v1_18 = ["v1_16"]
|
||||
v1_20 = ["v1_18"]
|
||||
v1_22 = ["v1_20"]
|
||||
|
@ -51,15 +48,6 @@ rust-version = "1.57"
|
|||
features = ["dox"]
|
||||
[package.metadata.system-deps.gstreamer_net_1_0]
|
||||
name = "gstreamer-net-1.0"
|
||||
version = "1.8"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_net_1_0.v1_10]
|
||||
version = "1.10"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_net_1_0.v1_12]
|
||||
version = "1.12"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_net_1_0.v1_14]
|
||||
version = "1.14"
|
||||
|
||||
[package.metadata.system-deps.gstreamer_net_1_0.v1_16]
|
||||
|
|
|
@ -2,16 +2,13 @@
|
|||
girs_directories = ["../../gir-files", "../../gst-gir-files"]
|
||||
library = "GstNet"
|
||||
version = "1.0"
|
||||
min_cfg_version = "1.8"
|
||||
min_cfg_version = "1.14"
|
||||
work_mode = "sys"
|
||||
|
||||
extra_versions = [
|
||||
"1.20",
|
||||
"1.18",
|
||||
"1.16",
|
||||
"1.14",
|
||||
"1.12",
|
||||
"1.10",
|
||||
]
|
||||
|
||||
external_libraries = [
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue