[gst-devel] dynamic pipeline

Hayden Andrews hayden at heydan.co.uk
Wed Nov 26 04:11:01 CET 2008


 Hi ya :)

Sorry, probably a very 'beginner' question ...

I have a filesrc and a decodebin, and am using a callback on the 
new-decoded-pad signal to create elements for the audio or/and video 
streams, should either appear.

 From the video pad, I want to setup different filters depending on the 
actual caps of the data. I can get the ?template? caps of the pad, but 
when I guessed that I need to get the negotiated caps (am I correct?) it 
returns NULL as there is not yet any data.

What is the best/standard way of finding the caps of the actual data 
that flows through that pad so as to add in the correct filters asap?

I just tried: when the pad is created, I simply placed a callback on it 
for when data flows. And then in the callback create the required 
elements, but, the callback is never called, although the stream plays. 
I guess that the 'have-data' signal only fires if the pad is linked? 
Would I temporarily link it to a fakesink, wait for data to see what the 
actual caps are, and then rewrite the pipeline? I'm guessing wildly :) 
Any pointers would be much appreciated! I'm sure that this scenario is 
quite normal.

Many thanks,


Hayden




More information about the gstreamer-devel mailing list