Running time problem with fast element

Gabor Karsay gabor.karsay at gmx.at
Sun Jun 13 16:30:23 UTC 2021


Hi,

I have a problem adjusting the running time I guess.
I have a custom bin with a custom element that is processing audio 
(speech recognition) faster than real-time and pushing the buffers to a 
fakesink. (Results are on the message bus.) The processing speed is not 
constant. The pipeline is driven by a playbin element, the source is 
non-live.

My problem are position queries to the pipeline. If in playing state, 
everything is fine, however in paused state the query returns the 
running-time (time needed to process the audio) and this results in 
strange jumps of the reported position when changing from paused to 
playing or from playing to paused.

I guess I have to correct the running time. I thought of using 
gst_element_set_start_time(). Setting the current position as start_time 
in the _change_state function of the processing element didn't work, nor 
setting it in the same element for the parent bin.

I have no clue what to do, sending an event or a query? Which one? 
Downstream or upstream? Is it possible to handle this in the element so 
that I can reuse the element in other pipelines?

Could anyone please shed some light on this or give me a clue in which 
direction I should go?

Thanks,
Gabor


More information about the gstreamer-devel mailing list