Update for new PushSrc::create() signature

This commit is contained in:
Sebastian Dröge 2021-09-19 22:27:20 +03:00
parent a03b52a975
commit afd736dfec
2 changed files with 16 additions and 6 deletions

View file

@ -22,6 +22,7 @@ use gst::prelude::*;
use gst::subclass::prelude::*;
use gst::{gst_debug, gst_error, gst_trace, gst_warning};
use gst_base::prelude::*;
use gst_base::subclass::base_src::CreateSuccess;
use gst_base::subclass::prelude::*;
const DEFAULT_LOCATION: Option<Url> = None;
@ -1139,7 +1140,11 @@ impl BaseSrcImpl for ReqwestHttpSrc {
}
impl PushSrcImpl for ReqwestHttpSrc {
fn create(&self, src: &Self::Type) -> Result<gst::Buffer, gst::FlowError> {
fn create(
&self,
src: &Self::Type,
_buffer: Option<&mut gst::BufferRef>,
) -> Result<CreateSuccess, gst::FlowError> {
let mut state = self.state.lock().unwrap();
let (response, position, caps, tags) = match *state {
@ -1248,7 +1253,7 @@ impl PushSrcImpl for ReqwestHttpSrc {
buffer.set_offset_end(offset + size as u64);
}
Ok(buffer)
Ok(CreateSuccess::NewBuffer(buffer))
}
None => {
/* No further data, end of stream */

View file

@ -11,6 +11,7 @@ use gst::prelude::*;
use gst::subclass::prelude::*;
use gst::{gst_debug, gst_error, gst_info, gst_log};
use gst_base::prelude::*;
use gst_base::subclass::base_src::CreateSuccess;
use gst_base::subclass::prelude::*;
use byte_slice_cast::*;
@ -669,7 +670,11 @@ impl BaseSrcImpl for SineSrc {
impl PushSrcImpl for SineSrc {
// Creates the audio buffers
fn create(&self, element: &Self::Type) -> Result<gst::Buffer, gst::FlowError> {
fn create(
&self,
element: &Self::Type,
_buffer: Option<&mut gst::BufferRef>,
) -> Result<CreateSuccess, gst::FlowError> {
// Keep a local copy of the values of all our properties at this very moment. This
// ensures that the mutex is never locked for long and the application wouldn't
// have to block until this function returns when getting/setting property values
@ -759,7 +764,7 @@ impl PushSrcImpl for SineSrc {
// This is out of scope for the tutorial though.
if element.is_live() {
let clock = match element.clock() {
None => return Ok(buffer),
None => return Ok(CreateSuccess::NewBuffer(buffer)),
Some(clock) => clock,
};
@ -779,7 +784,7 @@ impl PushSrcImpl for SineSrc {
.map(|(running_time, base_time)| running_time + base_time)
{
Some(wait_until) => wait_until,
None => return Ok(buffer),
None => return Ok(CreateSuccess::NewBuffer(buffer)),
};
// Store the clock ID in our struct unless we're flushing anyway.
@ -816,6 +821,6 @@ impl PushSrcImpl for SineSrc {
gst_debug!(CAT, obj: element, "Produced buffer {:?}", buffer);
Ok(buffer)
Ok(CreateSuccess::NewBuffer(buffer))
}
}