[gst-devel] A big problem !! HELP !!!!!
Rémi BUISSON
remi.buisson at viotech.net
Wed Sep 17 13:45:33 CEST 2008
Tim-Philipp Müller wrote:
> On Wed, 2008-09-17 at 08:54 +0200, Rémi BUISSON wrote:
>
>
>> up !
>>
>
> You may find http://www.catb.org/~esr/faqs/smart-questions.html a useful read.
>
Indeed : stupid subject ;-)
Sorry I'm not a very regular customer of mailing lists ...
>
>
>> Rémi BUISSON wrote:
>>
>>> I have to generate an XML code containing available plugins of
>>> gstreamer
>>>
>
> You mean something like gst-xmlinspect-0.10 ?
>
Not so complete. I would like something like that :
<modulesList>
<module>metadatademux</module>
<module>multipartdemux</module>
<module>mpegtsparse</module>
<module>vorbisparse</module>
...
</modulesList>
>
>>> (...) but I have a problem in listing gstreamer modules.
>>>
>>> I attach an archive with a bug and I don't know how to fix it ...
>>> maybe a gstreamer bug ?
>>> It looks like a pointer kind bug.
>>>
>>> With valgrind there is a lot of errors.
>>>
>>> Please compile it with: make depends && make
>>>
>>> execute : build/client
>>>
>>> Try to comment "xmlDocPtr doc;" in xml_parser.c" and re-test ...
>>>
>>> On my side I get 265 modules with the first step and 9 in the second ...
>>>
>>> Any idea ?
>>>
>
> Chances that anyone will actually look at your code or even try it are
> much much higher if your code is one single uncompressed self-contained
> source file that doesn't need modifying before being run.
>
More practical for you indeed ... :-S
Actually I didn't want to modify the code I extracted from playbin
source but I finally found a more convenient filter for my purpose :
gboolean element_filter(GstPluginFeature *feature,
FilterData *data)
{
const gchar *klass = NULL;
/* we only care about element factories */
if(!GST_IS_ELEMENT_FACTORY(feature))
return FALSE;
klass = gst_element_factory_get_klass(GST_ELEMENT_FACTORY(feature));
if(g_strrstr(klass, "Demux") == NULL &&
g_strrstr(klass, "Decoder") == NULL &&
g_strrstr(klass, "Depayloader") == NULL &&
g_strrstr(klass, "Parse") == NULL)
return FALSE;
return TRUE;
}
...
/* get the list of the modules */
modulesList = gst_default_registry_feature_filter((GstPluginFeatureFilter)
element_filter,
FALSE, &data);
printDebug("%d modules available\n", (int) g_list_length(modulesList));
for(walk = modulesList; walk != NULL; walk = g_list_next(walk))
{
mod = xmlNewNode(NULL, BAD_CAST NODE_MODULE);
text = xmlNewDocText(doc, BAD_CAST (char
*)gst_plugin_feature_get_name(walk->data));
tmp = xmlAddChildList(mod, text);
tmp = xmlAddChildList(modLst, mod);
}
gst_plugin_feature_list_free(modulesList);
...
So, problem resolved.
Thanks for your reply and your precious link :-)
> Cheers
> -Tim
>
>
Cheers,
Rémi
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>
More information about the gstreamer-devel
mailing list