Search code examples
python-2.7gstreamerpython-gstreamer

How do you access Gstreamer Registry to get a list of what plugins are available programatically


I want to build a list of the audiovisualiser elements to be able to offer them in a dropdown list within a python program and same for audio effects but how do you access the gstreamer-1.0 registry.


Solution

  • The solution was simple and yet it took an age to find it.
    Here is some sample code to illustrate the method.
    Updated to python3

    #!/usr/bin/env python3
    #Access the registry to find out what plugins are available
    #list elements within a plugin
    #list all elements within a Klass
    import gi
    gi.require_version('Gst', '1.0')
    from gi.repository import Gst
    Gst.init(None)
    reg = Gst.Registry.get()
    
    print ("List Available Plugins\n")
    for x in reg.get_plugin_list():
        print (x.get_name())
    print ("End Available Plugins\n")
    
    print ("List Plugins in AudioVisual\n")
    for x in reg.get_feature_list_by_plugin("audiovisualizers"):
        print(x.get_name(), "\t", x.get_longname())
    print ("END\n")
    
    print ("All Available visualisations\n")
    vis_list = [filt for filt in reg.get_feature_list(Gst.ElementFactory) \
            if (filt.get_klass().find("Visualization") >= 0)]
    for x in vis_list:
        short = x.get_name()
        name = x.get_longname()
        print (short + "\t\t" + name)
    print ("END\n")
    
    print ("All Available Audio filters\n")
    audio_filter_list = [filt for filt in reg.get_feature_list(Gst.ElementFactory) \
            if (filt.get_klass().find("Filter/Effect/Audio") >= 0)]
    for x in audio_filter_list:
        short = x.get_name()
        name = x.get_longname()
        print (short + "\t\t" + name)
    print ("END\n")
    

    Results on my machine (with ladspa audio plugins loaded) your results may differ:

    List Available Plugins
    
    vaapi
    libav
    ladspa
    gtk
    gio
    lv2
    mms
    id3tag
    mpegtsmux
    ivtc
    bs2b
    rtmp
    aom
    webrtc
    rtponvif
    fluidsynthmidi
    mxf
    dvdspu
    videoparsersbad
    realmedia
    siren
    pcapparse
    asfmux
    videofiltersbad
    dtls
    netsim
    ivfparse
    debugutilsbad
    rfbsrc
    dvdsub
    pnm
    gdp
    mplex
    bluez
    flite
    audiofxbad
    dvdlpcmdec
    shm
    voamrwbenc
    hls
    dvdread
    y4mdec
    freeverb
    gsm
    webrtcdsp
    ipcpipeline
    kms
    ttmlsubs
    legacyrawparse
    audiolatency
    adpcmenc
    de265
    coloreffects
    zbar
    cdio
    openexr
    autoconvert
    srt
    a52dec
    uvch264
    dvbsuboverlay
    x264
    dashdemux
    gme
    frei0r
    inter
    geometrictransform
    videoframe_audiolevel
    dc1394
    fbdevsink
    faad
    aiff
    yadif
    accurip
    xingmux
    audiovisualizers
    dvb
    midi
    srtp
    colormanagement
    spandsp
    mpeg2enc
    dtsdec
    vmnc
    smooth
    adpcmdec
    openjpeg
    timecode
    segmentclip
    faceoverlay
    rsvg
    festival
    interlace
    mpegpsmux
    proxy
    chromaprint
    videosignal
    audiomixmatrix
    soundtouch
    kate
    asf
    closedcaption
    speed
    bz2
    openmpt
    openal
    mpegpsdemux
    mpegtsdemux
    modplug
    assrender
    smoothstreaming
    teletext
    amrwbdec
    decklink
    musepack
    gaudieffects
    mpeg2dec
    x265
    resindvd
    wildmidi
    curl
    bayer
    sdpelem
    opusparse
    webp
    fieldanalysis
    voaacenc
    waylandsink
    sbc
    sid
    jp2kdecimator
    vulkan
    sndfile
    ofa
    removesilence
    subenc
    audiobuffersplit
    sctp
    amrnb
    cluttergst3
    twolame
    oss4
    audiorate
    alsa
    rtp
    gdkpixbuf
    playback
    ximagesrc
    png
    taglib
    multipart
    udp
    opus
    y4menc
    videorate
    cutter
    jpeg
    cairo
    level
    flxdec
    videotestsrc
    volume
    cdparanoia
    monoscope
    lame
    coreelements
    opengl
    id3demux
    shout2
    vpx
    navigationtest
    libvisual
    app
    ossaudio
    video4linux2
    audiofx
    dv
    coretracers
    wavenc
    xvimagesink
    pulseaudio
    pango
    rtsp
    alaw
    wavpack
    avi
    tcp
    subparse
    replaygain
    cacasink
    speex
    videobox
    multifile
    audioresample
    auparse
    camerabin
    compositor
    alpha
    overlaycomposition
    pbtypes
    jpegformat
    alphacolor
    mulaw
    aasink
    equalizer
    dtmf
    goom2k1
    videofilter
    matroska
    videoscale
    audioparsers
    wavparse
    deinterlace
    jack
    audiotestsrc
    encoding
    audioconvert
    goom
    theora
    smpte
    1394
    videocrop
    ogg
    autodetect
    flac
    ximagesink
    spectrum
    icydemux
    debug
    flv
    soup
    adder
    rtpmanager
    effectv
    interleave
    shapewipe
    apetag
    audiomixer
    videomixer
    imagefreeze
    typefindfunctions
    videoconvert
    vorbis
    isomp4
    mpg123
    rawparse
    staticelements
    End Available Plugins
    
    List Plugins in AudioVisual
    
    spacescope   Stereo visualizer
    spectrascope     Frequency spectrum scope
    synaescope   Synaescope
    wavescope    Waveform oscilloscope
    END
    
    All Available visualisations
    
    goom        GOOM: what a GOOM!
    goom2k1     GOOM: what a GOOM! 2k1 edition
    libvisual_oinksie       libvisual oinksie plugin plugin v.0.1
    libvisual_lv_scope      libvisual libvisual scope plugin v.0.1
    libvisual_lv_analyzer       libvisual libvisual analyzer plugin v.1.0
    libvisual_jakdaw        libvisual Jakdaw plugin plugin v.0.0.1
    libvisual_infinite      libvisual infinite plugin plugin v.0.1
    libvisual_corona        libvisual libvisual corona plugin plugin v.0.1
    libvisual_bumpscope     libvisual Bumpscope plugin plugin v.0.0.1
    libvisual_jess      libvisual jess plugin plugin v.0.1
    monoscope       Monoscope
    spacescope      Stereo visualizer
    spectrascope        Frequency spectrum scope
    synaescope      Synaescope
    wavescope       Waveform oscilloscope
    END
    
    All Available Audio filters
    
    equalizer-10bands       10 Band Equalizer
    equalizer-3bands        3 Band Equalizer
    equalizer-nbands        N Band Equalizer
    rgvolume        ReplayGain volume
    rglimiter       ReplayGain limiter
    stereo      Stereo effect
    audioecho       Audio echo
    audiofirfilter      Audio FIR filter
    audiowsincband      Band pass & band reject filter
    audiowsinclimit     Low pass & high pass filter
    audioiirfilter      Audio IIR filter
    audiochebband       Band pass & band reject filter
    audiocheblimit      Low pass & high pass filter
    audiodynamic        Dynamic range controller
    audioamplify        Audio amplifier
    audiokaraoke        AudioKaraoke
    audioinvert     Audio inversion
    audiopanorama       Stereo positioning
    volume      Volume
    audiorate       Audio rate adjuster
    removesilence       RemoveSilence
    speed       Speed
    pitch       Pitch controller
    festival        Festival Text-to-Speech synthesizer
    spanplc     SpanDSP PLC
    freeverb        Reverberation/room effect
    bs2b        Crossfeed effect
    ladspa-decay-1886-so-decay      Exponential signal decay
    ladspa-comb-1887-so-comb-n      Comb delay line, noninterpolating
    ladspa-comb-1887-so-comb-l      Comb delay line, linear interpolation
    ladspa-comb-1887-so-comb-c      Comb delay line, cubic spline interpolation
    ladspa-karaoke-1409-so-karaoke      Karaoke
    ladspa-triple-para-1204-so-triplepara       Triple band parametric with shelves
    ladspa-sifter-1210-so-sifter        Signal sifter
    ladspa-valve-rect-1405-so-valverect     Valve rectifier
    ladspa-matrix-ms-st-1421-so-matrixmsst      Matrix: MS to Stereo
    ladspa-gverb-1216-so-gverb      GVerb
    ladspa-sc4m-1916-so-sc4m        SC4 mono
    ladspa-tap-reflector-so-tap-reflector       TAP Reflector
    ladspa-transient-1206-so-transient      Transient mangler
    ladspa-matrix-st-ms-1420-so-matrixstms      Matrix: Stereo to MS
    ladspa-gsm-1215-so-gsm      GSM simulator
    ladspa-delayorama-1402-so-delayorama        Delayorama
    ladspa-satan-maximiser-1408-so-satanmaximiser       Barry's Satan Maximiser
    ladspa-mbeq-1197-so-mbeq        Multiband EQ
    ladspa-bode-shifter-1431-so-bodeshifter     Bode frequency shifter
    ladspa-tap-pinknoise-so-tap-pinknoise       TAP Pink/Fractal Noise
    ladspa-phasers-1217-so-lfophaser        LFO Phaser
    ladspa-phasers-1217-so-fourbyfourpole       4 x 4 pole allpass
    ladspa-phasers-1217-so-autophaser       Auto phaser
    ladspa-comb-1190-so-comb        Comb Filter
    ladspa-pitch-scale-1194-so-pitchscalehq     Higher Quality Pitch Scaler
    ladspa-decimator-1202-so-decimator      Decimator
    ladspa-tap-chorusflanger-so-tap-chorusflanger       TAP Chorus/Flanger
    ladspa-tape-delay-1211-so-tapedelay     Tape Delay Simulation
    ladspa-notch-iir-1894-so-notch-iir      Mag's Notch Filter
    ladspa-tap-deesser-so-tap-deesser       TAP DeEsser
    ladspa-amp-so-amp-mono      Mono Amplifier
    ladspa-amp-so-amp-stereo        Stereo Amplifier
    ladspa-gong-beater-1439-so-gongbeater       Gong beater
    ladspa-diode-1185-so-diode      Diode Processor
    ladspa-amp-1181-so-amp      Simple amplifier
    ladspa-shaper-1187-so-shaper        Wave shaper
    ladspa-foverdrive-1196-so-foverdrive        Fast overdrive
    ladspa-ls-filter-1908-so-lsfilter       LS Filter
    ladspa-flanger-1191-so-flanger      Flanger
    ladspa-chebstortion-1430-so-chebstortion        Chebyshev distortion
    ladspa-inv-1429-so-inv      Inverter
    ladspa-split-1406-so-split      Mono to Stereo splitter
    ladspa-gate-1410-so-gate        Gate
    ladspa-tap-dynamics-st-so-tap-dynamics-st       TAP Dynamics (St)
    ladspa-sc2-1426-so-sc2      SC2
    ladspa-pitch-scale-1193-so-pitchscale       Pitch Scaler
    ladspa-tap-sigmoid-so-tap-sigmoid       TAP Sigmoid Booster
    ladspa-tap-tremolo-so-tap-tremolo       TAP Tremolo
    ladspa-ringmod-1188-so-ringmod-2i1o     Ringmod with two inputs
    ladspa-ringmod-1188-so-ringmod-1i1o1l       Ringmod with LFO
    ladspa-harmonic-gen-1220-so-harmonicgen     Harmonic generator
    ladspa-dj-eq-1901-so-dj-eq-mono     DJ EQ (mono)
    ladspa-dj-eq-1901-so-dj-eq      DJ EQ
    ladspa-cmt-so-bf2cube       Ambisonic Decoder (B-Format to Cube)
    ladspa-cmt-so-bf2quad       Ambisonic Decoder (B-Format to Quad)
    ladspa-cmt-so-bf2stereo     Ambisonic Decoder (B-Format to Stereo)
    ladspa-cmt-so-fmh2oct       Ambisonic Decoder (FMH-Format to Octagon)
    ladspa-cmt-so-encode-bformat        Ambisonic Encoder (B-Format)
    ladspa-cmt-so-encode-fmh        Ambisonic Encoder (FMH-Format)
    ladspa-cmt-so-bf-rotate-z       Ambisonic Rotation (B-Format, Horizontal)
    ladspa-cmt-so-fmh-rotate-z      Ambisonic Rotation (FMH-Format, Horizontal)
    ladspa-cmt-so-amp-mono      Amplifier (Mono)
    ladspa-cmt-so-amp-stereo        Amplifier (Stereo)
    ladspa-cmt-so-am        Amplitude Modulator
    ladspa-cmt-so-canyon-delay      Canyon Delay
    ladspa-cmt-so-disintegrator     Disintegrator
    ladspa-cmt-so-sledgehammer      Dynamic Sledgehammer
    ladspa-cmt-so-delay-0-01s       Echo Delay Line (Maximum Delay 0.01s)
    ladspa-cmt-so-delay-0-1s        Echo Delay Line (Maximum Delay 0.1s)
    ladspa-cmt-so-delay-1s      Echo Delay Line (Maximum Delay 1s)
    ladspa-cmt-so-delay-5s      Echo Delay Line (Maximum Delay 5s)
    ladspa-cmt-so-delay-60s     Echo Delay Line (Maximum Delay 60s)
    ladspa-cmt-so-fmh2bf        FMH-Format to B-Format (Discards RSTUV Channels)
    ladspa-cmt-so-fbdelay-0-01s     Feedback Delay Line (Maximum Delay 0.01s)
    ladspa-cmt-so-fbdelay-0-1s      Feedback Delay Line (Maximum Delay 0.1s)
    ladspa-cmt-so-fbdelay-1s        Feedback Delay Line (Maximum Delay 1s)
    ladspa-cmt-so-fbdelay-5s        Feedback Delay Line (Maximum Delay 5s)
    ladspa-cmt-so-fbdelay-60s       Feedback Delay Line (Maximum Delay 60s)
    ladspa-cmt-so-freeverb3     Freeverb (Version 3)
    ladspa-cmt-so-grain-scatter     Granular Scatter Processor
    ladspa-cmt-so-hard-gate     Hard Gate
    ladspa-cmt-so-hpf       High Pass Filter (One Pole)
    ladspa-cmt-so-identity-audio        Identity (Audio)
    ladspa-cmt-so-lofi      Lo Fi
    ladspa-cmt-so-lpf       Low Pass Filter (One Pole)
    ladspa-cmt-so-mixer     Mixer (Stereo to Mono)
    ladspa-cmt-so-compress-peak     Simple Compressor (Peak Envelope Tracking)
    ladspa-cmt-so-compress-rms      Simple Compressor (RMS Envelope Tracking)
    ladspa-cmt-so-expand-peak       Simple Expander (Peak Envelope Tracking)
    ladspa-cmt-so-expand-rms        Simple Expander (RMS Envelope Tracking)
    ladspa-cmt-so-limit-peak        Simple Limiter (Peak Envelope Tracking)
    ladspa-cmt-so-limit-rms     Simple Limiter (RMS Envelope Tracking)
    ladspa-cmt-so-sine-faaa     Sine Oscillator (Freq:audio, Amp:audio)
    ladspa-cmt-so-sine-faac     Sine Oscillator (Freq:audio, Amp:control)
    ladspa-cmt-so-sine-fcaa     Sine Oscillator (Freq:control, Amp:audio)
    ladspa-cmt-so-vcf303        VCF 303
    ladspa-cmt-so-wshape-sine       Wave Shaper (Sine-Based)
    ladspa-tap-pitch-so-tap-pitch       TAP Pitch Shifter
    ladspa-step-muxer-1212-so-stepmuxer     Step Demuxer
    ladspa-tap-vibrato-so-tap-vibrato       TAP Vibrato
    ladspa-surround-encoder-1401-so-surroundencoder     Surround matrix encoder
    ladspa-se4-1883-so-se4      SE4
    ladspa-lowpass-iir-1891-so-lowpass-iir      Glame Lowpass Filter
    ladspa-am-pitchshift-1433-so-ampitchshift       AM pitchshifter
    ladspa-bandpass-a-iir-1893-so-bandpass-a-iir        Glame Bandpass Analog Filter
    ladspa-alias-1407-so-alias      Aliasing
    ladspa-vocoder-1337-so-vocoder      Vocoder
    ladspa-delay-so-delay-5s        Simple Delay Line
    ladspa-tap-dynamics-m-so-tap-dynamics-m     TAP Dynamics (M)
    ladspa-tap-autopan-so-tap-autopan       TAP AutoPanner
    ladspa-allpass-1895-so-allpass-n        Allpass delay line, noninterpolating
    ladspa-allpass-1895-so-allpass-l        Allpass delay line, linear interpolation
    ladspa-allpass-1895-so-allpass-c        Allpass delay line, cubic spline interpolation
    ladspa-wave-terrain-1412-so-waveterrain     Wave Terrain Oscillator
    ladspa-filter-so-lpf        Simple Low Pass Filter
    ladspa-filter-so-hpf        Simple High Pass Filter
    ladspa-tap-eq-so-tap-equalizer      TAP Equalizer
    ladspa-crossover-dist-1404-so-crossoverdist     Crossover distortion
    ladspa-giant-flange-1437-so-giantflange     Giant flange
    ladspa-lcr-delay-1436-so-lcrdelay       L/C/R Delay
    ladspa-butterworth-1902-so-bwxover-iir      Glame Butterworth X-over Filter
    ladspa-butterworth-1902-so-buttlow-iir      GLAME Butterworth Lowpass
    ladspa-butterworth-1902-so-butthigh-iir     GLAME Butterworth Highpass
    ladspa-comb-splitter-1411-so-combsplitter       Comb Splitter
    ladspa-rate-shifter-1417-so-rateshifter     Rate shifter
    ladspa-highpass-iir-1890-so-highpass-iir        Glame Highpass Filter
    ladspa-dc-remove-1207-so-dcremove       DC Offset Remover
    ladspa-fast-lookahead-limiter-1913-so-fastlookaheadlimiter      Fast Lookahead limiter
    ladspa-retro-flange-1208-so-retroflange     Retro Flanger
    ladspa-dj-flanger-1438-so-djflanger     DJ flanger
    ladspa-tap-limiter-so-tap-limiter       TAP Scaling Limiter
    ladspa-latency-1914-so-artificiallatency        Artificial latency
    ladspa-tap-doubler-so-tap-doubler       TAP Fractal Doubler
    ladspa-bs2b-so-bs2b     Bauer stereophonic-to-binaural 0.9.1 (3.1.0)
    ladspa-tap-tubewarmth-so-tap-tubewarmth     TAP TubeWarmth
    ladspa-freq-tracker-1418-so-freqtracker     Frequency tracker
    ladspa-valve-1209-so-valve      Valve saturation
    ladspa-single-para-1203-so-singlepara       Single band parametric
    ladspa-bandpass-iir-1892-so-bandpass-iir        Glame Bandpass Filter
    ladspa-pointer-cast-1910-so-pointercastdistortion       Pointer cast distortion
    ladspa-bode-shifter-cv-1432-so-bodeshiftercv        Bode frequency shifter (CV)
    ladspa-hilbert-1440-so-hilbert      Hilbert transformer
    ladspa-zm1-1428-so-zm1      z-1
    ladspa-svf-1214-so-svf      State Variable Filter
    ladspa-revdelay-1605-so-revdelay        Reverse Delay (5s max)
    ladspa-tap-reverb-so-tap-reverb     TAP Reverberator
    ladspa-smooth-decimate-1414-so-smoothdecimate       Smooth Decimator
    ladspa-foldover-1213-so-foldover        Foldover distortion
    ladspa-imp-1199-so-imp      Impulse convolver
    ladspa-tap-rotspeak-so-tap-rotspeak     TAP Rotary Speaker
    ladspa-hermes-filter-1200-so-hermesfilter       Hermes Filter
    ladspa-fad-delay-1192-so-faddelay       Fractionally Addressed Delay Line
    ladspa-declip-1195-so-declip        Declipper
    ladspa-tap-eqbw-so-tap-equalizer-bw     TAP Equalizer/BW
    ladspa-hard-limiter-1413-so-hardlimiter     Hard Limiter
    ladspa-vynil-1905-so-vynil      VyNil (Vinyl Effect)
    ladspa-vlevel-ladspa-so-vlevel-mono     VLevel (Mono)
    ladspa-vlevel-ladspa-so-vlevel-stereo       VLevel (Stereo)
    ladspa-xfade-1915-so-xfade      Crossfade
    ladspa-xfade-1915-so-xfade4     Crossfade (4 outs)
    ladspa-multivoice-chorus-1201-so-multivoicechorus       Multivoice Chorus
    ladspa-sine-so-sine-faaa        Sine Oscillator (Freq:audio, Amp:audio)
    ladspa-sine-so-sine-faac        Sine Oscillator (Freq:audio, Amp:control)
    ladspa-sine-so-sine-fcaa        Sine Oscillator (Freq:control, Amp:audio)
    ladspa-tap-echo-so-tap-stereo-echo      TAP Stereo Echo
    ladspa-sc1-1425-so-sc1      SC1
    ladspa-dyson-compress-1403-so-dysoncompress     Dyson compressor
    ladspa-mod-delay-1419-so-moddelay       Modulatable delay
    ladspa-matrix-spatialiser-1422-so-matrixspatialiser     Matrix Spatialiser
    ladspa-sc4-1882-so-sc4      SC4
    ladspa-fm-osc-1415-so-fmosc     FM Oscillator
    ladspa-sc3-1427-so-sc3      SC3
    ladspa-plate-1423-so-plate      Plate reverb
    ladspa-divider-1186-so-divider      Audio Divider (Suboctave Generator)
    ladspa-const-1909-so-const      Constant Signal Generator
    ladspa-sinus-wavewrapper-1198-so-sinuswavewrapper       Sinus wavewrapper
    ladspa-gong-1424-so-gong        Gong model
    ladspa-delay-1898-so-delay-n        Simple delay line, noninterpolating
    ladspa-delay-1898-so-delay-l        Simple delay line, linear interpolation
    ladspa-delay-1898-so-delay-c        Simple delay line, cubic spline interpolation
    END