Finding out all the necessary plugins to decode a media (m4a)

Hello forum. It’s my first post here. It can be a newbie question, but well… I’m a newbie! :slight_smile:

I’m developing a simple python audio player with speed/pitch change capabilities. I’m using gstreamer python bindings and soundtouch plugins to do the trick, and everything works like a charm when I locally exectute my code. For the deployment I freeze my app with Pyinstaller to make a release package. Since frozen applications tend to be big, I’ve followed the approach suggested on the Pyinstaller documentation of keeping the list of gst plugins bundled as short as possible.

Now the problem. My app pipeline is built around “playbin3”. With my list I can load all the audio format my app handles except for m4a! I really can’t figure what’s needed to decode this format. So far I’ve tried “qtdemux”, “aacparse”, “multiqueue”, “avdec_aac”, “mfaacdec”, “fdkaacdec” but I always get a missing plugin error.

If I use run gst-launch-1.0 playbin3 uri="file:///<filename.m4a>" . Is there a way to find out what the pipeline created by gst-launch looks like and have a list of the used plugins?

Thank you in advance.

GST_DEBUG=GST_TRACER:9 GST_TRACERS=factories gst-launch-1.0 ... should log the element factories (elements) used.

Hey, thank you so much. That worked and I could see al the elements used by gst-launch. They’re all present in the plugins list included in my frozen app, nonetheless I had the same result.

I’m pretty sure it’s a matter of missing something, because if I don’t pass a list of specific plugins which results in building a frozen app with all the available elements in my system, the file is regularly played… The problem is that the applìication dist folder is more than 350MB (!!!) which is ridiculous for a simple player like mine….

Can anybody help me with this?