Thank you for the answer, it really helped. I did set the GST_DEBUG=6
and checking out the GStreamer source code in the version I’m running, so I could track the execution and figure out what I did wrong!
The problem was that I didn’t use the template name for the pad to compare on request, but the name.
fn request_new_pad(
&self,
element: &Self::Type,
templ: &gst::PadTemplate,
- name: Option<String>,
+ _name: Option<String>,
caps: Option<&gst::Caps>,
) -> Option<gst::Pad> {
let mut settings = self.settings.lock().unwrap();
- match name.as_ref().map(|val| val.as_str()) {
+ match templ.name_template().as_ref().map(|val| val.as_str()) {
Also I could see the specific pad negotiation execution and understand what you mentioned in the caps not being compatible.
Now I can successfully link pads!!1
Thank you! When I get this plugin working I will be glad to contribute it back to gst-plugins-rs
project!