Using pull mode

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Using pull mode

Sirius Wu
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

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel