in reply to More Effecient Method Chaining

This specific example deals with the command gst-inspect-1.0. You don't need to know what it does, just this. Calling gst-inspect-1.0 without arguments returns a list of plugins. Calling gst-inspect-1.0 with a plugin name returns information about that specific plugin. Each call to gst-inspect-1.0 takes about half a second, give or take (so surprisingly long).
Please don't assume we don't need to know. Given that running this command takes "surprisingly long", we might be able to offer tips on how to speed it up, for example by avoiding the system shell, or by "batching" the command somehow.

I further noticed that you are not checking errors when running this external command. A well-behaved command should exit code zero on success, 1-255 for failure, further writing a clear error message to stderr (but you are not checking for any of this).

Googling found this gst-inspect-1.0 command. Is that the one you are using? From its description:

gst-inspect-1.0 is a tool that prints out information on available GStreamer plugins, information about a particular plugin, or information about a particular element. When executed with no PLUGIN or ELEMENT argument, gst-inspect-1.0 will print a list of all plugins and elements together with a summary. When executed with a PLUGIN or ELEMENT argument, gst-inspect-1.0 will print information about that plug-in or element.
I also see it may run on multiple operating systems (Linux, Windows, ...). Do you need it to run on Linux and Windows? Or just a single platform? Is performance of running this command important to you? What about security?

To give you a feel for where I'm coming from, have a look at these old nodes:

As you can see, running external commands safely, robustly, portably and efficiently is surprisingly tricky.