2016-04-14 1:09 GMT+02:00 Cole Bush <[email protected]>:

> Hello,
>
> I am creating a gstreamermm pipeline that uses the "good" spectrum
> <https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-spectrum.html>
>  plugin
> to perform a fft on the audio. I think I have the pipeline working
> correctly (it plays the file) and I am recieving messages on the bus, but I
> don't know how to get the information from it. Firstly, is this the correct
> way to initialize it?
>
>      Glib::RefPtr<Element> spectrum;
>      spectrum = ElementFactory::create_element("spectrum");
>      spectrum->property("post-messages", true);
>      spectrum->property("bands", 20);
>      spectrum->property("threshold", -80);
>
> Should it be a RefPtr to an Element or AudioFilter?
>
It can be either Element or AudioFilter. As long as you don't need any
AudioFilter-specific feature, you can use Element class.


>
> Second, in my bus message listener I have a case for a message type of
> Gst::MESSAGE_ELEMENT which then calls a function to get the info:
> "decode_spectrum(const RefPtr<Message> &message);" How do I get info like
> the name (should be "spectrum")
>
Since you didn't specify element name in your code, it'll be autogenerated
and you can get the name by calling:
  spectrum->get_name();
If you want to explicitly specify the name, you should use method:
https://developer.gnome.org/gstreamermm/stable/classGst_1_1ElementFactory.html#a6a85a2a3c4f69383cad2686d381e10e9


> and the data (magnitude in dB)?
>
You'd have to use Gst::Structure::get_field() method.

>
>
> Thanks for any insight!
>
> _______________________________________________
> gtkmm-list mailing list
> [email protected]
> https://mail.gnome.org/mailman/listinfo/gtkmm-list
>
>


-- 
Best regards,
Marcin Kolny
_______________________________________________
gtkmm-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to