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

View file

@ -11,6 +11,7 @@ use gst::prelude::*;
use gst::subclass::prelude::*; use gst::subclass::prelude::*;
use gst::{gst_debug, gst_error, gst_info, gst_log}; use gst::{gst_debug, gst_error, gst_info, gst_log};
use gst_base::prelude::*; use gst_base::prelude::*;
use gst_base::subclass::base_src::CreateSuccess;
use gst_base::subclass::prelude::*; use gst_base::subclass::prelude::*;
use byte_slice_cast::*; use byte_slice_cast::*;
@ -669,7 +670,11 @@ impl BaseSrcImpl for SineSrc {
impl PushSrcImpl for SineSrc { impl PushSrcImpl for SineSrc {
// Creates the audio buffers // 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 // 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 // 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 // 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. // This is out of scope for the tutorial though.
if element.is_live() { if element.is_live() {
let clock = match element.clock() { let clock = match element.clock() {
None => return Ok(buffer), None => return Ok(CreateSuccess::NewBuffer(buffer)),
Some(clock) => clock, Some(clock) => clock,
}; };
@ -779,7 +784,7 @@ impl PushSrcImpl for SineSrc {
.map(|(running_time, base_time)| running_time + base_time) .map(|(running_time, base_time)| running_time + base_time)
{ {
Some(wait_until) => wait_until, 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. // 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); gst_debug!(CAT, obj: element, "Produced buffer {:?}", buffer);
Ok(buffer) Ok(CreateSuccess::NewBuffer(buffer))
} }
} }