Plugin development, my new plugin cannot link

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! :smiley:

The problem was that I didn’t use the template name for the pad to compare on request, but the name. :sweat_smile:

    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 :rocket:
Thank you! When I get this plugin working I will be glad to contribute it back to gst-plugins-rs project! :slight_smile:

1 Like