mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2025-01-31 21:22:22 +00:00
Update to gstreamer-rs 0.16
This commit is contained in:
parent
9d4e427e14
commit
5fa3b689f0
5 changed files with 32 additions and 30 deletions
14
Cargo.toml
14
Cargo.toml
|
@ -8,18 +8,18 @@ description = "NewTek NDI Plugin"
|
|||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
glib = "0.9"
|
||||
gobject-sys = "0.9"
|
||||
gstreamer = { version = "0.15", features = ["v1_12"] }
|
||||
gstreamer-base = "0.15"
|
||||
gstreamer-audio = "0.15"
|
||||
gstreamer-video = { version = "0.15", features = ["v1_12"] }
|
||||
glib = "0.10"
|
||||
gobject-sys = "0.10"
|
||||
gstreamer = { version = "0.16", features = ["v1_12"] }
|
||||
gstreamer-base = "0.16"
|
||||
gstreamer-audio = "0.16"
|
||||
gstreamer-video = { version = "0.16", features = ["v1_12"] }
|
||||
lazy_static = "1.1.0"
|
||||
byte-slice-cast = "0.3.0"
|
||||
once_cell = "1.0"
|
||||
|
||||
[build-dependencies]
|
||||
gst-plugin-version-helper = "0.1"
|
||||
gst-plugin-version-helper = "0.2"
|
||||
|
||||
[features]
|
||||
default = ["interlaced-fields", "reference-timestamps"]
|
||||
|
|
|
@ -56,10 +56,8 @@ lazy_static! {
|
|||
|
||||
#[cfg(feature = "reference-timestamps")]
|
||||
lazy_static! {
|
||||
static ref TIMECODE_CAPS: gst::Caps =
|
||||
{ gst::Caps::new_simple("timestamp/x-ndi-timecode", &[]) };
|
||||
static ref TIMESTAMP_CAPS: gst::Caps =
|
||||
{ gst::Caps::new_simple("timestamp/x-ndi-timestamp", &[]) };
|
||||
static ref TIMECODE_CAPS: gst::Caps = gst::Caps::new_simple("timestamp/x-ndi-timecode", &[]);
|
||||
static ref TIMESTAMP_CAPS: gst::Caps = gst::Caps::new_simple("timestamp/x-ndi-timestamp", &[]);
|
||||
}
|
||||
|
||||
impl glib::translate::ToGlib for TimestampMode {
|
||||
|
|
|
@ -6,6 +6,7 @@ use gst::subclass::prelude::*;
|
|||
use gst_audio;
|
||||
use gst_base;
|
||||
use gst_base::prelude::*;
|
||||
use gst_base::subclass::base_src::CreateSuccess;
|
||||
use gst_base::subclass::prelude::*;
|
||||
|
||||
use std::sync::Mutex;
|
||||
|
@ -299,8 +300,8 @@ impl ObjectImpl for NdiAudioSrc {
|
|||
timestamp_mode
|
||||
);
|
||||
if settings.timestamp_mode != timestamp_mode {
|
||||
let _ = basesrc
|
||||
.post_message(&gst::Message::new_latency().src(Some(basesrc)).build());
|
||||
let _ =
|
||||
basesrc.post_message(gst::message::Latency::builder().src(basesrc).build());
|
||||
}
|
||||
settings.timestamp_mode = timestamp_mode;
|
||||
}
|
||||
|
@ -484,8 +485,8 @@ impl BaseSrcImpl for NdiAudioSrc {
|
|||
}
|
||||
}
|
||||
|
||||
fn fixate(&self, element: &gst_base::BaseSrc, caps: gst::Caps) -> gst::Caps {
|
||||
let mut caps = gst::Caps::truncate(caps);
|
||||
fn fixate(&self, element: &gst_base::BaseSrc, mut caps: gst::Caps) -> gst::Caps {
|
||||
caps.truncate();
|
||||
{
|
||||
let caps = caps.make_mut();
|
||||
let s = caps.get_mut_structure(0).unwrap();
|
||||
|
@ -500,8 +501,9 @@ impl BaseSrcImpl for NdiAudioSrc {
|
|||
&self,
|
||||
element: &gst_base::BaseSrc,
|
||||
_offset: u64,
|
||||
_buffer: Option<&mut gst::BufferRef>,
|
||||
_length: u32,
|
||||
) -> Result<gst::Buffer, gst::FlowError> {
|
||||
) -> Result<CreateSuccess, gst::FlowError> {
|
||||
let recv = {
|
||||
let mut state = self.state.lock().unwrap();
|
||||
match state.receiver.take() {
|
||||
|
@ -539,11 +541,11 @@ impl BaseSrcImpl for NdiAudioSrc {
|
|||
gst::FlowError::NotNegotiated
|
||||
})?;
|
||||
|
||||
let _ = element
|
||||
.post_message(&gst::Message::new_latency().src(Some(element)).build());
|
||||
let _ =
|
||||
element.post_message(gst::message::Latency::builder().src(element).build());
|
||||
}
|
||||
|
||||
Ok(buffer)
|
||||
Ok(CreateSuccess::NewBuffer(buffer))
|
||||
}
|
||||
ReceiverItem::Flushing => Err(gst::FlowError::Flushing),
|
||||
ReceiverItem::Timeout => Err(gst::FlowError::Eos),
|
||||
|
|
|
@ -5,6 +5,7 @@ use gst::prelude::*;
|
|||
use gst::subclass::prelude::*;
|
||||
use gst_base;
|
||||
use gst_base::prelude::*;
|
||||
use gst_base::subclass::base_src::CreateSuccess;
|
||||
use gst_base::subclass::prelude::*;
|
||||
use gst_video;
|
||||
|
||||
|
@ -334,8 +335,8 @@ impl ObjectImpl for NdiVideoSrc {
|
|||
timestamp_mode
|
||||
);
|
||||
if settings.timestamp_mode != timestamp_mode {
|
||||
let _ = basesrc
|
||||
.post_message(&gst::Message::new_latency().src(Some(basesrc)).build());
|
||||
let _ =
|
||||
basesrc.post_message(gst::message::Latency::builder().src(basesrc).build());
|
||||
}
|
||||
settings.timestamp_mode = timestamp_mode;
|
||||
}
|
||||
|
@ -521,8 +522,8 @@ impl BaseSrcImpl for NdiVideoSrc {
|
|||
}
|
||||
}
|
||||
|
||||
fn fixate(&self, element: &gst_base::BaseSrc, caps: gst::Caps) -> gst::Caps {
|
||||
let mut caps = gst::Caps::truncate(caps);
|
||||
fn fixate(&self, element: &gst_base::BaseSrc, mut caps: gst::Caps) -> gst::Caps {
|
||||
caps.truncate();
|
||||
{
|
||||
let caps = caps.make_mut();
|
||||
let s = caps.get_mut_structure(0).unwrap();
|
||||
|
@ -541,8 +542,9 @@ impl BaseSrcImpl for NdiVideoSrc {
|
|||
&self,
|
||||
element: &gst_base::BaseSrc,
|
||||
_offset: u64,
|
||||
_buffer: Option<&mut gst::BufferRef>,
|
||||
_length: u32,
|
||||
) -> Result<gst::Buffer, gst::FlowError> {
|
||||
) -> Result<CreateSuccess, gst::FlowError> {
|
||||
let recv = {
|
||||
let mut state = self.state.lock().unwrap();
|
||||
match state.receiver.take() {
|
||||
|
@ -580,11 +582,11 @@ impl BaseSrcImpl for NdiVideoSrc {
|
|||
gst::FlowError::NotNegotiated
|
||||
})?;
|
||||
|
||||
let _ = element
|
||||
.post_message(&gst::Message::new_latency().src(Some(element)).build());
|
||||
let _ =
|
||||
element.post_message(gst::message::Latency::builder().src(element).build());
|
||||
}
|
||||
|
||||
Ok(buffer)
|
||||
Ok(CreateSuccess::NewBuffer(buffer))
|
||||
}
|
||||
ReceiverItem::Timeout => Err(gst::FlowError::Eos),
|
||||
ReceiverItem::Flushing => Err(gst::FlowError::Flushing),
|
||||
|
|
|
@ -1012,7 +1012,7 @@ impl Receiver<VideoReceiver> {
|
|||
|
||||
#[cfg(feature = "interlaced-fields")]
|
||||
{
|
||||
let mut builder = gst_video::VideoInfo::new(
|
||||
let mut builder = gst_video::VideoInfo::builder(
|
||||
format,
|
||||
video_frame.xres() as u32,
|
||||
video_frame.yres() as u32,
|
||||
|
@ -1061,7 +1061,7 @@ impl Receiver<VideoReceiver> {
|
|||
return Err(gst::FlowError::NotNegotiated);
|
||||
}
|
||||
|
||||
let mut builder = gst_video::VideoInfo::new(
|
||||
let mut builder = gst_video::VideoInfo::builder(
|
||||
format,
|
||||
video_frame.xres() as u32,
|
||||
video_frame.yres() as u32,
|
||||
|
@ -1410,7 +1410,7 @@ impl Receiver<AudioReceiver> {
|
|||
element: &gst_base::BaseSrc,
|
||||
audio_frame: &AudioFrame,
|
||||
) -> Result<gst_audio::AudioInfo, gst::FlowError> {
|
||||
let builder = gst_audio::AudioInfo::new(
|
||||
let builder = gst_audio::AudioInfo::builder(
|
||||
gst_audio::AUDIO_FORMAT_S16,
|
||||
audio_frame.sample_rate() as u32,
|
||||
audio_frame.no_channels() as u32,
|
||||
|
|
Loading…
Reference in a new issue