A gstreamermm Gst::ElementFactory example.
#include <gstreamermm.h>
int main(int argc, char *argv[])
{
std::cout <<
"List of primary demuxers: " <<
std::endl;
for (Glib::RefPtr<Gst::ElementFactory> factory
{
std::cout <<
" * " << factory->get_name() <<
std::endl;
}
if (!fakesrc_factory)
{
std::cerr <<
"Failed to find factory of type 'fakesrc'" <<
std::endl;
return -1;
}
std::cout << "Author of the element '" << fakesrc_factory->get_name() << "' is "
<< fakesrc_factory->get_metadata(GST_ELEMENT_METADATA_AUTHOR) << std::endl <<
std::endl;
std::cout <<
"All information about element '" << fakesrc_factory->get_name() <<
"':" <<
std::endl;
for (auto metadata_key : fakesrc_factory->get_metadata_keys())
{
std::cout <<
" * " << metadata_key <<
": " << fakesrc_factory->get_metadata(metadata_key) <<
std::endl;
}
{
Glib::RefPtr<Gst::Element> fakesrc = fakesrc_factory->create("source");
if (!fakesrc)
{
std::cerr <<
"Failed to create element of type 'fakesrc'" <<
std::endl;
return -1;
}
}
{
if (!fakesrc)
{
std::cerr <<
"Failed to create element of type 'fakesrc'" <<
std::endl;
return -1;
}
}
return 0;
}