Using pull mode

Sirius Wu ccwu660601 at gmail.com
Wed May 27 03:36:08 UTC 2020


Hi all,

I've a following pipeline:

openslessrc --> volume --> openslessink

The pipeline is running in push mode. But I'd like to drive the pipeline
directly from the real-time audio thread. I am trying to launch the
pipeline with

pipeline = gst_parse_launch(
"openslessrc ! audioconvert ! volume volume=1.50 ! audioconvert !
audio/x-raw,rate=44100 ! openslessink can-activate-pull=true", &error)
gst_element_set_state (pipeline, GST_STATE_PLAYING);

But gst_base_sink_negotiate_pull() failed and I got a log message of
"Received event on flushing pad. Discarding".

I cannot find much information about using pull mode in application. How
can I fix this problem?
By the way, gstvolume provides get_range function, so I think it can work
in pull mode. But there is a comment in its parent gstbasetransform says:

* FIXME, getrange is broken, need to pull range from the other
 * end based on the transform_size result.
 */

Does that mean I can not use gstvolume directly in pull mode, but need to
inherit it and fix get_range?

-- 
Sirius Wu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20200527/664aa6fd/attachment.htm>


More information about the gstreamer-devel mailing list