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