Push source scheduling and the create function
martin at surround.io
Fri Apr 29 15:53:38 UTC 2016
I apologize in advance if some documentation makes this question clear;
I searched but have not found an answer. I have an issue with a
Gstreamer application that I cannot figure out. Specifically, I'm trying
two different pipeline configurations that I would expect to yield
identical results, but they are not. One of these cases is breaking
while the other appears to be working. Below I describe the setup:
- create one pipeline
- use gst_bin_add_many to add many bins to it
- the first bin is of the form "some-video-element ! [encode and many
other elements] udpsink"
- all other bins are in the form "my-push-src ! fakesink"
- set the pipeline to playing
- create one pipeline per bin via gst_pipeline_new + gst_bin_add
- the first pipeline is of the form "some-video-element ! [encode and
many other elements] udpsink"
- set each pipeline to playing
In both cases, I see the video element playing correctly. In case 1, I'm
seeing that the create function in "my-push-src" is being called once
for each push source and never being called again. In case 2, create
continually gets called, and everything seems OK. It seems that somehow
the scheduling is different between cases 1 and 2, and I'm guessing the
video element's scheduling is somehow changing that of the push source
I don't understand the interplay between push sources and other sources,
so I'm not sure how to debug this. I'm wondering if someone could give
me a pointer as to what may be wrong or where I should look.
In case it matters, I'm using gstreamer 1.6.3 on Android, and
"my-push-src" is my own custom element, so it's entirely possible it has
some bug that I haven't caught.
Thanks in advance,
More information about the gstreamer-devel