<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; "><DIV><DIV><DIV>Le 8 août 06 à 14:53, Jan Schmidt a écrit :</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">On Tue, 2006-08-08 at 14:41 +0200, Corentin BARON wrote:</DIV> <BLOCKQUOTE type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Hello list,</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I've got a problem porting my plugin to 0.10. It seems that as soon <SPAN class="Apple-converted-space"> </SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">as I try to compile it as a PushSrc subclass GStreamer is unable to <SPAN class="Apple-converted-space"> </SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">load it. If I try to make it a GstElement subclass (tried it with the <SPAN class="Apple-converted-space"> </SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">plugin template) it's recognized without any problem (but where do I <SPAN class="Apple-converted-space"> </SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">give it my 'create' function since I'm working on a live source <SPAN class="Apple-converted-space"> </SPAN></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">plugin?).</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">I'm working on GStreamer 0.10.9 on a Fedora Core 4.</DIV> </BLOCKQUOTE><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">You've probably forgotten to link against libgstbase. GstPushSrc lives</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">in there, while GstElement is in the core library.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">ldd -r yourelememt.so should show unresolved symbols.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Regards,</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Jan.</DIV> </BLOCKQUOTE><BR></DIV><DIV>The problem was of this kind, thanks.<DIV><BR class="khtml-block-placeholder"></DIV><DIV>Now my problem is with pad creation in PushSrc. I added the pad template as I did in 0.8 (and as mentioned in the BaseSrc documentation) but it seems GStreamer don't instanciate any pad at the BaseSrc level.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BLOCKQUOTE type="cite"><DIV style="">static GstStaticPadTemplate src_factory =</DIV><DIV style="">GST_STATIC_PAD_TEMPLATE(</DIV><DIV style=""><SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 0, 221); ">        </SPAN>"src",</DIV><DIV style=""><SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 0, 221); ">        </SPAN>GST_PAD_SRC,</DIV><DIV style=""><SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 0, 221); ">        </SPAN>GST_PAD_ALWAYS,</DIV><DIV style=""><SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 0, 221); ">        </SPAN>GST_STATIC_CAPS("ANY")</DIV><DIV style="">);</DIV><DIV style=""><BR class="khtml-block-placeholder"></DIV><DIV style="">static void gst_blinkysrc_base_init(gpointer klass) {</DIV><DIV style=""><SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 0, 221); ">        </SPAN>GstElementClass *element_class = GST_ELEMENT_CLASS(klass);</DIV><DIV style=""><SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 0, 221); ">        </SPAN></DIV><DIV style=""><SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 0, 221); ">        </SPAN>static GstElementDetails plugin_details = {...};</DIV><DIV style=""><BR class="khtml-block-placeholder"></DIV><DIV style=""><SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 0, 221); ">        </SPAN>gst_element_class_add_pad_template(element_class,</DIV><DIV style=""><SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 0, 221); ">                </SPAN>gst_static_pad_template_get(&amp;src_factory));</DIV><DIV style=""><SPAN class="Apple-tab-span" style="white-space:pre; color: rgb(0, 0, 221); ">        </SPAN>gst_element_class_set_details(element_class, &amp;plugin_details);</DIV><DIV style="">}</DIV></BLOCKQUOTE><BR></DIV><DIV>but whenever I try to launch a pipeline with my source I get this error:</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BLOCKQUOTE type="cite">GStreamer-WARNING **: Element blinkysrc0 has an ALWAYS template src, but no pad of the same name</BLOCKQUOTE><BR></DIV><DIV>I digged a little into the source code of videotestsrc to see how it handles things, but couldn't figure what's wrong.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Can anyone help?</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>thx,</DIV><DIV>Corentin.</DIV></DIV><BR><DIV> <SPAN></SPAN></DIV></DIV></BODY></HTML>