Update minimum supported version to 1.14

This is the version that is available in Ubuntu 18.04.
This commit is contained in:
Sebastian Dröge 2022-04-07 11:22:39 +03:00
parent 5052a93ee3
commit 4651c9db4d
216 changed files with 604 additions and 3311 deletions

View file

@ -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/))

View file

@ -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"

View file

@ -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!(

View file

@ -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!(

View file

@ -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>()),
); );

View file

@ -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"]

View file

@ -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"

View file

@ -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/))

View file

@ -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 {

View file

@ -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;
} }

View file

@ -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

View file

@ -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]

View file

@ -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 = [

View file

@ -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;
} }

View file

@ -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"]

View file

@ -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

View file

@ -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/))

View file

@ -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::*;

View file

@ -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,

View file

@ -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,

View file

@ -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,

View file

@ -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]

View file

@ -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]

View file

@ -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);

View file

@ -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"]

View file

@ -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"

View file

@ -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/))

View file

@ -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 {

View file

@ -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

View file

@ -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,

View file

@ -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(

View file

@ -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(

View file

@ -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),
} }

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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]

View file

@ -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"

View file

@ -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,

View file

@ -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"]

View file

@ -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"

View file

@ -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/))

View file

@ -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()
} }

View file

@ -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)) }

View file

@ -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,

View file

@ -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);

View file

@ -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(

View file

@ -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;

View file

@ -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;

View file

@ -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};

View file

@ -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]

View file

@ -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 = [

View file

@ -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,

View file

@ -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"]

View file

@ -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

View file

@ -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/))

View file

@ -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 {

View file

@ -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]

View file

@ -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 = [

View file

@ -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;

View file

@ -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"]

View file

@ -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"

View file

@ -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/))

View file

@ -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;

View file

@ -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]

View file

@ -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]

View file

@ -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,

View file

@ -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"]

View file

@ -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

View file

@ -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/))

View file

@ -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 {

View file

@ -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;

View file

@ -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]

View file

@ -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 = [

View file

@ -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;
//========================================================================= //=========================================================================

View file

@ -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"

View file

@ -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/))

View file

@ -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]

View file

@ -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/))

View file

@ -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"

View file

@ -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]

View file

@ -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/))

View file

@ -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]

View file

@ -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/))

View file

@ -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]

View file

@ -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 = [

View file

@ -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"]

View file

@ -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

View file

@ -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/))

View file

@ -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")
} }

View file

@ -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")
} }

View file

@ -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 {}

View file

@ -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")
} }

View file

@ -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;

View file

@ -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()
}
}
}
}

View file

@ -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,
))
}
}
}
}

View file

@ -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()
}
}
}
}

View file

@ -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()
}
}
}
}

View file

@ -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]

View file

@ -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