Re: Gstreamermm Spectrum Plugin

So if I have the bus receiving messages from spectrum, would i get the "magnitude" of the FFT with message->get_structure()->get_field("magnitude", mags_by_ref)?


On Wed, Apr 13, 2016 at 7:30 PM, Marcin Kolny <marcin kolny gmail com> wrote:

2016-04-14 1:09 GMT+02:00 Cole Bush <bush c husky neu edu>:

I am creating a gstreamermm pipeline that uses the "good" spectrum 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:
and the data (magnitude in dB)?
You'd have to use Gst::Structure::get_field() method.

Thanks for any insight!

gtkmm-list mailing list
gtkmm-list gnome org

Best regards,
Marcin Kolny

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]