├── .gitignore ├── .gitlab-ci.yml ├── AUTHORS ├── COPYING ├── ChangeLog ├── MAINTAINERS ├── NEWS ├── README ├── README.static-linking ├── RELEASE ├── REQUIREMENTS ├── docs ├── gst_api_version.in ├── index.md ├── libs │ ├── allocators │ │ ├── index.md │ │ └── sitemap.txt │ ├── app │ │ ├── index.md │ │ └── sitemap.txt │ ├── audio │ │ ├── index.md │ │ └── sitemap.txt │ ├── ext │ │ └── sitemap.txt │ ├── fft │ │ ├── index.md │ │ └── sitemap.txt │ ├── gl-egl │ │ ├── index.md │ │ └── sitemap.txt │ ├── gl-wayland │ │ ├── index.md │ │ └── sitemap.txt │ ├── gl-x11 │ │ ├── index.md │ │ └── sitemap.txt │ ├── gl │ │ ├── index.md │ │ └── sitemap.txt │ ├── pbutils │ │ ├── index.md │ │ └── sitemap.txt │ ├── riff │ │ ├── index.md │ │ └── sitemap.txt │ ├── rtp │ │ ├── index.md │ │ └── sitemap.txt │ ├── rtsp │ │ ├── index.md │ │ └── sitemap.txt │ ├── sdp │ │ ├── index.md │ │ └── sitemap.txt │ ├── tag │ │ ├── index.md │ │ └── sitemap.txt │ └── video │ │ ├── index.md │ │ └── sitemap.txt ├── meson.build ├── plugins │ ├── all_index.md │ ├── gst_plugins_cache.json │ ├── index.md │ └── sitemap.txt ├── random │ ├── ChangeLog-0.8 │ └── LICENSE ├── sitemap.txt └── version.in ├── ext ├── alsa │ ├── gstalsa.c │ ├── gstalsa.h │ ├── gstalsadeviceprovider.c │ ├── gstalsadeviceprovider.h │ ├── gstalsaelement.c │ ├── gstalsaelements.h │ ├── gstalsamidisrc.c │ ├── gstalsamidisrc.h │ ├── gstalsaplugin.c │ ├── gstalsasink.c │ ├── gstalsasink.h │ ├── gstalsasrc.c │ ├── gstalsasrc.h │ └── meson.build ├── cdparanoia │ ├── gstcdparanoiasrc.c │ ├── gstcdparanoiasrc.h │ └── meson.build ├── gl │ ├── caopengllayersink.h │ ├── caopengllayersink.m │ ├── effects │ │ ├── gstgleffectblur.c │ │ ├── gstgleffectbulge.c │ │ ├── gstgleffectfisheye.c │ │ ├── gstgleffectglow.c │ │ ├── gstgleffectidentity.c │ │ ├── gstgleffectlaplacian.c │ │ ├── gstgleffectlumatocurve.c │ │ ├── gstgleffectlumatocurve.h │ │ ├── gstgleffectmirror.c │ │ ├── gstgleffectrgbtocurve.c │ │ ├── gstgleffectscurves.c │ │ ├── gstgleffectscurves.h │ │ ├── gstgleffectsin.c │ │ ├── gstgleffectsobel.c │ │ ├── gstgleffectsquare.c │ │ ├── gstgleffectsqueeze.c │ │ ├── gstgleffectssources.c │ │ ├── gstgleffectssources.h │ │ ├── gstgleffectstretch.c │ │ ├── gstgleffecttunnel.c │ │ ├── gstgleffecttwirl.c │ │ └── gstgleffectxray.c │ ├── gltestsrc.c │ ├── gltestsrc.h │ ├── gstglalpha.c │ ├── gstglalpha.h │ ├── gstglbasemixer.c │ ├── gstglbasemixer.h │ ├── gstglbumper.c │ ├── gstglbumper.h │ ├── gstglcolorbalance.c │ ├── gstglcolorbalance.h │ ├── gstglcolorconvertelement.c │ ├── gstglcolorconvertelement.h │ ├── gstglcolorscale.c │ ├── gstglcolorscale.h │ ├── gstgldeinterlace.c │ ├── gstgldeinterlace.h │ ├── gstgldifferencematte.c │ ├── gstgldifferencematte.h │ ├── gstgldownloadelement.c │ ├── gstgldownloadelement.h │ ├── gstgleffects.c │ ├── gstgleffects.h │ ├── gstglelement.c │ ├── gstglelements.h │ ├── gstglfilterapp.c │ ├── gstglfilterapp.h │ ├── gstglfilterbin.c │ ├── gstglfilterbin.h │ ├── gstglfiltercube.c │ ├── gstglfiltercube.h │ ├── gstglfilterglass.c │ ├── gstglfilterglass.h │ ├── gstglfilterreflectedscreen.c │ ├── gstglfilterreflectedscreen.h │ ├── gstglfiltershader.c │ ├── gstglfiltershader.h │ ├── gstglimagesink.c │ ├── gstglimagesink.h │ ├── gstglmixer.c │ ├── gstglmixer.h │ ├── gstglmixerbin.c │ ├── gstglmixerbin.h │ ├── gstglmosaic.c │ ├── gstglmosaic.h │ ├── gstgloverlay.c │ ├── gstgloverlay.h │ ├── gstgloverlaycompositorelement.c │ ├── gstgloverlaycompositorelement.h │ ├── gstglsinkbin.c │ ├── gstglsinkbin.h │ ├── gstglsrcbin.c │ ├── gstglsrcbin.h │ ├── gstglstereomix.c │ ├── gstglstereomix.h │ ├── gstglstereosplit.c │ ├── gstglstereosplit.h │ ├── gstgltestsrc.c │ ├── gstgltestsrc.h │ ├── gstgltransformation.c │ ├── gstgltransformation.h │ ├── gstgluploadelement.c │ ├── gstgluploadelement.h │ ├── gstglutils.c │ ├── gstglutils.h │ ├── gstglvideoflip.c │ ├── gstglvideoflip.h │ ├── gstglvideomixer.c │ ├── gstglvideomixer.h │ ├── gstglviewconvert.c │ ├── gstglviewconvert.h │ ├── gstopengl.c │ └── meson.build ├── libvisual │ ├── meson.build │ ├── plugin.c │ ├── visual.c │ └── visual.h ├── meson.build ├── ogg │ ├── README │ ├── dirac_parse.c │ ├── dirac_parse.h │ ├── gstoggaviparse.c │ ├── gstoggdemux.c │ ├── gstoggdemux.h │ ├── gstoggelements.h │ ├── gstoggmux.c │ ├── gstoggmux.h │ ├── gstoggparse.c │ ├── gstoggplugin.c │ ├── gstoggstream.c │ ├── gstoggstream.h │ ├── gstogmparse.c │ ├── meson.build │ ├── vorbis_parse.c │ └── vorbis_parse.h ├── opus │ ├── gstopus.c │ ├── gstopuscommon.c │ ├── gstopuscommon.h │ ├── gstopusdec.c │ ├── gstopusdec.h │ ├── gstopuselement.c │ ├── gstopuselements.h │ ├── gstopusenc.c │ ├── gstopusenc.h │ ├── gstopusheader.c │ ├── gstopusheader.h │ └── meson.build ├── pango │ ├── gstbasetextoverlay.c │ ├── gstbasetextoverlay.h │ ├── gstclockoverlay.c │ ├── gstclockoverlay.h │ ├── gstpangoelement.c │ ├── gstpangoelements.h │ ├── gstpangoplugin.c │ ├── gsttextoverlay.c │ ├── gsttextoverlay.h │ ├── gsttextrender.c │ ├── gsttextrender.h │ ├── gsttimeoverlay.c │ ├── gsttimeoverlay.h │ └── meson.build ├── theora │ ├── gsttheora.c │ ├── gsttheoradec.c │ ├── gsttheoradec.h │ ├── gsttheoraenc.c │ ├── gsttheoraenc.h │ ├── gsttheoraparse.c │ ├── gsttheoraparse.h │ └── meson.build └── vorbis │ ├── README │ ├── gstivorbisdec.c │ ├── gstvorbis.c │ ├── gstvorbiscommon.c │ ├── gstvorbiscommon.h │ ├── gstvorbisdec.c │ ├── gstvorbisdec.h │ ├── gstvorbisdeclib.c │ ├── gstvorbisdeclib.h │ ├── gstvorbiselement.c │ ├── gstvorbiselements.h │ ├── gstvorbisenc.c │ ├── gstvorbisenc.h │ ├── gstvorbisparse.c │ ├── gstvorbisparse.h │ ├── gstvorbistag.c │ ├── gstvorbistag.h │ └── meson.build ├── gst-libs ├── gst │ ├── allocators │ │ ├── allocators-prelude.h │ │ ├── allocators.h │ │ ├── gstdmabuf.c │ │ ├── gstdmabuf.h │ │ ├── gstfdmemory.c │ │ ├── gstfdmemory.h │ │ ├── gstphysmemory.c │ │ ├── gstphysmemory.h │ │ └── meson.build │ ├── app │ │ ├── app-prelude.h │ │ ├── app.h │ │ ├── gstappsink.c │ │ ├── gstappsink.h │ │ ├── gstappsrc.c │ │ ├── gstappsrc.h │ │ └── meson.build │ ├── audio │ │ ├── TODO │ │ ├── audio-buffer.c │ │ ├── audio-buffer.h │ │ ├── audio-channel-mixer.c │ │ ├── audio-channel-mixer.h │ │ ├── audio-channels.c │ │ ├── audio-channels.h │ │ ├── audio-converter.c │ │ ├── audio-converter.h │ │ ├── audio-format.c │ │ ├── audio-format.h │ │ ├── audio-info.c │ │ ├── audio-info.h │ │ ├── audio-prelude.h │ │ ├── audio-quantize.c │ │ ├── audio-quantize.h │ │ ├── audio-resampler-macros.h │ │ ├── audio-resampler-neon.h │ │ ├── audio-resampler-private.h │ │ ├── audio-resampler-x86-sse.c │ │ ├── audio-resampler-x86-sse.h │ │ ├── audio-resampler-x86-sse2.c │ │ ├── audio-resampler-x86-sse2.h │ │ ├── audio-resampler-x86-sse41.c │ │ ├── audio-resampler-x86-sse41.h │ │ ├── audio-resampler-x86.h │ │ ├── audio-resampler.c │ │ ├── audio-resampler.h │ │ ├── audio.c │ │ ├── audio.h │ │ ├── dbesi0.c │ │ ├── gstaudioaggregator.c │ │ ├── gstaudioaggregator.h │ │ ├── gstaudiobasesink.c │ │ ├── gstaudiobasesink.h │ │ ├── gstaudiobasesrc.c │ │ ├── gstaudiobasesrc.h │ │ ├── gstaudiocdsrc.c │ │ ├── gstaudiocdsrc.h │ │ ├── gstaudioclock.c │ │ ├── gstaudioclock.h │ │ ├── gstaudiodecoder.c │ │ ├── gstaudiodecoder.h │ │ ├── gstaudioencoder.c │ │ ├── gstaudioencoder.h │ │ ├── gstaudiofilter.c │ │ ├── gstaudiofilter.h │ │ ├── gstaudioiec61937.c │ │ ├── gstaudioiec61937.h │ │ ├── gstaudiometa.c │ │ ├── gstaudiometa.h │ │ ├── gstaudiopack-dist.c │ │ ├── gstaudiopack-dist.h │ │ ├── gstaudiopack.orc │ │ ├── gstaudioringbuffer.c │ │ ├── gstaudioringbuffer.h │ │ ├── gstaudiosink.c │ │ ├── gstaudiosink.h │ │ ├── gstaudiosrc.c │ │ ├── gstaudiosrc.h │ │ ├── gstaudiostreamalign.c │ │ ├── gstaudiostreamalign.h │ │ ├── gstaudioutilsprivate.c │ │ ├── gstaudioutilsprivate.h │ │ ├── meson.build │ │ ├── streamvolume.c │ │ └── streamvolume.h │ ├── fft │ │ ├── _kiss_fft_guts_f32.h │ │ ├── _kiss_fft_guts_f64.h │ │ ├── _kiss_fft_guts_s16.h │ │ ├── _kiss_fft_guts_s32.h │ │ ├── fft-prelude.h │ │ ├── fft.h │ │ ├── gstfft.c │ │ ├── gstfft.h │ │ ├── gstfftf32.c │ │ ├── gstfftf32.h │ │ ├── gstfftf64.c │ │ ├── gstfftf64.h │ │ ├── gstffts16.c │ │ ├── gstffts16.h │ │ ├── gstffts32.c │ │ ├── gstffts32.h │ │ ├── kiss_fft_f32.c │ │ ├── kiss_fft_f32.h │ │ ├── kiss_fft_f64.c │ │ ├── kiss_fft_f64.h │ │ ├── kiss_fft_s16.c │ │ ├── kiss_fft_s16.h │ │ ├── kiss_fft_s32.c │ │ ├── kiss_fft_s32.h │ │ ├── kiss_fftr_f32.c │ │ ├── kiss_fftr_f32.h │ │ ├── kiss_fftr_f64.c │ │ ├── kiss_fftr_f64.h │ │ ├── kiss_fftr_s16.c │ │ ├── kiss_fftr_s16.h │ │ ├── kiss_fftr_s32.c │ │ ├── kiss_fftr_s32.h │ │ ├── kiss_version │ │ └── meson.build │ ├── gettext.h │ ├── gl │ │ ├── android │ │ │ ├── gstglwindow_android_egl.c │ │ │ └── gstglwindow_android_egl.h │ │ ├── cocoa │ │ │ ├── gstgl_cocoa_private.h │ │ │ ├── gstglcaopengllayer.h │ │ │ ├── gstglcaopengllayer.m │ │ │ ├── gstglcontext_cocoa.h │ │ │ ├── gstglcontext_cocoa.m │ │ │ ├── gstgldisplay_cocoa.h │ │ │ ├── gstgldisplay_cocoa.m │ │ │ ├── gstglwindow_cocoa.h │ │ │ └── gstglwindow_cocoa.m │ │ ├── dispmanx │ │ │ ├── gstglwindow_dispmanx_egl.c │ │ │ └── gstglwindow_dispmanx_egl.h │ │ ├── eagl │ │ │ ├── gstglcontext_eagl.h │ │ │ ├── gstglcontext_eagl.m │ │ │ ├── gstglios_utils.h │ │ │ ├── gstglwindow_eagl.h │ │ │ └── gstglwindow_eagl.m │ │ ├── egl │ │ │ ├── egl.h │ │ │ ├── gstegl.c │ │ │ ├── gstegl.h │ │ │ ├── gsteglimage.c │ │ │ ├── gsteglimage.h │ │ │ ├── gsteglimage_private.h │ │ │ ├── gstglcontext_egl.c │ │ │ ├── gstglcontext_egl.h │ │ │ ├── gstgldisplay_egl.c │ │ │ ├── gstgldisplay_egl.h │ │ │ ├── gstgldisplay_egl_device.c │ │ │ ├── gstgldisplay_egl_device.h │ │ │ ├── gstglmemoryegl.c │ │ │ └── gstglmemoryegl.h │ │ ├── gbm │ │ │ ├── gstgl_gbm_utils.c │ │ │ ├── gstgl_gbm_utils.h │ │ │ ├── gstgldisplay_gbm.c │ │ │ ├── gstgldisplay_gbm.h │ │ │ ├── gstglwindow_gbm_egl.c │ │ │ └── gstglwindow_gbm_egl.h │ │ ├── gl-prelude.h │ │ ├── gl.h │ │ ├── gl_mkenum.py │ │ ├── glprototypes │ │ │ ├── README │ │ │ ├── all_functions.h │ │ │ ├── base.h │ │ │ ├── blending.h │ │ │ ├── buffer_storage.h │ │ │ ├── buffers.h │ │ │ ├── debug.h │ │ │ ├── eglimage.h │ │ │ ├── fbo.h │ │ │ ├── fixedfunction.h │ │ │ ├── gles.h │ │ │ ├── gstgl_compat.h │ │ │ ├── gstgl_gles2compat.h │ │ │ ├── opengl.h │ │ │ ├── query.h │ │ │ ├── shaders.h │ │ │ ├── sync.h │ │ │ └── vao.h │ │ ├── gstgl_enums.h │ │ ├── gstgl_fwd.h │ │ ├── gstglapi.c │ │ ├── gstglapi.h │ │ ├── gstglbasefilter.c │ │ ├── gstglbasefilter.h │ │ ├── gstglbasememory.c │ │ ├── gstglbasememory.h │ │ ├── gstglbasesrc.c │ │ ├── gstglbasesrc.h │ │ ├── gstglbuffer.c │ │ ├── gstglbuffer.h │ │ ├── gstglbufferpool.c │ │ ├── gstglbufferpool.h │ │ ├── gstglcolorconvert.c │ │ ├── gstglcolorconvert.h │ │ ├── gstglconfig.h.meson │ │ ├── gstglcontext.c │ │ ├── gstglcontext.h │ │ ├── gstglcontext_private.h │ │ ├── gstglcontextconfig.c │ │ ├── gstglcontextconfig.h │ │ ├── gstgldebug.c │ │ ├── gstgldebug.h │ │ ├── gstgldisplay.c │ │ ├── gstgldisplay.h │ │ ├── gstglfeature.c │ │ ├── gstglfeature.h │ │ ├── gstglfeature_private.h │ │ ├── gstglfilter.c │ │ ├── gstglfilter.h │ │ ├── gstglformat.c │ │ ├── gstglformat.h │ │ ├── gstglframebuffer.c │ │ ├── gstglframebuffer.h │ │ ├── gstglfuncs.h │ │ ├── gstglmemory.c │ │ ├── gstglmemory.h │ │ ├── gstglmemorypbo.c │ │ ├── gstglmemorypbo.h │ │ ├── gstgloverlaycompositor.c │ │ ├── gstgloverlaycompositor.h │ │ ├── gstglpixelformat.c │ │ ├── gstglquery.c │ │ ├── gstglquery.h │ │ ├── gstglrenderbuffer.c │ │ ├── gstglrenderbuffer.h │ │ ├── gstglshader.c │ │ ├── gstglshader.h │ │ ├── gstglshaderstrings.c │ │ ├── gstglshaderstrings.h │ │ ├── gstglsl.c │ │ ├── gstglsl.h │ │ ├── gstglsl_private.h │ │ ├── gstglslstage.c │ │ ├── gstglslstage.h │ │ ├── gstglsyncmeta.c │ │ ├── gstglsyncmeta.h │ │ ├── gstglupload.c │ │ ├── gstglupload.h │ │ ├── gstglutils.c │ │ ├── gstglutils.h │ │ ├── gstglutils_private.h │ │ ├── gstglviewconvert.c │ │ ├── gstglviewconvert.h │ │ ├── gstglwindow.c │ │ ├── gstglwindow.h │ │ ├── gstglwindow_private.h │ │ ├── meson.build │ │ ├── utils │ │ │ ├── gles_versions.h │ │ │ └── opengl_versions.h │ │ ├── viv-fb │ │ │ ├── gstgldisplay_viv_fb.c │ │ │ ├── gstgldisplay_viv_fb.h │ │ │ ├── gstglwindow_viv_fb_egl.c │ │ │ └── gstglwindow_viv_fb_egl.h │ │ ├── wayland │ │ │ ├── gstgldisplay_wayland.c │ │ │ ├── gstgldisplay_wayland.h │ │ │ ├── gstglwindow_wayland_egl.c │ │ │ ├── gstglwindow_wayland_egl.h │ │ │ ├── wayland.h │ │ │ ├── wayland_event_source.c │ │ │ └── wayland_event_source.h │ │ ├── wgl │ │ │ ├── gstglcontext_wgl.c │ │ │ └── gstglcontext_wgl.h │ │ ├── win32 │ │ │ ├── gstglwindow_win32.c │ │ │ └── gstglwindow_win32.h │ │ ├── winrt │ │ │ ├── gstglwindow_winrt_egl.cpp │ │ │ └── gstglwindow_winrt_egl.h │ │ └── x11 │ │ │ ├── gstglcontext_glx.c │ │ │ ├── gstglcontext_glx.h │ │ │ ├── gstgldisplay_x11.c │ │ │ ├── gstgldisplay_x11.h │ │ │ ├── gstglwindow_x11.c │ │ │ ├── gstglwindow_x11.h │ │ │ ├── x11.h │ │ │ ├── xcb_event_source.c │ │ │ └── xcb_event_source.h │ ├── glib-compat-private.h │ ├── gst-i18n-app.h │ ├── gst-i18n-plugin.h │ ├── meson.build │ ├── pbutils │ │ ├── codec-utils.c │ │ ├── codec-utils.h │ │ ├── descriptions.c │ │ ├── descriptions.h │ │ ├── encoding-profile.c │ │ ├── encoding-profile.h │ │ ├── encoding-target.c │ │ ├── encoding-target.h │ │ ├── gstaudiovisualizer.c │ │ ├── gstaudiovisualizer.h │ │ ├── gstdiscoverer-types.c │ │ ├── gstdiscoverer.c │ │ ├── gstdiscoverer.h │ │ ├── gstpluginsbaseversion.c │ │ ├── gstpluginsbaseversion.h.in │ │ ├── install-plugins.c │ │ ├── install-plugins.h │ │ ├── meson.build │ │ ├── missing-plugins.c │ │ ├── missing-plugins.h │ │ ├── pbutils-prelude.h │ │ ├── pbutils-private.h │ │ ├── pbutils.c │ │ └── pbutils.h │ ├── riff │ │ ├── meson.build │ │ ├── riff-ids.h │ │ ├── riff-media.c │ │ ├── riff-media.h │ │ ├── riff-prelude.h │ │ ├── riff-read.c │ │ ├── riff-read.h │ │ ├── riff.c │ │ └── riff.h │ ├── rtp │ │ ├── README │ │ ├── gstrtcpbuffer.c │ │ ├── gstrtcpbuffer.h │ │ ├── gstrtpbaseaudiopayload.c │ │ ├── gstrtpbaseaudiopayload.h │ │ ├── gstrtpbasedepayload.c │ │ ├── gstrtpbasedepayload.h │ │ ├── gstrtpbasepayload.c │ │ ├── gstrtpbasepayload.h │ │ ├── gstrtpbuffer.c │ │ ├── gstrtpbuffer.h │ │ ├── gstrtpdefs.h │ │ ├── gstrtphdrext.c │ │ ├── gstrtphdrext.h │ │ ├── gstrtpmeta.c │ │ ├── gstrtpmeta.h │ │ ├── gstrtppayloads.c │ │ ├── gstrtppayloads.h │ │ ├── meson.build │ │ ├── rtp-prelude.h │ │ └── rtp.h │ ├── rtsp │ │ ├── gstrtsp.h │ │ ├── gstrtspconnection.c │ │ ├── gstrtspconnection.h │ │ ├── gstrtspdefs.c │ │ ├── gstrtspdefs.h │ │ ├── gstrtspextension.c │ │ ├── gstrtspextension.h │ │ ├── gstrtspmessage.c │ │ ├── gstrtspmessage.h │ │ ├── gstrtsprange.c │ │ ├── gstrtsprange.h │ │ ├── gstrtsptransport.c │ │ ├── gstrtsptransport.h │ │ ├── gstrtspurl.c │ │ ├── gstrtspurl.h │ │ ├── meson.build │ │ ├── rtsp-prelude.h │ │ └── rtsp.h │ ├── sdp │ │ ├── gstmikey.c │ │ ├── gstmikey.h │ │ ├── gstsdp.h │ │ ├── gstsdpmessage.c │ │ ├── gstsdpmessage.h │ │ ├── meson.build │ │ ├── sdp-prelude.h │ │ └── sdp.h │ ├── tag │ │ ├── gstexiftag.c │ │ ├── gstid3tag.c │ │ ├── gsttagdemux.c │ │ ├── gsttagdemux.h │ │ ├── gsttageditingprivate.c │ │ ├── gsttageditingprivate.h │ │ ├── gsttagmux.c │ │ ├── gsttagmux.h │ │ ├── gstvorbistag.c │ │ ├── gstxmptag.c │ │ ├── id3v2.3.0.txt │ │ ├── id3v2.4.0-frames.txt │ │ ├── id3v2.4.0-structure.txt │ │ ├── id3v2.c │ │ ├── id3v2.h │ │ ├── id3v2frames.c │ │ ├── lang-tables.dat │ │ ├── lang.c │ │ ├── license-translations.dict │ │ ├── licenses-tables.dat │ │ ├── licenses.c │ │ ├── meson.build │ │ ├── mklangtables.c │ │ ├── mklicensestables.c │ │ ├── tag-prelude.h │ │ ├── tag.h │ │ ├── tags.c │ │ ├── xmpwriter.c │ │ └── xmpwriter.h │ └── video │ │ ├── TODO │ │ ├── colorbalance.c │ │ ├── colorbalance.h │ │ ├── colorbalancechannel.c │ │ ├── colorbalancechannel.h │ │ ├── convertframe.c │ │ ├── gstvideoaffinetransformationmeta.c │ │ ├── gstvideoaffinetransformationmeta.h │ │ ├── gstvideoaggregator.c │ │ ├── gstvideoaggregator.h │ │ ├── gstvideocodecalphameta.c │ │ ├── gstvideocodecalphameta.h │ │ ├── gstvideodecoder.c │ │ ├── gstvideodecoder.h │ │ ├── gstvideoencoder.c │ │ ├── gstvideoencoder.h │ │ ├── gstvideofilter.c │ │ ├── gstvideofilter.h │ │ ├── gstvideometa.c │ │ ├── gstvideometa.h │ │ ├── gstvideopool.c │ │ ├── gstvideopool.h │ │ ├── gstvideosink.c │ │ ├── gstvideosink.h │ │ ├── gstvideotimecode.c │ │ ├── gstvideotimecode.h │ │ ├── gstvideoutils.c │ │ ├── gstvideoutils.h │ │ ├── gstvideoutilsprivate.c │ │ ├── gstvideoutilsprivate.h │ │ ├── meson.build │ │ ├── navigation.c │ │ ├── navigation.h │ │ ├── video-anc.c │ │ ├── video-anc.h │ │ ├── video-blend.c │ │ ├── video-blend.h │ │ ├── video-chroma.c │ │ ├── video-chroma.h │ │ ├── video-color.c │ │ ├── video-color.h │ │ ├── video-converter.c │ │ ├── video-converter.h │ │ ├── video-dither.c │ │ ├── video-dither.h │ │ ├── video-event.c │ │ ├── video-event.h │ │ ├── video-format.c │ │ ├── video-format.h │ │ ├── video-frame.c │ │ ├── video-frame.h │ │ ├── video-hdr.c │ │ ├── video-hdr.h │ │ ├── video-info.c │ │ ├── video-info.h │ │ ├── video-multiview.c │ │ ├── video-multiview.h │ │ ├── video-orc-dist.c │ │ ├── video-orc-dist.h │ │ ├── video-orc.orc │ │ ├── video-overlay-composition.c │ │ ├── video-overlay-composition.h │ │ ├── video-prelude.h │ │ ├── video-resampler.c │ │ ├── video-resampler.h │ │ ├── video-scaler.c │ │ ├── video-scaler.h │ │ ├── video-tile.c │ │ ├── video-tile.h │ │ ├── video.c │ │ ├── video.h │ │ ├── videodirection.c │ │ ├── videodirection.h │ │ ├── videoorientation.c │ │ ├── videoorientation.h │ │ ├── videooverlay.c │ │ └── videooverlay.h └── meson.build ├── gst-plugins-base.doap ├── gst ├── adder │ ├── gstadder.c │ ├── gstadder.h │ ├── gstadderorc-dist.c │ ├── gstadderorc-dist.h │ ├── gstadderorc.orc │ └── meson.build ├── app │ ├── gstapp.c │ ├── gstappelements.h │ ├── gstappsink.c │ ├── gstappsrc.c │ └── meson.build ├── audioconvert │ ├── gstaudioconvert.c │ ├── gstaudioconvert.h │ ├── meson.build │ └── plugin.c ├── audiomixer │ ├── gstaudiointerleave.c │ ├── gstaudiointerleave.h │ ├── gstaudiomixer.c │ ├── gstaudiomixer.h │ ├── gstaudiomixerelement.c │ ├── gstaudiomixerelements.h │ ├── gstaudiomixerorc-dist.c │ ├── gstaudiomixerorc-dist.h │ ├── gstaudiomixerorc.orc │ ├── gstaudiomixerplugin.c │ ├── gstliveadder.c │ └── meson.build ├── audiorate │ ├── gstaudiorate.c │ ├── gstaudiorate.h │ └── meson.build ├── audioresample │ ├── gstaudioresample.c │ ├── gstaudioresample.h │ └── meson.build ├── audiotestsrc │ ├── gstaudiotestsrc.c │ ├── gstaudiotestsrc.h │ └── meson.build ├── compositor │ ├── blend.c │ ├── blend.h │ ├── blendorc.h │ ├── compositor.c │ ├── compositor.h │ ├── compositororc-dist.c │ ├── compositororc-dist.h │ ├── compositororc.orc │ └── meson.build ├── encoding │ ├── gstencodebasebin.c │ ├── gstencodebasebin.h │ ├── gstencodebin.c │ ├── gstencodebin.h │ ├── gstencodebin2.c │ ├── gstencodebin2.h │ ├── gstencodingelements.c │ ├── gstencodingelements.h │ ├── gstsmartencoder.c │ ├── gstsmartencoder.h │ ├── gststreamcombiner.c │ ├── gststreamcombiner.h │ ├── gststreamcombinerpad.h │ ├── gststreamsplitter.c │ ├── gststreamsplitter.h │ ├── meson.build │ └── plugin.c ├── gio │ ├── gstgio.c │ ├── gstgiobasesink.c │ ├── gstgiobasesink.h │ ├── gstgiobasesrc.c │ ├── gstgiobasesrc.h │ ├── gstgioelement.c │ ├── gstgioelements.h │ ├── gstgiosink.c │ ├── gstgiosink.h │ ├── gstgiosrc.c │ ├── gstgiosrc.h │ ├── gstgiostreamsink.c │ ├── gstgiostreamsink.h │ ├── gstgiostreamsrc.c │ ├── gstgiostreamsrc.h │ └── meson.build ├── meson.build ├── overlaycomposition │ ├── gstoverlaycomposition.c │ ├── gstoverlaycomposition.h │ └── meson.build ├── pbtypes │ ├── gstpbtypes.c │ ├── gstpbtypes.h │ └── meson.build ├── playback │ ├── gstdecodebin2.c │ ├── gstdecodebin3-parse.c │ ├── gstdecodebin3.c │ ├── gstparsebin.c │ ├── gstplay-enum.c │ ├── gstplay-enum.h │ ├── gstplaybackelement.c │ ├── gstplaybackelements.h │ ├── gstplaybackplugin.c │ ├── gstplaybackutils.c │ ├── gstplaybackutils.h │ ├── gstplaybin2.c │ ├── gstplaybin3.c │ ├── gstplaysink.c │ ├── gstplaysink.h │ ├── gstplaysinkaudioconvert.c │ ├── gstplaysinkaudioconvert.h │ ├── gstplaysinkconvertbin.c │ ├── gstplaysinkconvertbin.h │ ├── gstplaysinkvideoconvert.c │ ├── gstplaysinkvideoconvert.h │ ├── gstrawcaps.h │ ├── gststreamsynchronizer.c │ ├── gststreamsynchronizer.h │ ├── gstsubtitleoverlay.c │ ├── gstsubtitleoverlay.h │ ├── gsturidecodebin.c │ ├── gsturidecodebin3.c │ ├── gsturisourcebin.c │ └── meson.build ├── rawparse │ ├── gstrawaudioparse.c │ ├── gstrawaudioparse.h │ ├── gstrawbaseparse.c │ ├── gstrawbaseparse.h │ ├── gstrawparseelements.h │ ├── gstrawvideoparse.c │ ├── gstrawvideoparse.h │ ├── gstunalignedaudioparse.c │ ├── gstunalignedaudioparse.h │ ├── gstunalignedvideoparse.c │ ├── gstunalignedvideoparse.h │ ├── meson.build │ ├── plugin.c │ ├── unalignedaudio.h │ └── unalignedvideo.h ├── subparse │ ├── gstssaparse.c │ ├── gstssaparse.h │ ├── gstsubparse.c │ ├── gstsubparse.h │ ├── gstsubparseelement.c │ ├── gstsubparseelements.h │ ├── gstsubparseplugin.c │ ├── meson.build │ ├── mpl2parse.c │ ├── mpl2parse.h │ ├── qttextparse.c │ ├── qttextparse.h │ ├── samiparse.c │ ├── samiparse.h │ ├── tmplayerparse.c │ └── tmplayerparse.h ├── tcp │ ├── README │ ├── gstmultifdsink.c │ ├── gstmultifdsink.h │ ├── gstmultihandlesink.c │ ├── gstmultihandlesink.h │ ├── gstmultisocketsink.c │ ├── gstmultisocketsink.h │ ├── gstsocketsrc.c │ ├── gstsocketsrc.h │ ├── gsttcpclientsink.c │ ├── gsttcpclientsink.h │ ├── gsttcpclientsrc.c │ ├── gsttcpclientsrc.h │ ├── gsttcpelements.c │ ├── gsttcpelements.h │ ├── gsttcpplugin.c │ ├── gsttcpserversink.c │ ├── gsttcpserversink.h │ ├── gsttcpserversrc.c │ ├── gsttcpserversrc.h │ ├── gsttcpsrcstats.c │ ├── gsttcpsrcstats.h │ └── meson.build ├── typefind │ ├── gsttypefindfunctions.c │ ├── gsttypefindfunctionsdata.c │ ├── gsttypefindfunctionsdata.h │ ├── gsttypefindfunctionsplugin.c │ ├── gsttypefindfunctionsplugin.h │ ├── gsttypefindfunctionsriff.c │ ├── gsttypefindfunctionsstartwith.c │ └── meson.build ├── videoconvert │ ├── gstvideoconvert.c │ ├── gstvideoconvert.h │ └── meson.build ├── videorate │ ├── gstvideorate.c │ ├── gstvideorate.h │ └── meson.build ├── videoscale │ ├── README │ ├── gstvideoscale.c │ ├── gstvideoscale.h │ └── meson.build ├── videotestsrc │ ├── generate_sine_table.c │ ├── gstvideotestsrc.c │ ├── gstvideotestsrc.h │ ├── gstvideotestsrcorc-dist.c │ ├── gstvideotestsrcorc-dist.h │ ├── gstvideotestsrcorc.orc │ ├── meson.build │ ├── videotestsrc.c │ └── videotestsrc.h └── volume │ ├── gstvolume.c │ ├── gstvolume.h │ ├── gstvolumeorc-dist.c │ ├── gstvolumeorc-dist.h │ ├── gstvolumeorc.orc │ └── meson.build ├── hooks └── pre-commit.hook ├── meson.build ├── meson_options.txt ├── po ├── LINGUAS ├── POTFILES ├── af.po ├── az.po ├── bg.po ├── ca.po ├── cs.po ├── da.po ├── de.po ├── el.po ├── en_GB.po ├── eo.po ├── es.po ├── eu.po ├── fi.po ├── fr.po ├── fur.po ├── gl.po ├── hr.po ├── hu.po ├── id.po ├── it.po ├── ja.po ├── lt.po ├── lv.po ├── meson.build ├── nb.po ├── nl.po ├── or.po ├── pl.po ├── pt_BR.po ├── ro.po ├── ru.po ├── sk.po ├── sl.po ├── sq.po ├── sr.po ├── sv.po ├── tr.po ├── uk.po ├── vi.po └── zh_CN.po ├── scripts ├── dist-translations.py ├── extract-release-date-from-doap-file.py ├── meson-pkg-config-file-fixup.py ├── meson.build └── update-orc-dist-files.py ├── subprojects ├── gl-headers.wrap └── graphene.wrap ├── sys ├── meson.build ├── ximage │ ├── meson.build │ ├── ximage.c │ ├── ximagepool.c │ ├── ximagepool.h │ ├── ximagesink.c │ └── ximagesink.h └── xvimage │ ├── meson.build │ ├── xvcontext.c │ ├── xvcontext.h │ ├── xvimage.c │ ├── xvimageallocator.c │ ├── xvimageallocator.h │ ├── xvimagepool.c │ ├── xvimagepool.h │ ├── xvimagesink.c │ └── xvimagesink.h ├── tests ├── check │ ├── elements │ │ ├── adder.c │ │ ├── appsink.c │ │ ├── appsrc.c │ │ ├── audioconvert.c │ │ ├── audiointerleave.c │ │ ├── audiomixer.c │ │ ├── audiorate.c │ │ ├── audioresample.c │ │ ├── audiotestsrc.c │ │ ├── compositor.c │ │ ├── decodebin.c │ │ ├── encodebin.c │ │ ├── glbin.c │ │ ├── glfilter.c │ │ ├── glimagesink.c │ │ ├── glmixer.c │ │ ├── glstereo.c │ │ ├── libvisual.c │ │ ├── multifdsink.c │ │ ├── multisocketsink.c │ │ ├── opus.c │ │ ├── overlaycomposition.c │ │ ├── playbin-complex.c │ │ ├── playbin.c │ │ ├── playsink.c │ │ ├── rawaudioparse.c │ │ ├── rawvideoparse.c │ │ ├── streamsynchronizer.c │ │ ├── subparse.c │ │ ├── textoverlay.c │ │ ├── urisourcebin.c │ │ ├── videoconvert.c │ │ ├── videorate.c │ │ ├── videoscale.c │ │ ├── videotestsrc.c │ │ ├── volume.c │ │ ├── vorbisdec.c │ │ └── vorbistag.c │ ├── generic │ │ ├── clock-selection.c │ │ └── states.c │ ├── gst-plugins-base.supp │ ├── gst │ │ └── typefindfunctions.c │ ├── libs │ │ ├── allocators.c │ │ ├── audio.c │ │ ├── audiocdsrc.c │ │ ├── audiodecoder.c │ │ ├── audioencoder.c │ │ ├── audiosink.c │ │ ├── baseaudiovisualizer.c │ │ ├── discoverer.c │ │ ├── fft.c │ │ ├── gstgl-public-headers.h │ │ ├── gstglapi.c │ │ ├── gstglcolorconvert.c │ │ ├── gstglcontext.c │ │ ├── gstglfeature.c │ │ ├── gstglformat.c │ │ ├── gstglheaders.c │ │ ├── gstglmatrix.c │ │ ├── gstglmemory.c │ │ ├── gstglquery.c │ │ ├── gstglshader.c │ │ ├── gstglsl.c │ │ ├── gstglslstage.c │ │ ├── gstglupload.c │ │ ├── gstlibscpp.cc │ │ ├── libsabi.c │ │ ├── mikey.c │ │ ├── navigation.c │ │ ├── pbutils.c │ │ ├── profile.c │ │ ├── rtp.c │ │ ├── rtpbasedepayload.c │ │ ├── rtpbasepayload.c │ │ ├── rtpdummyhdrextimpl.c │ │ ├── rtphdrext.c │ │ ├── rtpmeta.c │ │ ├── rtsp.c │ │ ├── rtspconnection.c │ │ ├── sdp.c │ │ ├── struct_aarch64.h │ │ ├── struct_arm.h │ │ ├── struct_i386.h │ │ ├── struct_i386_osx.h │ │ ├── struct_ppc32.h │ │ ├── struct_ppc64.h │ │ ├── struct_x86_64.h │ │ ├── tag.c │ │ ├── video.c │ │ ├── videoanc.c │ │ ├── videodecoder.c │ │ ├── videoencoder.c │ │ ├── videotimecode.c │ │ └── xmpwriter.c │ ├── meson.build │ └── pipelines │ │ ├── basetime.c │ │ ├── capsfilter-renegotiation.c │ │ ├── gio.c │ │ ├── gl-launch-lines.c │ │ ├── oggmux.c │ │ ├── simple-launch-lines.c │ │ ├── streamsynchronizer.c │ │ ├── tcp.c │ │ ├── theoraenc.c │ │ ├── vorbisdec.c │ │ └── vorbisenc.c ├── examples │ ├── app │ │ ├── appsink-src.c │ │ ├── appsink-src2.c │ │ ├── appsrc-ra.c │ │ ├── appsrc-seekable.c │ │ ├── appsrc-stream.c │ │ ├── appsrc-stream2.c │ │ ├── appsrc_ex.c │ │ └── meson.build │ ├── audio │ │ ├── audiomix.c │ │ ├── meson.build │ │ └── volume.c │ ├── compositor │ │ ├── crossfade.c │ │ ├── meson.build │ │ ├── mosaic.c │ │ └── signals.c │ ├── decodebin_next │ │ ├── decodebin3.c │ │ ├── meson.build │ │ ├── playbin-test.c │ │ └── uridecodebin3-select-all.c │ ├── device-provider │ │ ├── example-device-provider.c │ │ └── meson.build │ ├── dynamic │ │ ├── addstream.c │ │ ├── codec-select.c │ │ ├── meson.build │ │ ├── sprinkle.c │ │ ├── sprinkle2.c │ │ └── sprinkle3.c │ ├── encoding │ │ ├── encoding.c │ │ ├── gstcapslist.c │ │ ├── gstcapslist.h │ │ └── meson.build │ ├── fft │ │ ├── fftrange.c │ │ └── meson.build │ ├── gio │ │ ├── giosrc-mounting.c │ │ └── meson.build │ ├── gl │ │ ├── cocoa │ │ │ ├── cocoa-videooverlay.m │ │ │ └── meson.build │ │ ├── generic │ │ │ ├── README │ │ │ ├── cube │ │ │ │ ├── main.cpp │ │ │ │ └── meson.build │ │ │ ├── cubeyuv │ │ │ │ ├── main.cpp │ │ │ │ └── meson.build │ │ │ ├── doublecube │ │ │ │ ├── main.cpp │ │ │ │ └── meson.build │ │ │ ├── meson.build │ │ │ └── recordgraphic │ │ │ │ ├── main.cpp │ │ │ │ └── meson.build │ │ ├── gtk │ │ │ ├── 3dvideo │ │ │ │ ├── main.cpp │ │ │ │ ├── meson.build │ │ │ │ ├── mviewwidget.c │ │ │ │ └── mviewwidget.h │ │ │ ├── README │ │ │ ├── filternovideooverlay │ │ │ │ ├── main.cpp │ │ │ │ └── meson.build │ │ │ ├── filtervideooverlay │ │ │ │ ├── main.cpp │ │ │ │ └── meson.build │ │ │ ├── fxtest │ │ │ │ ├── fxtest.c │ │ │ │ ├── meson.build │ │ │ │ └── pixbufdrop.c │ │ │ ├── gstgtk.c │ │ │ ├── gstgtk.h │ │ │ ├── meson.build │ │ │ └── switchvideooverlay │ │ │ │ ├── main.cpp │ │ │ │ └── meson.build │ │ ├── meson.build │ │ ├── qt │ │ │ ├── README │ │ │ ├── gl-compat-defines.h │ │ │ ├── meson.build │ │ │ ├── mousevideooverlay │ │ │ │ ├── gstthread.cpp │ │ │ │ ├── gstthread.h │ │ │ │ ├── main.cpp │ │ │ │ ├── meson.build │ │ │ │ ├── mousevideooverlay.pri │ │ │ │ ├── mousevideooverlay.pro │ │ │ │ ├── pipeline.cpp │ │ │ │ ├── pipeline.h │ │ │ │ ├── qrenderer.cpp │ │ │ │ └── qrenderer.h │ │ │ ├── qglwidgetvideooverlay │ │ │ │ ├── gstthread.cpp │ │ │ │ ├── gstthread.h │ │ │ │ ├── main.cpp │ │ │ │ ├── meson.build │ │ │ │ ├── pipeline.cpp │ │ │ │ ├── pipeline.h │ │ │ │ ├── qglrenderer.cpp │ │ │ │ ├── qglrenderer.h │ │ │ │ ├── qglwidgetvideooverlay.pri │ │ │ │ └── qglwidgetvideooverlay.pro │ │ │ ├── qglwtextureshare │ │ │ │ ├── AsyncQueue.h │ │ │ │ ├── README │ │ │ │ ├── cocoa_utils.mm │ │ │ │ ├── gstthread.cpp │ │ │ │ ├── gstthread.h │ │ │ │ ├── main.cpp │ │ │ │ ├── meson.build │ │ │ │ ├── pipeline.cpp │ │ │ │ ├── pipeline.h │ │ │ │ ├── qglrenderer.cpp │ │ │ │ ├── qglrenderer.h │ │ │ │ └── qglwtextureshare.pro │ │ │ └── videooverlay │ │ │ │ ├── meson.build │ │ │ │ └── videooverlay.cpp │ │ └── sdl │ │ │ ├── meson.build │ │ │ ├── sdlshare.c │ │ │ └── sdlshare2.c │ ├── meson.build │ ├── overlay │ │ ├── gtk-videooverlay.c │ │ ├── meson.build │ │ ├── qt-videooverlay.cpp │ │ ├── qtgv-videooverlay.cpp │ │ ├── qtgv-videooverlay.h │ │ ├── win32-videooverlay-playbin.c │ │ └── win32-videooverlay.c │ ├── overlaycomposition │ │ ├── meson.build │ │ └── overlaycomposition.c │ ├── playback │ │ ├── meson.build │ │ └── playback-test.c │ ├── playrec │ │ ├── meson.build │ │ └── playrec.c │ ├── seek │ │ ├── instant-rate-change.c │ │ ├── jsseek.c │ │ ├── meson.build │ │ ├── scrubby.c │ │ ├── stepping.c │ │ └── stepping2.c │ └── snapshot │ │ ├── meson.build │ │ └── snapshot.c ├── files │ ├── 623663.mts │ ├── hls.m3u8 │ ├── license-uris │ ├── partialframe.mjpeg │ ├── test.mkv │ ├── test.mp3 │ └── theora-vorbis.ogg ├── icles │ ├── audio-trickplay.c │ ├── benchmark-appsink.c │ ├── benchmark-appsrc.c │ ├── benchmark-video-conversion.c │ ├── input-selector-test.c │ ├── meson.build │ ├── output-selector-test.c │ ├── playback │ │ ├── decodetest.c │ │ ├── test.c │ │ ├── test2.c │ │ ├── test3.c │ │ ├── test4.c │ │ ├── test5.c │ │ ├── test6.c │ │ └── test7.c │ ├── playbin-text.c │ ├── position-formats.c │ ├── stress-playbin.c │ ├── stress-videooverlay.c │ ├── test-box.c │ ├── test-colorkey.c │ ├── test-effect-switch.c │ ├── test-header-compile │ ├── test-overlay-blending.c │ ├── test-resample.c │ ├── test-reverseplay.c │ ├── test-scale.c │ ├── test-textoverlay.c │ └── test-videooverlay.c ├── meson.build └── validate │ ├── audiotestsrc │ ├── reverse.validatetest │ └── reverse │ │ └── flow-expectations │ │ └── log-asink-sink-expected │ ├── compositor │ └── renogotiate_failing_unsupported_src_format.validatetest │ ├── encodebin │ └── set-encoder-properties.validatetest │ ├── giosrc │ ├── read-growing-file.validatetest │ └── read-growing-file │ │ └── flow-expectations │ │ ├── log-filesink-sink-expected │ │ └── log-growing-file-sink-sink-expected │ ├── meson.build │ └── videorate │ ├── 10_to_1fps.validatetest │ ├── 10_to_1fps │ └── flow-expectations │ │ ├── log-videorate-sink-expected │ │ └── log-videorate-src-expected │ ├── change_rate_reverse_playback.validatetest │ ├── change_rate_reverse_playback │ └── flow-expectations │ │ ├── log-videorate-sink-expected │ │ └── log-videorate-src-expected │ ├── change_rate_while_playing.validatetest │ ├── change_rate_while_playing │ └── flow-expectations │ │ ├── log-videorate-sink-expected │ │ └── log-videorate-src-expected │ ├── check-rate-prop.meta │ ├── rate_0_5.validatetest │ ├── rate_0_5 │ └── flow-expectations │ │ ├── log-videorate-sink-expected │ │ └── log-videorate-src-expected │ ├── rate_0_5_with_decoder.validatetest │ ├── rate_0_5_with_decoder │ └── flow-expectations │ │ ├── log-videorate-sink-expected │ │ └── log-videorate-src-expected │ ├── rate_2_0.validatetest │ ├── rate_2_0 │ └── flow-expectations │ │ ├── log-videorate-sink-expected │ │ └── log-videorate-src-expected │ ├── rate_2_0_with_decoder.validatetest │ ├── rate_2_0_with_decoder │ └── flow-expectations │ │ ├── log-videorate-sink-expected │ │ └── log-videorate-src-expected │ ├── reverse.10_to_1fps.validatetest │ ├── reverse.10_to_1fps │ └── flow-expectations │ │ ├── log-videorate-sink-expected │ │ └── log-videorate-src-expected │ ├── reverse.10_to_30fps.validatetest │ ├── reverse.10_to_30fps │ └── flow-expectations │ │ ├── log-videorate-sink-expected │ │ └── log-videorate-src-expected │ ├── reverse.1_to_10fps.validatetest │ ├── reverse.1_to_10fps │ └── flow-expectations │ │ ├── log-videorate-sink-expected │ │ └── log-videorate-src-expected │ ├── reverse.30fps.validatetest │ ├── reverse.30fps │ └── flow-expectations │ │ ├── log-videorate-sink-expected │ │ └── log-videorate-src-expected │ ├── reverse.variable_to_10fps.validatetest │ ├── reverse.variable_to_10fps │ └── flow-expectations │ │ ├── log-videorate-sink-expected │ │ └── log-videorate-src-expected │ └── videorate-test.meta └── tools ├── gst-device-monitor-1.0.1 ├── gst-device-monitor.c ├── gst-discoverer-1.0.1 ├── gst-discoverer.c ├── gst-play-1.0.1 ├── gst-play-kb.c ├── gst-play-kb.h ├── gst-play.c └── meson.build /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | *.bak 3 | 4 | Build 5 | *.user 6 | *.suo 7 | *.ipch 8 | *.sdf 9 | *.opensdf 10 | *.DS_Store 11 | 12 | # Meson 13 | /build 14 | /_build 15 | /subprojects 16 | -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | include: "https://gitlab.freedesktop.org/gstreamer/gst-ci/raw/master/gitlab/ci_template.yml" 2 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | Erik Walthinsen 2 | Matt Howell 3 | Brent Bradburn 4 | Wim Taymans 5 | Richard Boulton 6 | Zaheer Abbas Merali 7 | David I. Lehn 8 | Chris Emerson 9 | Jens Thiele 10 | Thomas Nyberg 11 | Bastien Nocera 12 | Christian Fredrik Kalager Schaller 13 | Thomas Vander Stichele 14 | Andy Wingo 15 | Cameron Hutchison 16 | David Schleef 17 | Benjamin Otte 18 | Ronald Bultje 19 | Julien MOUTTE 20 | Jan Schmidt 21 | Arwed v. Merkatz 22 | Tim-Philipp Müller 23 | Mark Borgerding (kissfft, used in libgstfft) 24 | -------------------------------------------------------------------------------- /MAINTAINERS: -------------------------------------------------------------------------------- 1 | GStreamer is currently maintained by the consensus of a number 2 | of people, including, but not limited to: 3 | 4 | Jan Schmidt 5 | Wim Taymans 6 | David Schleef 7 | Tim-Philipp Müller 8 | Sebastian Dröge 9 | 10 | Maintainer-related issues should be addressed to: 11 | 12 | gstreamer-devel@lists.freedesktop.org 13 | -------------------------------------------------------------------------------- /docs/gst_api_version.in: -------------------------------------------------------------------------------- 1 | @GST_API_VERSION@ 2 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | short-description: GStreamer Base Plugins API reference. 3 | ... 4 | 5 | # GStreamer Base Plugins 6 | 7 | -------------------------------------------------------------------------------- /docs/libs/allocators/index.md: -------------------------------------------------------------------------------- 1 | # Allocators Library 2 | 3 | This library should be linked to by getting cflags and libs from 4 | gstreamer-plugins-base-{{ gst_api_version.md }}.pc and adding 5 | -lgstallocators-{{ gst_api_version.md }} to the library flags. 6 | -------------------------------------------------------------------------------- /docs/libs/allocators/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | -------------------------------------------------------------------------------- /docs/libs/app/index.md: -------------------------------------------------------------------------------- 1 | # App Library 2 | 3 | This library should be linked to by getting cflags and libs from 4 | `gstreamer-plugins-base-{{ gst_api_version.md }}pc` and adding 5 | -lgstapp-{{ gst_api_version.md }} to the library flags. 6 | 7 | To use it the functionality, insert an `appsrc` or `appsink` element 8 | into a pipeline and call the appropriate functions on the element. 9 | -------------------------------------------------------------------------------- /docs/libs/app/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | -------------------------------------------------------------------------------- /docs/libs/audio/index.md: -------------------------------------------------------------------------------- 1 | # Audio Library 2 | 3 | This library should be linked to by getting cflags and libs from 4 | `gstreamer-plugins-base-{{ gst_api_version.md }}.pc` and adding 5 | `-lgstaudio-{{ gst_api_version.md }}` to the library flags. 6 | 7 | -------------------------------------------------------------------------------- /docs/libs/audio/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | -------------------------------------------------------------------------------- /docs/libs/ext/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | -------------------------------------------------------------------------------- /docs/libs/fft/index.md: -------------------------------------------------------------------------------- 1 | # FFT Library 2 | 3 | The gstfft library is based on 4 | [kissfft](http://sourceforge.net/projects/kissfft) by Mark Borgerding. 5 | 6 | This library should be linked to by getting cflags and libs from 7 | `gstreamer-plugins-base-{{ gst_api_version.md }}.pc` and adding 8 | `-lgstfft-{{ gst_api_version.md }}` to the library flags. 9 | -------------------------------------------------------------------------------- /docs/libs/fft/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | -------------------------------------------------------------------------------- /docs/libs/gl-egl/index.md: -------------------------------------------------------------------------------- 1 | # GStreamer OpenGL Library - EGL 2 | 3 | This library should be linked to by getting cflags and libs from 4 | `gstreamer-gl-egl-{{ gst_api_version.md }}.pc`. 5 | -------------------------------------------------------------------------------- /docs/libs/gl-egl/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | -------------------------------------------------------------------------------- /docs/libs/gl-wayland/index.md: -------------------------------------------------------------------------------- 1 | # GStreamer OpenGL Library - Wayland 2 | 3 | This library should be linked to by getting cflags and libs from 4 | `gstreamer-gl-wayland-{{ gst_api_version.md }}.pc`. 5 | -------------------------------------------------------------------------------- /docs/libs/gl-wayland/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | -------------------------------------------------------------------------------- /docs/libs/gl-x11/index.md: -------------------------------------------------------------------------------- 1 | # GStreamer OpenGL Library - X11 2 | 3 | This library should be linked to by getting cflags and libs from 4 | `gstreamer-gl-x11-{{ gst_api_version.md }}.pc`. 5 | -------------------------------------------------------------------------------- /docs/libs/gl-x11/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | -------------------------------------------------------------------------------- /docs/libs/gl/index.md: -------------------------------------------------------------------------------- 1 | # GStreamer OpenGL Library 2 | 3 | This library should be linked to by getting cflags and libs from 4 | `gstreamer-gl-{{ gst_api_version.md }}.pc`. 5 | -------------------------------------------------------------------------------- /docs/libs/gl/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | -------------------------------------------------------------------------------- /docs/libs/pbutils/index.md: -------------------------------------------------------------------------------- 1 | # Base Utils Library 2 | 3 | This library should be linked to by getting cflags and libs from 4 | `gstreamer-plugins-base-{{ gst_api_version.md }}.pc` and adding 5 | `-lgstpbutils-{{ gst_api_version.md }}` to the library 6 | flags. 7 | 8 | -------------------------------------------------------------------------------- /docs/libs/pbutils/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | pbutils.h 3 | encoding-profile.h 4 | -------------------------------------------------------------------------------- /docs/libs/riff/index.md: -------------------------------------------------------------------------------- 1 | # Riff Media Library 2 | 3 | This library should be linked to by getting cflags and libs from 4 | `gstreamer-plugins-base-{{ gst_api_version.md }}.pc` and adding 5 | `-lgstriff-{{ gst_api_version.md }}` to the library flags. 6 | -------------------------------------------------------------------------------- /docs/libs/riff/sitemap.txt: -------------------------------------------------------------------------------- 1 | c-index 2 | -------------------------------------------------------------------------------- /docs/libs/rtp/index.md: -------------------------------------------------------------------------------- 1 | # RTP Library 2 | 3 | This library should be linked to by getting cflags and libs from 4 | `gstreamer-plugins-base-{{ gst_api_version.md }}.pc` and adding 5 | `-lgstrtp-{{ gst_api_version.md }}` to the library flags. 6 | -------------------------------------------------------------------------------- /docs/libs/rtp/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | -------------------------------------------------------------------------------- /docs/libs/rtsp/index.md: -------------------------------------------------------------------------------- 1 | # RTSP Library 2 | 3 | This library should be linked to by getting cflags and libs from 4 | `gstreamer-plugins-base-{{ gst_api_version.md }}.pc` and adding 5 | `-lgstrtsp-{{ gst_api_version.md }}` to the library flags. 6 | -------------------------------------------------------------------------------- /docs/libs/rtsp/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | -------------------------------------------------------------------------------- /docs/libs/sdp/index.md: -------------------------------------------------------------------------------- 1 | # SDP Library 2 | 3 | This library should be linked to by getting cflags and libs from 4 | `gstreamer-plugins-base-{{ gst_api_version.md }}.pc` and adding 5 | `-lgstsdp-{{ gst_api_version.md }}` to the library flags. 6 | 7 | -------------------------------------------------------------------------------- /docs/libs/sdp/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | -------------------------------------------------------------------------------- /docs/libs/tag/index.md: -------------------------------------------------------------------------------- 1 | # Tag Support Library 2 | 3 | This library should be linked to by getting cflags and libs from 4 | `gstreamer-plugins-base-{{ gst_api_version.md }}.pc` and adding 5 | `-lgsttag-{{ gst_api_version.md }}` to the library flags. 6 | 7 | -------------------------------------------------------------------------------- /docs/libs/tag/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | -------------------------------------------------------------------------------- /docs/libs/video/index.md: -------------------------------------------------------------------------------- 1 | # Video Library 2 | 3 | This library should be linked to by getting cflags and libs from 4 | `gstreamer-plugins-base-{{ gst_api_version.md }}.pc` and adding 5 | `-lgstvideo-{{ gst_api_version.md }}` to the library flags. 6 | -------------------------------------------------------------------------------- /docs/libs/video/sitemap.txt: -------------------------------------------------------------------------------- 1 | gi-index 2 | -------------------------------------------------------------------------------- /docs/plugins/all_index.md: -------------------------------------------------------------------------------- 1 | --- 2 | short-description: Plugins from gst-plugins-base 3 | ... 4 | 5 | # Plugins 6 | -------------------------------------------------------------------------------- /docs/plugins/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-plugins-base/ce937bcb21412d7b3539a2da0509cc96260562f8/docs/plugins/index.md -------------------------------------------------------------------------------- /docs/plugins/sitemap.txt: -------------------------------------------------------------------------------- 1 | gst-index 2 | -------------------------------------------------------------------------------- /docs/random/LICENSE: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) <1999> Erik Walthinsen 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | -------------------------------------------------------------------------------- /docs/sitemap.txt: -------------------------------------------------------------------------------- 1 | index.md 2 | gst-plugins-base-libs-doc.json 3 | gst-plugins-base-plugins-doc.json 4 | -------------------------------------------------------------------------------- /docs/version.in: -------------------------------------------------------------------------------- 1 | @GST_API_VERSION@ -------------------------------------------------------------------------------- /ext/alsa/gstalsaelements.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Huawei Technologies Co., Ltd. 3 | * @Author: Julian Bouzas 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the Free 17 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifndef __GST_ALSA_ELEMENTS_H__ 21 | #define __GST_ALSA_ELEMENTS_H__ 22 | 23 | #include 24 | 25 | G_BEGIN_DECLS 26 | 27 | G_GNUC_INTERNAL void alsa_element_init (GstPlugin * plugin); 28 | 29 | GST_ELEMENT_REGISTER_DECLARE (alsasrc); 30 | GST_ELEMENT_REGISTER_DECLARE (alsasink); 31 | GST_ELEMENT_REGISTER_DECLARE (alsamidisrc); 32 | 33 | GST_DEVICE_PROVIDER_REGISTER_DECLARE(alsadeviceprovider); 34 | 35 | G_END_DECLS 36 | 37 | #endif /* __GST_ALSA_ELEMENTS_H__ */ 38 | -------------------------------------------------------------------------------- /ext/alsa/meson.build: -------------------------------------------------------------------------------- 1 | alsa_sources = [ 2 | 'gstalsa.c', 3 | 'gstalsadeviceprovider.c', 4 | 'gstalsamidisrc.c', 5 | 'gstalsaelement.c', 6 | 'gstalsaplugin.c', 7 | 'gstalsasink.c', 8 | 'gstalsasrc.c', 9 | ] 10 | 11 | alsa_dep = dependency('alsa', version : '>=0.9.1', required : get_option('alsa')) 12 | 13 | if alsa_dep.found() 14 | gstalsa = library('gstalsa', 15 | alsa_sources, 16 | c_args : gst_plugins_base_args, 17 | include_directories: [configinc, libsinc], 18 | dependencies : glib_deps + [alsa_dep, audio_dep, tag_dep, gst_dep, gst_base_dep], 19 | install : true, 20 | install_dir : plugins_install_dir, 21 | ) 22 | pkgconfig.generate(gstalsa, install_dir : plugins_pkgconfig_install_dir) 23 | plugins += [gstalsa] 24 | endif 25 | -------------------------------------------------------------------------------- /ext/gl/effects/gstgleffectbulge.c: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2008 Filippo Argiolas 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | #ifdef HAVE_CONFIG_H 21 | #include "config.h" 22 | #endif 23 | 24 | #include "../gstgleffects.h" 25 | 26 | void 27 | gst_gl_effects_bulge (GstGLEffects * effects) 28 | { 29 | GstGLFilter *filter = GST_GL_FILTER (effects); 30 | GstGLShader *shader; 31 | 32 | shader = gst_gl_effects_get_fragment_shader (effects, "bulge", 33 | bulge_fragment_source_gles2); 34 | gst_gl_filter_render_to_target_with_shader (filter, effects->intexture, 35 | effects->outtexture, shader); 36 | } 37 | -------------------------------------------------------------------------------- /ext/gl/effects/gstgleffectfisheye.c: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2008 Filippo Argiolas 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | #ifdef HAVE_CONFIG_H 21 | #include "config.h" 22 | #endif 23 | 24 | #include "../gstgleffects.h" 25 | 26 | void 27 | gst_gl_effects_fisheye (GstGLEffects * effects) 28 | { 29 | GstGLFilter *filter = GST_GL_FILTER (effects); 30 | GstGLShader *shader; 31 | 32 | shader = gst_gl_effects_get_fragment_shader (effects, "fisheye", 33 | fisheye_fragment_source_gles2); 34 | gst_gl_filter_render_to_target_with_shader (filter, effects->intexture, 35 | effects->outtexture, shader); 36 | } 37 | -------------------------------------------------------------------------------- /ext/gl/effects/gstgleffectlumatocurve.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2008 Filippo Argiolas 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef __GST_GL_LUMA_TO_CURVE_H__ 22 | #define __GST_GL_LUMA_TO_CURVE_H__ 23 | 24 | #include "gstgleffectscurves.h" 25 | 26 | G_BEGIN_DECLS 27 | 28 | void gst_gl_effects_luma_to_curve (GstGLEffects *effects, 29 | const GstGLEffectsCurve *curve, 30 | gint curve_index, 31 | GstGLMemory *in_tex, 32 | GstGLMemory *out_tex); 33 | G_END_DECLS 34 | 35 | #endif /* __GST_GL_LUMA_TO_CURVE_H__ */ 36 | -------------------------------------------------------------------------------- /ext/gl/effects/gstgleffectmirror.c: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2008 Filippo Argiolas 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | #ifdef HAVE_CONFIG_H 21 | #include "config.h" 22 | #endif 23 | 24 | #include "../gstgleffects.h" 25 | 26 | void 27 | gst_gl_effects_mirror (GstGLEffects * effects) 28 | { 29 | GstGLFilter *filter = GST_GL_FILTER (effects); 30 | GstGLShader *shader; 31 | 32 | shader = gst_gl_effects_get_fragment_shader (effects, "mirror", 33 | mirror_fragment_source_gles2); 34 | gst_gl_filter_render_to_target_with_shader (filter, effects->intexture, 35 | effects->outtexture, shader); 36 | } 37 | -------------------------------------------------------------------------------- /ext/gl/effects/gstgleffectsin.c: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2008 Filippo Argiolas 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | #ifdef HAVE_CONFIG_H 21 | #include "config.h" 22 | #endif 23 | 24 | #include "../gstgleffects.h" 25 | 26 | void 27 | gst_gl_effects_sin (GstGLEffects * effects) 28 | { 29 | GstGLFilter *filter = GST_GL_FILTER (effects); 30 | GstGLShader *shader; 31 | 32 | shader = gst_gl_effects_get_fragment_shader (effects, "sin", 33 | sin_fragment_source_gles2); 34 | gst_gl_filter_render_to_target_with_shader (filter, effects->intexture, 35 | effects->outtexture, shader); 36 | } 37 | -------------------------------------------------------------------------------- /ext/gl/effects/gstgleffectsquare.c: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2008 Filippo Argiolas 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | #ifdef HAVE_CONFIG_H 21 | #include "config.h" 22 | #endif 23 | 24 | #include "../gstgleffects.h" 25 | 26 | void 27 | gst_gl_effects_square (GstGLEffects * effects) 28 | { 29 | GstGLFilter *filter = GST_GL_FILTER (effects); 30 | GstGLShader *shader; 31 | 32 | shader = gst_gl_effects_get_fragment_shader (effects, "square", 33 | square_fragment_source_gles2); 34 | gst_gl_filter_render_to_target_with_shader (filter, effects->intexture, 35 | effects->outtexture, shader); 36 | } 37 | -------------------------------------------------------------------------------- /ext/gl/effects/gstgleffectsqueeze.c: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2008 Filippo Argiolas 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | #ifdef HAVE_CONFIG_H 21 | #include "config.h" 22 | #endif 23 | 24 | #include "../gstgleffects.h" 25 | 26 | void 27 | gst_gl_effects_squeeze (GstGLEffects * effects) 28 | { 29 | GstGLFilter *filter = GST_GL_FILTER (effects); 30 | GstGLShader *shader; 31 | 32 | shader = gst_gl_effects_get_fragment_shader (effects, "squeeze", 33 | squeeze_fragment_source_gles2); 34 | gst_gl_filter_render_to_target_with_shader (filter, effects->intexture, 35 | effects->outtexture, shader); 36 | } 37 | -------------------------------------------------------------------------------- /ext/gl/effects/gstgleffectstretch.c: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2008 Filippo Argiolas 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | #ifdef HAVE_CONFIG_H 21 | #include "config.h" 22 | #endif 23 | 24 | #include "../gstgleffects.h" 25 | 26 | void 27 | gst_gl_effects_stretch (GstGLEffects * effects) 28 | { 29 | GstGLFilter *filter = GST_GL_FILTER (effects); 30 | GstGLShader *shader; 31 | 32 | shader = gst_gl_effects_get_fragment_shader (effects, "stretch", 33 | stretch_fragment_source_gles2); 34 | gst_gl_filter_render_to_target_with_shader (filter, effects->intexture, 35 | effects->outtexture, shader); 36 | } 37 | -------------------------------------------------------------------------------- /ext/gl/effects/gstgleffecttunnel.c: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2008 Filippo Argiolas 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | #ifdef HAVE_CONFIG_H 21 | #include "config.h" 22 | #endif 23 | 24 | #include "../gstgleffects.h" 25 | 26 | void 27 | gst_gl_effects_tunnel (GstGLEffects * effects) 28 | { 29 | GstGLFilter *filter = GST_GL_FILTER (effects); 30 | GstGLShader *shader; 31 | 32 | shader = gst_gl_effects_get_fragment_shader (effects, "tunnel", 33 | tunnel_fragment_source_gles2); 34 | gst_gl_filter_render_to_target_with_shader (filter, effects->intexture, 35 | effects->outtexture, shader); 36 | } 37 | -------------------------------------------------------------------------------- /ext/gl/effects/gstgleffecttwirl.c: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2008 Filippo Argiolas 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | #ifdef HAVE_CONFIG_H 21 | #include "config.h" 22 | #endif 23 | 24 | #include "../gstgleffects.h" 25 | 26 | void 27 | gst_gl_effects_twirl (GstGLEffects * effects) 28 | { 29 | GstGLFilter *filter = GST_GL_FILTER (effects); 30 | GstGLShader *shader; 31 | 32 | shader = gst_gl_effects_get_fragment_shader (effects, "twirl", 33 | twirl_fragment_source_gles2); 34 | gst_gl_filter_render_to_target_with_shader (filter, effects->intexture, 35 | effects->outtexture, shader); 36 | } 37 | -------------------------------------------------------------------------------- /ext/libvisual/meson.build: -------------------------------------------------------------------------------- 1 | libvisual_sources = [ 2 | 'visual.c', 3 | 'plugin.c', 4 | ] 5 | 6 | libvisual_dep = dependency('libvisual-0.4', version : '>= 0.4.0', 7 | required : get_option('libvisual')) 8 | if libvisual_dep.found() 9 | core_conf.set_quoted('LIBVISUAL_PLUGINSBASEDIR', 10 | libvisual_dep.get_pkgconfig_variable('pluginsbasedir')) 11 | 12 | gstlibvisual = library('gstlibvisual', 13 | libvisual_sources, 14 | c_args : gst_plugins_base_args, 15 | include_directories: [configinc, libsinc], 16 | dependencies : glib_deps + [libvisual_dep, audio_dep, video_dep, pbutils_dep, gst_dep, gst_base_dep], 17 | install : true, 18 | install_dir : plugins_install_dir, 19 | ) 20 | pkgconfig.generate(gstlibvisual, install_dir : plugins_pkgconfig_install_dir) 21 | plugins += [gstlibvisual] 22 | endif 23 | -------------------------------------------------------------------------------- /ext/meson.build: -------------------------------------------------------------------------------- 1 | subdir('alsa') 2 | subdir('cdparanoia') 3 | subdir('gl') 4 | subdir('libvisual') 5 | subdir('ogg') 6 | subdir('opus') 7 | subdir('pango') 8 | subdir('theora') 9 | subdir('vorbis') 10 | -------------------------------------------------------------------------------- /ext/ogg/gstoggelements.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2020 Huawei Technologies Co., Ltd. 3 | * @Author: Stéphane Cerveau 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef __GST_OGG_ELEMENT_H__ 22 | #define __GST_OGG_ELEMENT_H__ 23 | 24 | #include 25 | 26 | GST_ELEMENT_REGISTER_DECLARE (oggdemux); 27 | GST_ELEMENT_REGISTER_DECLARE (oggmux); 28 | GST_ELEMENT_REGISTER_DECLARE (ogmaudioparse); 29 | GST_ELEMENT_REGISTER_DECLARE (ogmvideoparse); 30 | GST_ELEMENT_REGISTER_DECLARE (ogmtextparse); 31 | GST_ELEMENT_REGISTER_DECLARE (oggparse); 32 | GST_ELEMENT_REGISTER_DECLARE (oggaviparse); 33 | 34 | #endif /* __GST_OGG_ELEMENT_H__ */ 35 | -------------------------------------------------------------------------------- /ext/ogg/meson.build: -------------------------------------------------------------------------------- 1 | ogg_sources = [ 2 | 'dirac_parse.c', 3 | 'gstoggaviparse.c', 4 | 'gstoggplugin.c', 5 | 'gstoggdemux.c', 6 | 'gstoggmux.c', 7 | 'gstoggparse.c', 8 | 'gstoggstream.c', 9 | 'gstogmparse.c', 10 | 'vorbis_parse.c', 11 | ] 12 | 13 | ogg_dep = dependency('ogg', version : '>=1.0', required : get_option('ogg')) 14 | core_conf.set('HAVE_OGG', ogg_dep.found()) 15 | 16 | if ogg_dep.found() 17 | gstogg = library('gstogg', 18 | ogg_sources, 19 | c_args : gst_plugins_base_args, 20 | link_args : noseh_link_args, 21 | include_directories: [configinc, libsinc], 22 | dependencies : glib_deps + [ogg_dep, audio_dep, pbutils_dep, tag_dep, riff_dep, gst_dep, gst_base_dep], 23 | install : true, 24 | install_dir : plugins_install_dir, 25 | ) 26 | pkgconfig.generate(gstogg, install_dir : plugins_pkgconfig_install_dir) 27 | plugins += [gstogg] 28 | endif 29 | -------------------------------------------------------------------------------- /ext/ogg/vorbis_parse.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2004 Wim Taymans 3 | * 4 | * gstoggdemux.c: ogg stream demuxer 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_VORBIS_PARSE_H__ 23 | #define __GST_VORBIS_PARSE_H__ 24 | 25 | #include 26 | 27 | G_GNUC_INTERNAL 28 | void gst_parse_vorbis_header_packet (GstOggStream * pad, ogg_packet * packet); 29 | G_GNUC_INTERNAL 30 | void gst_parse_vorbis_setup_packet (GstOggStream * pad, ogg_packet * op); 31 | 32 | #endif /* __GST_VORBIS_PARSE_H__ */ 33 | -------------------------------------------------------------------------------- /ext/opus/gstopus.c: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) <1999> Erik Walthinsen 3 | * Copyright (C) <2008> Sebastian Dröge 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | #ifdef HAVE_CONFIG_H 21 | #include 22 | #endif 23 | 24 | #include "gstopuselements.h" 25 | 26 | static gboolean 27 | plugin_init (GstPlugin * plugin) 28 | { 29 | gboolean ret = FALSE; 30 | 31 | ret |= GST_ELEMENT_REGISTER (opusenc, plugin); 32 | ret |= GST_ELEMENT_REGISTER (opusdec, plugin); 33 | 34 | return ret; 35 | } 36 | 37 | GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, 38 | GST_VERSION_MINOR, 39 | opus, 40 | "OPUS plugin library", 41 | plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) 42 | -------------------------------------------------------------------------------- /ext/opus/gstopuscommon.h: -------------------------------------------------------------------------------- 1 | /* GStreamer Opus Encoder 2 | * Copyright (C) 2009 Sebastian Dröge 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | 21 | #ifndef __GST_OPUS_COMMON_H__ 22 | #define __GST_OPUS_COMMON_H__ 23 | 24 | #include 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | extern const GstAudioChannelPosition gst_opus_channel_positions[][8]; 30 | extern const char *gst_opus_channel_names[]; 31 | extern void gst_opus_common_log_channel_mapping_table (GstElement *element, 32 | GstDebugCategory * category, const char *msg, 33 | int n_channels, const guint8 *table); 34 | 35 | G_END_DECLS 36 | 37 | #endif /* __GST_OPUS_COMMON_H__ */ 38 | -------------------------------------------------------------------------------- /ext/opus/gstopuselement.c: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) <1999> Erik Walthinsen 3 | * Copyright (C) <2008> Sebastian Dröge 4 | * Copyright (C) 2020 Huawei Technologies Co., Ltd. 5 | * @Author: Julian Bouzas 6 | * 7 | * This library is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Library General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2 of the License, or (at your option) any later version. 11 | * 12 | * This library is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Library General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Library General Public 18 | * License along with this library; if not, write to the 19 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 20 | * Boston, MA 02110-1301, USA. 21 | */ 22 | #ifdef HAVE_CONFIG_H 23 | #include 24 | #endif 25 | 26 | #include "gstopuselements.h" 27 | 28 | #include 29 | 30 | void 31 | opus_element_init (GstPlugin * plugin) 32 | { 33 | static gsize res = FALSE; 34 | 35 | if (g_once_init_enter (&res)) { 36 | gst_tag_register_musicbrainz_tags (); 37 | g_once_init_leave (&res, TRUE); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /ext/opus/gstopuselements.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) <1999> Erik Walthinsen 3 | * Copyright (C) <2008> Sebastian Dröge 4 | * Copyright (C) 2020 Huawei Technologies Co., Ltd. 5 | * @Author: Julian Bouzas 6 | * 7 | * This library is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Library General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2 of the License, or (at your option) any later version. 11 | * 12 | * This library is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Library General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Library General Public 18 | * License along with this library; if not, write to the Free 19 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_OPUS_ELEMENTS_H__ 23 | #define __GST_OPUS_ELEMENTS_H__ 24 | 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | 30 | G_GNUC_INTERNAL void opus_element_init (GstPlugin * plugin); 31 | 32 | GST_ELEMENT_REGISTER_DECLARE (opusenc); 33 | GST_ELEMENT_REGISTER_DECLARE (opusdec); 34 | 35 | G_END_DECLS 36 | 37 | #endif /* __GST_OPUS_ELEMENTS_H__ */ 38 | -------------------------------------------------------------------------------- /ext/opus/gstopusheader.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) <1999> Erik Walthinsen 3 | * Copyright (C) <2008> Sebastian Dröge 4 | * Copyright (C) <2011-2012> Vincent Penquerc'h 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_OPUS_HEADER_H__ 23 | #define __GST_OPUS_HEADER_H__ 24 | 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | extern gboolean gst_opus_header_is_header (GstBuffer * buf, 30 | const char *magic, guint magic_size); 31 | extern gboolean gst_opus_header_is_id_header (GstBuffer * buf); 32 | extern gboolean gst_opus_header_is_comment_header (GstBuffer * buf); 33 | 34 | 35 | G_END_DECLS 36 | 37 | #endif /* __GST_OPUS_HEADER_H__ */ 38 | -------------------------------------------------------------------------------- /ext/opus/meson.build: -------------------------------------------------------------------------------- 1 | opus_sources = [ 2 | 'gstopus.c', 3 | 'gstopuselement.c', 4 | 'gstopuscommon.c', 5 | 'gstopusdec.c', 6 | 'gstopusenc.c', 7 | 'gstopusheader.c', 8 | ] 9 | 10 | opus_dep = dependency('opus', version: '>= 0.9.4', required: get_option('opus'), 11 | fallback: ['opus', 'opus_dep'], default_options: ['docs=disabled']) 12 | 13 | if opus_dep.found() 14 | gstopus = library('gstopus', 15 | opus_sources, 16 | c_args : gst_plugins_base_args, 17 | link_args : noseh_link_args, 18 | include_directories: [configinc, libsinc], 19 | dependencies : glib_deps + [pbutils_dep, tag_dep, audio_dep, gst_dep, gst_base_dep, opus_dep, libm], 20 | install : true, 21 | install_dir : plugins_install_dir, 22 | ) 23 | pkgconfig.generate(gstopus, install_dir : plugins_pkgconfig_install_dir) 24 | plugins += [gstopus] 25 | endif 26 | -------------------------------------------------------------------------------- /ext/pango/meson.build: -------------------------------------------------------------------------------- 1 | pango_sources = [ 2 | 'gstpangoelement.c', 3 | 'gstpangoplugin.c', 4 | 'gstbasetextoverlay.c', 5 | 'gstclockoverlay.c', 6 | 'gsttextoverlay.c', 7 | 'gsttextrender.c', 8 | 'gsttimeoverlay.c', 9 | ] 10 | 11 | pango_dep = dependency('pangocairo', version : '>=1.22.0', required : get_option('pango'), 12 | fallback: ['pango', 'libpangocairo_dep'], 13 | default_options: ['cairo=enabled']) 14 | 15 | if pango_dep.found() 16 | gstpango = library('gstpango', 17 | pango_sources, 18 | c_args : gst_plugins_base_args, 19 | link_args : noseh_link_args, 20 | include_directories: [configinc, libsinc], 21 | dependencies : glib_deps + [pango_dep, video_dep, gst_dep, gst_base_dep, libm], 22 | install : true, 23 | install_dir : plugins_install_dir, 24 | ) 25 | pkgconfig.generate(gstpango, install_dir : plugins_pkgconfig_install_dir) 26 | plugins += [gstpango] 27 | endif 28 | -------------------------------------------------------------------------------- /ext/theora/meson.build: -------------------------------------------------------------------------------- 1 | theora_sources = [ 2 | 'gsttheora.c', 3 | 'gsttheoraparse.c', 4 | ] 5 | 6 | theoradec_dep = dependency('theoradec', version : '>=1.1', required : get_option('theora')) 7 | theoraenc_dep = dependency('theoraenc', version : '>=1.1', required : get_option('theora')) 8 | theora_deps = [] 9 | 10 | if theoradec_dep.found() or theoraenc_dep.found() 11 | if theoradec_dep.found() 12 | theora_sources += [ 'gsttheoradec.c' ] 13 | theora_deps += theoradec_dep 14 | endif 15 | if theoraenc_dep.found() 16 | theora_sources += [ 'gsttheoraenc.c' ] 17 | theora_deps += theoraenc_dep 18 | endif 19 | gsttheora = library('gsttheora', 20 | theora_sources, 21 | c_args : gst_plugins_base_args, 22 | link_args : noseh_link_args, 23 | include_directories: [configinc, libsinc], 24 | dependencies : theora_deps + glib_deps + [video_dep, tag_dep, gst_dep, gst_base_dep], 25 | install : true, 26 | install_dir : plugins_install_dir, 27 | ) 28 | pkgconfig.generate(gsttheora, install_dir : plugins_pkgconfig_install_dir) 29 | plugins += [gsttheora] 30 | endif 31 | -------------------------------------------------------------------------------- /ext/vorbis/README: -------------------------------------------------------------------------------- 1 | oggvorbisenc : encodes to vorbis inside an ogg stream. This is not the 2 | GStreamer way of doing things and should be removed for 3 | 0.9. It is still called "vorbisenc" for backward compatibility 4 | reasons. It also takes integer audio as input. 5 | vorbisenc : Encodes to a raw vorbis stream and should be used together 6 | with an ogg muxer such as "oggmux" it is called "rawvorbisenc". 7 | It also takes raw float samples as input. 8 | 9 | TODO for 0.9: 10 | 11 | - remove oggvorbisenc.c and oggvorbisenc.h 12 | - remove references to oggvorbisenc.[ch] in the Makefile and in vorbis.c 13 | - remove the element vorbisenc. 14 | - rename the element rawvorbisenc to vorbisenc. 15 | 16 | 17 | -------------------------------------------------------------------------------- /ext/vorbis/gstivorbisdec.c: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) <1999> Erik Walthinsen 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifdef HAVE_CONFIG_H 21 | #include "config.h" 22 | #endif 23 | 24 | #include "gstvorbiselements.h" 25 | 26 | static gboolean 27 | plugin_init (GstPlugin * plugin) 28 | { 29 | return GST_ELEMENT_REGISTER (ivorbisdec, plugin); 30 | } 31 | 32 | GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, 33 | GST_VERSION_MINOR, 34 | ivorbisdec, 35 | "Vorbis Tremor decoder", 36 | plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) 37 | -------------------------------------------------------------------------------- /ext/vorbis/gstvorbiscommon.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2009 Sebastian Dröge 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifndef __GST_VORBIS_COMMON_H__ 21 | #define __GST_VORBIS_COMMON_H__ 22 | 23 | #include 24 | #include 25 | 26 | extern const GstAudioChannelPosition gst_vorbis_channel_positions[][8]; 27 | extern const GstAudioChannelPosition gst_vorbis_default_channel_positions[][8]; 28 | 29 | #ifndef USE_TREMOLO 30 | extern const gint gst_vorbis_reorder_map[][8]; 31 | #endif 32 | 33 | #endif /* __GST_VORBIS_COMMON_H__ */ 34 | -------------------------------------------------------------------------------- /ext/vorbis/gstvorbiselement.c: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) <1999> Erik Walthinsen 3 | * Copyright (C) 2020 Huawei Technologies Co., Ltd. 4 | * @Author: Stéphane Cerveau 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifdef HAVE_CONFIG_H 23 | #include "config.h" 24 | #endif 25 | 26 | #include "gstvorbiselements.h" 27 | #include "gst/tag/tag.h" 28 | 29 | 30 | void 31 | vorbis_element_init (GstPlugin * plugin) 32 | { 33 | static gsize res = FALSE; 34 | 35 | if (g_once_init_enter (&res)) { 36 | gst_tag_register_musicbrainz_tags (); 37 | 38 | g_once_init_leave (&res, TRUE); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /ext/vorbis/gstvorbiselements.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) <1999> Erik Walthinsen 3 | * Copyright (C) 2020 Huawei Technologies Co., Ltd. 4 | * @Author: Stéphane Cerveau 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the Free 18 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef __GST_VORBIS_ELEMENTS_H__ 22 | #define __GST_VORBIS_ELEMENTS_H__ 23 | 24 | #include 25 | 26 | G_BEGIN_DECLS 27 | 28 | G_GNUC_INTERNAL void vorbis_element_init (GstPlugin * plugin); 29 | 30 | GST_ELEMENT_REGISTER_DECLARE (vorbisenc); 31 | GST_ELEMENT_REGISTER_DECLARE (vorbisdec); 32 | GST_ELEMENT_REGISTER_DECLARE (vorbisparse); 33 | GST_ELEMENT_REGISTER_DECLARE (vorbistag); 34 | GST_ELEMENT_REGISTER_DECLARE (ivorbisdec); 35 | 36 | G_END_DECLS 37 | 38 | #endif /* __GST_VORBIS_ELEMENTS_H__ */ 39 | -------------------------------------------------------------------------------- /gst-libs/gst/allocators/allocators-prelude.h: -------------------------------------------------------------------------------- 1 | /* GStreamer Allocators Library 2 | * Copyright (C) 2018 GStreamer developers 3 | * 4 | * allocators-prelude.h: prelude include header for gst-allocators library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_ALLOCATORS_PRELUDE_H__ 23 | #define __GST_ALLOCATORS_PRELUDE_H__ 24 | 25 | #include 26 | 27 | #ifdef BUILDING_GST_ALLOCATORS 28 | #define GST_ALLOCATORS_API GST_API_EXPORT /* from config.h */ 29 | #else 30 | #define GST_ALLOCATORS_API GST_API_IMPORT 31 | #endif 32 | 33 | #endif /* __GST_ALLOCATORS_PRELUDE_H__ */ 34 | -------------------------------------------------------------------------------- /gst-libs/gst/allocators/allocators.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2012 GStreamer developers 3 | * 4 | * allocators.h: single include header for gst-allocators library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_ALLOCATORS_H__ 23 | #define __GST_ALLOCATORS_H__ 24 | 25 | #include 26 | 27 | #include 28 | #include 29 | #include 30 | 31 | #endif /* __GST_ALLOCATORS_H__ */ 32 | 33 | -------------------------------------------------------------------------------- /gst-libs/gst/app/app-prelude.h: -------------------------------------------------------------------------------- 1 | /* GStreamer App Library 2 | * Copyright (C) 2018 GStreamer developers 3 | * 4 | * app-prelude.h: prelude include header for gst-app library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_APP_PRELUDE_H__ 23 | #define __GST_APP_PRELUDE_H__ 24 | 25 | #include 26 | 27 | #ifdef BUILDING_GST_APP 28 | #define GST_APP_API GST_API_EXPORT /* from config.h */ 29 | #else 30 | #define GST_APP_API GST_API_IMPORT 31 | #endif 32 | 33 | #endif /* __GST_APP_PRELUDE_H__ */ 34 | -------------------------------------------------------------------------------- /gst-libs/gst/app/app.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2012 GStreamer developers 3 | * 4 | * gstapp.h: single include header for gst-app library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_APP_H__ 23 | #define __GST_APP_H__ 24 | 25 | #include 26 | #include 27 | 28 | #endif /* __GST_APP_H__ */ 29 | -------------------------------------------------------------------------------- /gst-libs/gst/audio/TODO: -------------------------------------------------------------------------------- 1 | TODO 2 | ---- 3 | 4 | - audio base classes: 5 | - GstBaseAudioSink 6 | - parse caps into rinbuffer spec, also make sure surround sound 7 | is parsed correctly. 8 | - implement seek/query/convert 9 | - implement getrange scheduling 10 | - simple resampling 11 | - more accurate master/slave calibration handling 12 | - faster audio cutoff when going to PAUSED 13 | - resubmit samples from ringbuffer when doing PAUSED->PLAYING again 14 | - the ringbuffer should have a state where it is filling up the 15 | buffer before going to playing. 16 | -------------------------------------------------------------------------------- /gst-libs/gst/audio/audio-prelude.h: -------------------------------------------------------------------------------- 1 | /* GStreamer Audio Library 2 | * Copyright (C) 2018 GStreamer developers 3 | * 4 | * audio-prelude.h: prelude include header for gst-audio library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_AUDIO_PRELUDE_H__ 23 | #define __GST_AUDIO_PRELUDE_H__ 24 | 25 | #include 26 | 27 | #ifdef BUILDING_GST_AUDIO 28 | #define GST_AUDIO_API GST_API_EXPORT /* from config.h */ 29 | #else 30 | #define GST_AUDIO_API GST_API_IMPORT 31 | #endif 32 | 33 | #endif /* __GST_AUDIO_PRELUDE_H__ */ 34 | -------------------------------------------------------------------------------- /gst-libs/gst/audio/audio-resampler-x86-sse.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) <2016> Wim Taymans 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifndef AUDIO_RESAMPLER_X86_SSE_H 21 | #define AUDIO_RESAMPLER_X86_SSE_H 22 | 23 | #include "audio-resampler-macros.h" 24 | 25 | DECL_RESAMPLE_FUNC (gfloat, full, 1, sse); 26 | DECL_RESAMPLE_FUNC (gfloat, linear, 1, sse); 27 | DECL_RESAMPLE_FUNC (gfloat, cubic, 1, sse); 28 | 29 | void interpolate_gfloat_linear_sse (gpointer op, const gpointer ap, 30 | gint len, const gpointer icp, gint astride); 31 | 32 | void interpolate_gfloat_cubic_sse (gpointer op, const gpointer ap, 33 | gint len, const gpointer icp, gint astride); 34 | 35 | #endif /* AUDIO_RESAMPLER_X86_SSE_H */ 36 | -------------------------------------------------------------------------------- /gst-libs/gst/audio/audio-resampler-x86-sse41.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) <2016> Wim Taymans 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifndef AUDIO_RESAMPLER_X86_SSE41_H 21 | #define AUDIO_RESAMPLER_X86_SSE41_H 22 | 23 | #include "audio-resampler-macros.h" 24 | 25 | DECL_RESAMPLE_FUNC (gint32, full, 1, sse41); 26 | DECL_RESAMPLE_FUNC (gint32, linear, 1, sse41); 27 | DECL_RESAMPLE_FUNC (gint32, cubic, 1, sse41); 28 | 29 | #endif /* AUDIO_RESAMPLER_X86_SSE41_H */ 30 | -------------------------------------------------------------------------------- /gst-libs/gst/fft/fft-prelude.h: -------------------------------------------------------------------------------- 1 | /* GStreamer FFT Library 2 | * Copyright (C) 2018 GStreamer developers 3 | * 4 | * fft-prelude.h: prelude include header for gst-fft library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_FFT_PRELUDE_H__ 23 | #define __GST_FFT_PRELUDE_H__ 24 | 25 | #include 26 | 27 | #ifdef BUILDING_GST_FFT 28 | #define GST_FFT_API GST_API_EXPORT /* from config.h */ 29 | #else 30 | #define GST_FFT_API GST_API_IMPORT 31 | #endif 32 | 33 | #endif /* __GST_FFT_PRELUDE_H__ */ 34 | -------------------------------------------------------------------------------- /gst-libs/gst/fft/fft.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2012 GStreamer developers 3 | * 4 | * gstfft.h: single include header for gst-fft library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_FFT__H__ 23 | #define __GST_FFT__H__ 24 | 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | 31 | #endif /* __GST_FFT__H__ */ 32 | -------------------------------------------------------------------------------- /gst-libs/gst/fft/kiss_fftr_f32.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2003-2004, Mark Borgerding. All rights reserved. 3 | * This file is part of KISS FFT - https://github.com/mborgerding/kissfft 4 | * 5 | * SPDX-License-Identifier: BSD-3-Clause 6 | * See COPYING file for more information. 7 | */ 8 | 9 | #ifndef KISS_FTR_H 10 | #define KISS_FTR_H 11 | 12 | #include "kiss_fft_f32.h" 13 | #ifdef __cplusplus 14 | extern "C" { 15 | #endif 16 | 17 | 18 | /* 19 | 20 | Real optimized version can save about 45% cpu time vs. complex fft of a real seq. 21 | 22 | 23 | 24 | */ 25 | 26 | typedef struct kiss_fftr_f32_state *kiss_fftr_f32_cfg; 27 | 28 | 29 | kiss_fftr_f32_cfg kiss_fftr_f32_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem); 30 | /* 31 | nfft must be even 32 | 33 | If you don't care to allocate space, use mem = lenmem = NULL 34 | */ 35 | 36 | 37 | void kiss_fftr_f32(kiss_fftr_f32_cfg cfg,const kiss_fft_f32_scalar *timedata,kiss_fft_f32_cpx *freqdata); 38 | /* 39 | input timedata has nfft scalar points 40 | output freqdata has nfft/2+1 complex points 41 | */ 42 | 43 | void kiss_fftri_f32(kiss_fftr_f32_cfg cfg,const kiss_fft_f32_cpx *freqdata,kiss_fft_f32_scalar *timedata); 44 | /* 45 | input freqdata has nfft/2+1 complex points 46 | output timedata has nfft scalar points 47 | */ 48 | 49 | #define kiss_fftr_f32_free KISS_FFT_F32_FREE 50 | 51 | #ifdef __cplusplus 52 | } 53 | #endif 54 | #endif 55 | -------------------------------------------------------------------------------- /gst-libs/gst/fft/kiss_fftr_f64.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2003-2004, Mark Borgerding. All rights reserved. 3 | * This file is part of KISS FFT - https://github.com/mborgerding/kissfft 4 | * 5 | * SPDX-License-Identifier: BSD-3-Clause 6 | * See COPYING file for more information. 7 | */ 8 | 9 | #ifndef KISS_FTR_H 10 | #define KISS_FTR_H 11 | 12 | #include "kiss_fft_f64.h" 13 | #ifdef __cplusplus 14 | extern "C" { 15 | #endif 16 | 17 | 18 | /* 19 | 20 | Real optimized version can save about 45% cpu time vs. complex fft of a real seq. 21 | 22 | 23 | 24 | */ 25 | 26 | typedef struct kiss_fftr_f64_state *kiss_fftr_f64_cfg; 27 | 28 | 29 | kiss_fftr_f64_cfg kiss_fftr_f64_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem); 30 | /* 31 | nfft must be even 32 | 33 | If you don't care to allocate space, use mem = lenmem = NULL 34 | */ 35 | 36 | 37 | void kiss_fftr_f64(kiss_fftr_f64_cfg cfg,const kiss_fft_f64_scalar *timedata,kiss_fft_f64_cpx *freqdata); 38 | /* 39 | input timedata has nfft scalar points 40 | output freqdata has nfft/2+1 complex points 41 | */ 42 | 43 | void kiss_fftri_f64(kiss_fftr_f64_cfg cfg,const kiss_fft_f64_cpx *freqdata,kiss_fft_f64_scalar *timedata); 44 | /* 45 | input freqdata has nfft/2+1 complex points 46 | output timedata has nfft scalar points 47 | */ 48 | 49 | #define kiss_fftr_f64_free KISS_FFT_F64_FREE 50 | 51 | #ifdef __cplusplus 52 | } 53 | #endif 54 | #endif 55 | -------------------------------------------------------------------------------- /gst-libs/gst/fft/kiss_fftr_s16.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2003-2004, Mark Borgerding. All rights reserved. 3 | * This file is part of KISS FFT - https://github.com/mborgerding/kissfft 4 | * 5 | * SPDX-License-Identifier: BSD-3-Clause 6 | * See COPYING file for more information. 7 | */ 8 | 9 | #ifndef KISS_FTR_H 10 | #define KISS_FTR_H 11 | 12 | #include "kiss_fft_s16.h" 13 | #ifdef __cplusplus 14 | extern "C" { 15 | #endif 16 | 17 | 18 | /* 19 | 20 | Real optimized version can save about 45% cpu time vs. complex fft of a real seq. 21 | 22 | 23 | 24 | */ 25 | 26 | typedef struct kiss_fftr_s16_state *kiss_fftr_s16_cfg; 27 | 28 | 29 | kiss_fftr_s16_cfg kiss_fftr_s16_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem); 30 | /* 31 | nfft must be even 32 | 33 | If you don't care to allocate space, use mem = lenmem = NULL 34 | */ 35 | 36 | 37 | void kiss_fftr_s16(kiss_fftr_s16_cfg cfg,const kiss_fft_s16_scalar *timedata,kiss_fft_s16_cpx *freqdata); 38 | /* 39 | input timedata has nfft scalar points 40 | output freqdata has nfft/2+1 complex points 41 | */ 42 | 43 | void kiss_fftri_s16(kiss_fftr_s16_cfg cfg,const kiss_fft_s16_cpx *freqdata,kiss_fft_s16_scalar *timedata); 44 | /* 45 | input freqdata has nfft/2+1 complex points 46 | output timedata has nfft scalar points 47 | */ 48 | 49 | #define kiss_fftr_s16_free KISS_FFT_S16_FREE 50 | 51 | #ifdef __cplusplus 52 | } 53 | #endif 54 | #endif 55 | -------------------------------------------------------------------------------- /gst-libs/gst/fft/kiss_fftr_s32.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2003-2004, Mark Borgerding. All rights reserved. 3 | * This file is part of KISS FFT - https://github.com/mborgerding/kissfft 4 | * 5 | * SPDX-License-Identifier: BSD-3-Clause 6 | * See COPYING file for more information. 7 | */ 8 | 9 | #ifndef KISS_FTR_H 10 | #define KISS_FTR_H 11 | 12 | #include "kiss_fft_s32.h" 13 | #ifdef __cplusplus 14 | extern "C" { 15 | #endif 16 | 17 | 18 | /* 19 | 20 | Real optimized version can save about 45% cpu time vs. complex fft of a real seq. 21 | 22 | 23 | 24 | */ 25 | 26 | typedef struct kiss_fftr_s32_state *kiss_fftr_s32_cfg; 27 | 28 | 29 | kiss_fftr_s32_cfg kiss_fftr_s32_alloc(int nfft,int inverse_fft,void * mem, size_t * lenmem); 30 | /* 31 | nfft must be even 32 | 33 | If you don't care to allocate space, use mem = lenmem = NULL 34 | */ 35 | 36 | 37 | void kiss_fftr_s32(kiss_fftr_s32_cfg cfg,const kiss_fft_s32_scalar *timedata,kiss_fft_s32_cpx *freqdata); 38 | /* 39 | input timedata has nfft scalar points 40 | output freqdata has nfft/2+1 complex points 41 | */ 42 | 43 | void kiss_fftri_s32(kiss_fftr_s32_cfg cfg,const kiss_fft_s32_cpx *freqdata,kiss_fft_s32_scalar *timedata); 44 | /* 45 | input freqdata has nfft/2+1 complex points 46 | output timedata has nfft scalar points 47 | */ 48 | 49 | #define kiss_fftr_s32_free KISS_FFT_S32_FREE 50 | 51 | #ifdef __cplusplus 52 | } 53 | #endif 54 | #endif 55 | -------------------------------------------------------------------------------- /gst-libs/gst/fft/kiss_version: -------------------------------------------------------------------------------- 1 | Based on Kiss FFT version 1efe72041e00868c3c71eaf569343ee132a4fbb9 2 | https://github.com/mborgerding/kissfft 3 | 4 | Only changes are limitation to one data type for each version in 5 | kiss_fft.h and _kiss_fft_guts.h. 6 | -------------------------------------------------------------------------------- /gst-libs/gst/fft/meson.build: -------------------------------------------------------------------------------- 1 | fft_sources = [ 2 | 'gstfft.c', 3 | 'gstffts16.c', 4 | 'gstffts32.c', 5 | 'gstfftf32.c', 6 | 'gstfftf64.c', 7 | 'kiss_fft_s16.c', 8 | 'kiss_fft_s32.c', 9 | 'kiss_fft_f32.c', 10 | 'kiss_fft_f64.c', 11 | 'kiss_fftr_s16.c', 12 | 'kiss_fftr_s32.c', 13 | 'kiss_fftr_f32.c', 14 | 'kiss_fftr_f64.c' 15 | ] 16 | 17 | fft_headers = [ 18 | 'fft.h', 19 | 'fft-prelude.h', 20 | 'gstfftf32.h', 21 | 'gstfftf64.h', 22 | 'gstfft.h', 23 | 'gstffts16.h', 24 | 'gstffts32.h', 25 | ] 26 | install_headers(fft_headers, subdir : 'gstreamer-1.0/gst/fft/') 27 | 28 | gstfft = library('gstfft-@0@'.format(api_version), 29 | fft_sources, 30 | c_args : gst_plugins_base_args + ['-DBUILDING_GST_FFT'], 31 | include_directories: [configinc, libsinc], 32 | version : libversion, 33 | soversion : soversion, 34 | darwin_versions : osxversion, 35 | install : true, 36 | dependencies : [gst_dep, libm], 37 | ) 38 | 39 | pkgconfig.generate(gstfft, 40 | libraries : [gst_dep], 41 | variables : pkgconfig_variables, 42 | subdirs : pkgconfig_subdirs, 43 | name : 'gstreamer-fft-1.0', 44 | description : 'FFT implementation', 45 | ) 46 | 47 | fft_dep = declare_dependency(link_with: gstfft, 48 | include_directories : [libsinc], 49 | dependencies : [gst_dep]) 50 | 51 | meson.override_dependency('gstreamer-fft-1.0', fft_dep) 52 | -------------------------------------------------------------------------------- /gst-libs/gst/gl/egl/egl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2020 Matthew Waters 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef __GST_GL_EGL_H__ 22 | #define __GST_GL_EGL_H__ 23 | 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | 31 | #endif /* __GST_GL_EGL_H__ */ 32 | -------------------------------------------------------------------------------- /gst-libs/gst/gl/egl/gsteglimage_private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2020 Igalia S.L. 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef _GST_EGL_IMAGE_PRIVATE_H_ 22 | #define _GST_EGL_IMAGE_PRIVATE_H_ 23 | 24 | #include 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | G_GNUC_INTERNAL 30 | gboolean gst_egl_image_check_dmabuf_direct (GstGLContext * context, 31 | const GstVideoInfo * in_info, 32 | GstGLTextureTarget target); 33 | 34 | 35 | G_END_DECLS 36 | 37 | #endif /* _GST_EGL_IMAGE_PRIVATE_H_ */ 38 | -------------------------------------------------------------------------------- /gst-libs/gst/gl/gl-prelude.h: -------------------------------------------------------------------------------- 1 | /* GStreamer GL Library 2 | * Copyright (C) 2018 GStreamer developers 3 | * 4 | * gl-prelude.h: prelude include header for gst-gl library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_GL_PRELUDE_H__ 23 | #define __GST_GL_PRELUDE_H__ 24 | 25 | #include 26 | 27 | #ifdef BUILDING_GST_GL 28 | #define GST_GL_API GST_API_EXPORT /* from config.h */ 29 | #else 30 | #define GST_GL_API GST_API_IMPORT 31 | #endif 32 | 33 | #endif /* __GST_GL_PRELUDE_H__ */ 34 | -------------------------------------------------------------------------------- /gst-libs/gst/gl/glprototypes/all_functions.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2012 Matthew Waters 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #include "base.h" 22 | #include "blending.h" 23 | #include "eglimage.h" 24 | #include "fbo.h" 25 | #include "fixedfunction.h" 26 | #include "gles.h" 27 | #include "opengl.h" 28 | #include "shaders.h" 29 | #include "debug.h" 30 | #include "vao.h" 31 | #include "sync.h" 32 | #include "buffers.h" 33 | #include "query.h" 34 | #include "buffer_storage.h" 35 | -------------------------------------------------------------------------------- /gst-libs/gst/gl/gstglconfig.h.meson: -------------------------------------------------------------------------------- 1 | /* gstglconfig.h 2 | */ 3 | 4 | #ifndef __GST_GL_CONFIG_H__ 5 | #define __GST_GL_CONFIG_H__ 6 | 7 | #include 8 | 9 | G_BEGIN_DECLS 10 | 11 | 12 | #mesondefine GST_GL_HAVE_OPENGL 13 | #mesondefine GST_GL_HAVE_GLES2 14 | #mesondefine GST_GL_HAVE_GLES3 15 | #mesondefine GST_GL_HAVE_GLES3EXT3_H 16 | 17 | #mesondefine GST_GL_HAVE_WINDOW_X11 18 | #mesondefine GST_GL_HAVE_WINDOW_COCOA 19 | #mesondefine GST_GL_HAVE_WINDOW_WIN32 20 | #mesondefine GST_GL_HAVE_WINDOW_WINRT 21 | #mesondefine GST_GL_HAVE_WINDOW_WAYLAND 22 | #mesondefine GST_GL_HAVE_WINDOW_ANDROID 23 | #mesondefine GST_GL_HAVE_WINDOW_DISPMANX 24 | #mesondefine GST_GL_HAVE_WINDOW_EAGL 25 | #mesondefine GST_GL_HAVE_WINDOW_VIV_FB 26 | #mesondefine GST_GL_HAVE_WINDOW_GBM 27 | 28 | #mesondefine GST_GL_HAVE_PLATFORM_EGL 29 | #mesondefine GST_GL_HAVE_PLATFORM_GLX 30 | #mesondefine GST_GL_HAVE_PLATFORM_WGL 31 | #mesondefine GST_GL_HAVE_PLATFORM_CGL 32 | #mesondefine GST_GL_HAVE_PLATFORM_EAGL 33 | 34 | #mesondefine GST_GL_HAVE_DMABUF 35 | #mesondefine GST_GL_HAVE_VIV_DIRECTVIV 36 | 37 | #mesondefine GST_GL_HAVE_GLEGLIMAGEOES 38 | #mesondefine GST_GL_HAVE_GLCHAR 39 | #mesondefine GST_GL_HAVE_GLSIZEIPTR 40 | #mesondefine GST_GL_HAVE_GLINTPTR 41 | #mesondefine GST_GL_HAVE_GLSYNC 42 | #mesondefine GST_GL_HAVE_GLUINT64 43 | #mesondefine GST_GL_HAVE_GLINT64 44 | #mesondefine GST_GL_HAVE_EGLATTRIB 45 | #mesondefine GST_GL_HAVE_EGLUINT64KHR 46 | 47 | G_END_DECLS 48 | 49 | #endif /* __GST_GL_CONFIG_H__ */ 50 | -------------------------------------------------------------------------------- /gst-libs/gst/gl/gstglpixelformat.c: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2015 Matthew Waters 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifdef HAVE_CONFIG_H 22 | #include "config.h" 23 | #endif 24 | -------------------------------------------------------------------------------- /gst-libs/gst/gl/gstglutils_private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2017 Matthew Waters 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef __GST_GL_UTILS_PRIVATE_H__ 22 | #define __GST_GL_UTILS_PRIVATE_H__ 23 | 24 | #include 25 | 26 | G_BEGIN_DECLS 27 | 28 | G_GNUC_INTERNAL gboolean gst_gl_run_query (GstElement * element, GstQuery * query, GstPadDirection direction); 29 | G_GNUC_INTERNAL void gst_gl_get_affine_transformation_meta_as_ndc (GstVideoAffineTransformationMeta * meta, gfloat * matrix); 30 | G_GNUC_INTERNAL void gst_gl_set_affine_transformation_meta_from_ndc (GstVideoAffineTransformationMeta * meta, const gfloat * matrix); 31 | 32 | G_END_DECLS 33 | 34 | #endif /* __GST_GL_UTILS_H__ */ 35 | -------------------------------------------------------------------------------- /gst-libs/gst/gl/gstglwindow_private.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2012 Matthew Waters 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifndef __GST_GL_WINDOW_PRIVATE_H__ 21 | #define __GST_GL_WINDOW_PRIVATE_H__ 22 | 23 | #include 24 | 25 | G_BEGIN_DECLS 26 | 27 | G_GNUC_INTERNAL extern GstDebugCategory *gst_gl_window_debug; 28 | 29 | G_END_DECLS 30 | 31 | #endif /* __GST_GL_WINDOW_PRIVATE_H__ */ 32 | -------------------------------------------------------------------------------- /gst-libs/gst/gl/utils/gles_versions.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2015 Matthew Waters 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef _GLES_VERSIONS_H_ 22 | #define _GLES_VERSIONS_H_ 23 | 24 | /* list of known OpenGL versions */ 25 | /* *INDENT-OFF* */ 26 | 27 | static const struct { int major, minor; } gles2_versions[] = { 28 | {3, 2}, 29 | {3, 1}, 30 | {3, 0}, 31 | 32 | {2, 0}, 33 | 34 | {0, 0} /* end of list */ 35 | }; 36 | /* *INDENT-ON* */ 37 | 38 | #endif /* _GLES_VERSIONS_H_ */ 39 | -------------------------------------------------------------------------------- /gst-libs/gst/gl/wayland/wayland.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2020 Matthew Waters 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef __GST_GL_WAYLAND_H__ 22 | #define __GST_GL_WAYLAND_H__ 23 | 24 | #include 25 | #include 26 | 27 | #endif /* __GST_GL_WAYLAND_H__ */ 28 | -------------------------------------------------------------------------------- /gst-libs/gst/gl/x11/x11.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2020 Matthew Waters 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef __GST_GL_X11_H__ 22 | #define __GST_GL_X11_H__ 23 | 24 | #include 25 | #include 26 | 27 | #endif /* __GST_GL_X11_H__ */ 28 | -------------------------------------------------------------------------------- /gst-libs/gst/gl/x11/xcb_event_source.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2012 Matthew Waters 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef __XCB_EVENT_SOURCE_H__ 22 | #define __XCB_EVENT_SOURCE_H__ 23 | 24 | #include 25 | #include "gstgldisplay_x11.h" 26 | 27 | GSource * xcb_event_source_new (GstGLDisplayX11 *display_x11); 28 | 29 | #endif /* __XCB_EVENT_SOURCE_H__ */ 30 | -------------------------------------------------------------------------------- /gst-libs/gst/glib-compat-private.h: -------------------------------------------------------------------------------- 1 | /* 2 | * glib-compat.c 3 | * Functions copied from glib 2.10 4 | * 5 | * Copyright 2005 David Schleef 6 | * 7 | * This library is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Library General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2 of the License, or (at your option) any later version. 11 | * 12 | * This library is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Library General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Library General Public 18 | * License along with this library; if not, write to the 19 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 20 | * Boston, MA 02110-1301, USA. 21 | */ 22 | 23 | #ifndef __GLIB_COMPAT_PRIVATE_H__ 24 | #define __GLIB_COMPAT_PRIVATE_H__ 25 | 26 | #if 0 27 | #include 28 | 29 | G_BEGIN_DECLS 30 | 31 | /* copies */ 32 | 33 | /* adaptations */ 34 | 35 | G_END_DECLS 36 | #endif 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /gst-libs/gst/meson.build: -------------------------------------------------------------------------------- 1 | subdir('tag') 2 | subdir('fft') 3 | subdir('video') 4 | subdir('audio') 5 | subdir('rtp') 6 | subdir('sdp') 7 | subdir('rtsp') 8 | subdir('pbutils') 9 | subdir('riff') 10 | subdir('app') 11 | subdir('allocators') 12 | # FIXME: gl deps are automagic 13 | subdir('gl') 14 | -------------------------------------------------------------------------------- /gst-libs/gst/riff/riff-prelude.h: -------------------------------------------------------------------------------- 1 | /* GStreamer RIFF Library 2 | * Copyright (C) 2018 GStreamer developers 3 | * 4 | * riff-prelude.h: prelude include header for gst-riff library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_RIFF_PRELUDE_H__ 23 | #define __GST_RIFF_PRELUDE_H__ 24 | 25 | #include 26 | 27 | #ifdef BUILDING_GST_RIFF 28 | #define GST_RIFF_API GST_API_EXPORT /* from config.h */ 29 | #else 30 | #define GST_RIFF_API GST_API_IMPORT 31 | #endif 32 | 33 | #endif /* __GST_RIFF_PRELUDE_H__ */ 34 | -------------------------------------------------------------------------------- /gst-libs/gst/riff/riff.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2012 GStreamer developers 3 | * 4 | * gstriff.h: single include header for gst-riff library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_RIFF_H__ 23 | #define __GST_RIFF_H__ 24 | 25 | #include 26 | #include 27 | #include 28 | #include 29 | 30 | #endif /* __GST_RIFF_H__ */ 31 | -------------------------------------------------------------------------------- /gst-libs/gst/rtp/rtp-prelude.h: -------------------------------------------------------------------------------- 1 | /* GStreamer RTP Library 2 | * Copyright (C) 2018 GStreamer developers 3 | * 4 | * rtp-prelude.h: prelude include header for gst-rtp library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_RTP_PRELUDE_H__ 23 | #define __GST_RTP_PRELUDE_H__ 24 | 25 | #include 26 | 27 | #ifdef BUILDING_GST_RTP 28 | #define GST_RTP_API GST_API_EXPORT /* from config.h */ 29 | #else 30 | #define GST_RTP_API GST_API_IMPORT 31 | #endif 32 | 33 | #endif /* __GST_RTP_PRELUDE_H__ */ 34 | -------------------------------------------------------------------------------- /gst-libs/gst/rtp/rtp.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2012 GStreamer developers 3 | * 4 | * gstrtp.h: single include header for gst-rtp library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_RTP_H__ 23 | #define __GST_RTP_H__ 24 | 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | 36 | #endif /* __GST_RTP_H__ */ 37 | -------------------------------------------------------------------------------- /gst-libs/gst/rtsp/gstrtsp.h: -------------------------------------------------------------------------------- 1 | /* GStreamer RTSP extension 2 | * Copyright (C) 2007 Wim Taymans 3 | * 4 | * rtsp.h: Generic include to pull in defs 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | #ifndef __GST_RTSP_H__ 22 | #define __GST_RTSP_H__ 23 | 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | 33 | #endif /* __GST_RTSP_H__ */ 34 | -------------------------------------------------------------------------------- /gst-libs/gst/rtsp/rtsp.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2012 GStreamer developers 3 | * 4 | * gstrtsp.h: single include header for gst-rtsp library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_RTSP__H__ 23 | #define __GST_RTSP__H__ 24 | 25 | #include 26 | 27 | #include 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | #include 34 | #include 35 | #include 36 | 37 | #endif /* __GST_RTSP__H__ */ 38 | -------------------------------------------------------------------------------- /gst-libs/gst/sdp/sdp-prelude.h: -------------------------------------------------------------------------------- 1 | /* GStreamer SDP Library 2 | * Copyright (C) 2018 GStreamer developers 3 | * 4 | * sdp-prelude.h: prelude include header for gst-sdp library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_SDP_PRELUDE_H__ 23 | #define __GST_SDP_PRELUDE_H__ 24 | 25 | #include 26 | 27 | #ifdef BUILDING_GST_SDP 28 | #define GST_SDP_API GST_API_EXPORT /* from config.h */ 29 | #else 30 | #define GST_SDP_API GST_API_IMPORT 31 | #endif 32 | 33 | #endif /* __GST_SDP_PRELUDE_H__ */ 34 | -------------------------------------------------------------------------------- /gst-libs/gst/sdp/sdp.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2012 GStreamer developers 3 | * 4 | * gstsdp.h: single include header for gst-sdp library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_SDP__H__ 23 | #define __GST_SDP__H__ 24 | 25 | #include 26 | 27 | #include 28 | #include 29 | #include 30 | 31 | #endif /* __GST_SDP__H__ */ 32 | -------------------------------------------------------------------------------- /gst-libs/gst/tag/id3v2.4.0-frames.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-plugins-base/ce937bcb21412d7b3539a2da0509cc96260562f8/gst-libs/gst/tag/id3v2.4.0-frames.txt -------------------------------------------------------------------------------- /gst-libs/gst/tag/id3v2.4.0-structure.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-plugins-base/ce937bcb21412d7b3539a2da0509cc96260562f8/gst-libs/gst/tag/id3v2.4.0-structure.txt -------------------------------------------------------------------------------- /gst-libs/gst/tag/license-translations.dict: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-plugins-base/ce937bcb21412d7b3539a2da0509cc96260562f8/gst-libs/gst/tag/license-translations.dict -------------------------------------------------------------------------------- /gst-libs/gst/tag/tag-prelude.h: -------------------------------------------------------------------------------- 1 | /* GStreamer Tag Library 2 | * Copyright (C) 2018 GStreamer developers 3 | * 4 | * tag-prelude.h: prelude include header for gst-tag library 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_TAG_PRELUDE_H__ 23 | #define __GST_TAG_PRELUDE_H__ 24 | 25 | #include 26 | 27 | #ifdef BUILDING_GST_TAG 28 | #define GST_TAG_API GST_API_EXPORT /* from config.h */ 29 | #else 30 | #define GST_TAG_API GST_API_IMPORT 31 | #endif 32 | 33 | #endif /* __GST_TAG_PRELUDE_H__ */ 34 | -------------------------------------------------------------------------------- /gst-libs/meson.build: -------------------------------------------------------------------------------- 1 | subdir('gst') 2 | -------------------------------------------------------------------------------- /gst/adder/meson.build: -------------------------------------------------------------------------------- 1 | adder_deps = [audio_dep] 2 | orcsrc = 'gstadderorc' 3 | if have_orcc 4 | adder_deps += [orc_dep] 5 | orc_h = custom_target(orcsrc + '.h', 6 | input : orcsrc + '.orc', 7 | output : orcsrc + '.h', 8 | command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@']) 9 | orc_c = custom_target(orcsrc + '.c', 10 | input : orcsrc + '.orc', 11 | output : orcsrc + '.c', 12 | command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@']) 13 | orc_targets += {'name': orcsrc, 'orc-source': files(orcsrc + '.orc'), 'header': orc_h, 'source': orc_c} 14 | else 15 | orc_h = configure_file(input : orcsrc + '-dist.h', 16 | output : orcsrc + '.h', 17 | copy : true) 18 | orc_c = configure_file(input : orcsrc + '-dist.c', 19 | output : orcsrc + '.c', 20 | copy : true) 21 | endif 22 | 23 | adder = library('gstadder', 24 | 'gstadder.c', orc_c, orc_h, 25 | c_args: gst_plugins_base_args, 26 | include_directories: [configinc, libsinc], 27 | dependencies : adder_deps, 28 | install : true, 29 | install_dir : plugins_install_dir, 30 | ) 31 | pkgconfig.generate(adder, install_dir : plugins_pkgconfig_install_dir) 32 | plugins += [adder] 33 | -------------------------------------------------------------------------------- /gst/app/gstapp.c: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2007 David Schleef 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #include "gstappelements.h" 21 | 22 | static gboolean 23 | plugin_init (GstPlugin * plugin) 24 | { 25 | gboolean ret = FALSE; 26 | 27 | ret |= GST_ELEMENT_REGISTER (appsrc, plugin); 28 | ret |= GST_ELEMENT_REGISTER (appsink, plugin); 29 | 30 | return ret; 31 | } 32 | 33 | GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, 34 | GST_VERSION_MINOR, 35 | app, 36 | "Elements used to communicate with applications", 37 | plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) 38 | -------------------------------------------------------------------------------- /gst/app/gstappelements.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2007 David Schleef 3 | * Copyright (C) 2020 Huawei Technologies Co., Ltd. 4 | * @Author: Stéphane Cerveau 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the Free 18 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef __GST_APP_ELEMENTS_H__ 22 | #define __GST_APP_ELEMENTS_H__ 23 | 24 | #ifdef HAVE_CONFIG_H 25 | #include "config.h" 26 | #endif 27 | 28 | #include 29 | 30 | #include 31 | #include 32 | 33 | GST_ELEMENT_REGISTER_DECLARE (appsrc); 34 | GST_ELEMENT_REGISTER_DECLARE (appsink); 35 | 36 | #endif /* __GST_APP_ELEMENTS_H__ */ 37 | -------------------------------------------------------------------------------- /gst/app/gstappsrc.c: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2007 David Schleef 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | /** 20 | * SECTION:element-appsrc 21 | * @title: appsrc 22 | * 23 | * The appsrc element can be used by applications to insert data into a 24 | * GStreamer pipeline. Unlike most GStreamer elements, Appsrc provides 25 | * external API functions. 26 | * 27 | * For the documentation of the API, please see the 28 | * libgstapp section in the 29 | * GStreamer Plugins Base Libraries documentation. 30 | */ 31 | 32 | 33 | #include "gstappelements.h" 34 | 35 | GST_ELEMENT_REGISTER_DEFINE (appsrc, "appsrc", GST_RANK_NONE, GST_TYPE_APP_SRC); 36 | -------------------------------------------------------------------------------- /gst/app/meson.build: -------------------------------------------------------------------------------- 1 | app_sources = [ 2 | 'gstapp.c', 3 | 'gstappsink.c', 4 | 'gstappsrc.c', 5 | ] 6 | 7 | gstapp_plugin = library('gstapp', 8 | app_sources, 9 | c_args: gst_plugins_base_args, 10 | include_directories: [configinc], 11 | dependencies : [gst_base_dep, app_dep, tag_dep], 12 | install : true, 13 | install_dir : plugins_install_dir, 14 | ) 15 | pkgconfig.generate(gstapp_plugin, install_dir : plugins_pkgconfig_install_dir) 16 | 17 | plugins += [gstapp_plugin] 18 | -------------------------------------------------------------------------------- /gst/audioconvert/meson.build: -------------------------------------------------------------------------------- 1 | aconv_sources = [ 2 | 'gstaudioconvert.c', 3 | 'plugin.c' 4 | ] 5 | 6 | gstaudioconvert = library('gstaudioconvert', 7 | aconv_sources, 8 | c_args : gst_plugins_base_args, 9 | include_directories: [configinc, libsinc], 10 | dependencies : [audio_dep, gst_base_dep], 11 | install : true, 12 | install_dir : plugins_install_dir, 13 | ) 14 | pkgconfig.generate(gstaudioconvert, install_dir : plugins_pkgconfig_install_dir) 15 | plugins += [gstaudioconvert] 16 | -------------------------------------------------------------------------------- /gst/audioconvert/plugin.c: -------------------------------------------------------------------------------- 1 | /* GStreamer audio conversion plugin 2 | * Copyright (C) 2004 Andy Wingo 3 | * 4 | * plugin.c: the stubs for the audioconvert plugin 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifdef HAVE_CONFIG_H 23 | #include "config.h" 24 | #endif 25 | 26 | #include "gstaudioconvert.h" 27 | 28 | static gboolean 29 | plugin_init (GstPlugin * plugin) 30 | { 31 | return GST_ELEMENT_REGISTER (audioconvert, plugin); 32 | } 33 | 34 | GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, 35 | GST_VERSION_MINOR, 36 | audioconvert, 37 | "Convert audio to different formats", 38 | plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) 39 | -------------------------------------------------------------------------------- /gst/audiomixer/gstaudiomixerplugin.c: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2020 Huawei Technologies Co., Ltd. 3 | * @Author: Stéphane Cerveau 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the Free 17 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #include "gstaudiomixerelements.h" 21 | 22 | static gboolean 23 | plugin_init (GstPlugin * plugin) 24 | { 25 | gboolean ret = FALSE; 26 | 27 | ret |= GST_ELEMENT_REGISTER (audiomixer, plugin); 28 | ret |= GST_ELEMENT_REGISTER (liveadder, plugin); 29 | ret |= GST_ELEMENT_REGISTER (audiointerleave, plugin); 30 | 31 | return ret; 32 | } 33 | 34 | GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, 35 | GST_VERSION_MINOR, 36 | audiomixer, 37 | "Mixes multiple audio streams", 38 | plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) 39 | -------------------------------------------------------------------------------- /gst/audiomixer/meson.build: -------------------------------------------------------------------------------- 1 | audiomixer_sources = [ 2 | 'gstaudiomixer.c', 3 | 'gstaudiomixerelement.c', 4 | 'gstliveadder.c', 5 | 'gstaudiointerleave.c', 6 | 'gstaudiomixerplugin.c' 7 | ] 8 | 9 | orcsrc = 'gstaudiomixerorc' 10 | if have_orcc 11 | orc_h = custom_target(orcsrc + '.h', 12 | input : orcsrc + '.orc', 13 | output : orcsrc + '.h', 14 | command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@']) 15 | orc_c = custom_target(orcsrc + '.c', 16 | input : orcsrc + '.orc', 17 | output : orcsrc + '.c', 18 | command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@']) 19 | orc_targets += {'name': orcsrc, 'orc-source': files(orcsrc + '.orc'), 'header': orc_h, 'source': orc_c} 20 | else 21 | orc_h = configure_file(input : orcsrc + '-dist.h', 22 | output : orcsrc + '.h', 23 | copy : true) 24 | orc_c = configure_file(input : orcsrc + '-dist.c', 25 | output : orcsrc + '.c', 26 | copy : true) 27 | endif 28 | 29 | gstaudiomixer = library('gstaudiomixer', 30 | audiomixer_sources, orc_c, orc_h, 31 | c_args : gst_plugins_base_args, 32 | include_directories : [configinc], 33 | dependencies : [audio_dep, gst_base_dep, orc_dep], 34 | install : true, 35 | install_dir : plugins_install_dir, 36 | ) 37 | pkgconfig.generate(gstaudiomixer, install_dir : plugins_pkgconfig_install_dir) 38 | plugins += [gstaudiomixer] 39 | -------------------------------------------------------------------------------- /gst/audiorate/meson.build: -------------------------------------------------------------------------------- 1 | audiorate = library('gstaudiorate', 2 | 'gstaudiorate.c', 3 | c_args : gst_plugins_base_args, 4 | include_directories: [configinc, libsinc], 5 | dependencies : [audio_dep, gst_base_dep], 6 | install : true, 7 | install_dir : plugins_install_dir, 8 | ) 9 | pkgconfig.generate(audiorate, install_dir : plugins_pkgconfig_install_dir) 10 | plugins += [audiorate] 11 | -------------------------------------------------------------------------------- /gst/audioresample/meson.build: -------------------------------------------------------------------------------- 1 | resample_sources = ['gstaudioresample.c'] 2 | 3 | audioresample = library('gstaudioresample', 4 | resample_sources, 5 | c_args : gst_plugins_base_args, 6 | include_directories: [configinc, libsinc], 7 | dependencies : [audio_dep, gst_base_dep, libm], 8 | install : true, 9 | install_dir : plugins_install_dir, 10 | ) 11 | pkgconfig.generate(audioresample, install_dir : plugins_pkgconfig_install_dir) 12 | plugins += [audioresample] 13 | -------------------------------------------------------------------------------- /gst/audiotestsrc/meson.build: -------------------------------------------------------------------------------- 1 | audiotest = library('gstaudiotestsrc', 2 | 'gstaudiotestsrc.c', gstaudio_h, 3 | c_args: gst_plugins_base_args, 4 | include_directories: [configinc, libsinc], 5 | dependencies : [audio_dep, gst_base_dep, libm], 6 | install : true, 7 | install_dir : plugins_install_dir, 8 | ) 9 | pkgconfig.generate(audiotest, install_dir : plugins_pkgconfig_install_dir) 10 | plugins += [audiotest] 11 | -------------------------------------------------------------------------------- /gst/compositor/meson.build: -------------------------------------------------------------------------------- 1 | compositor_sources = [ 2 | 'blend.c', 3 | 'compositor.c', 4 | ] 5 | 6 | orcsrc = 'compositororc' 7 | if have_orcc 8 | orc_h = custom_target(orcsrc + '.h', 9 | input : orcsrc + '.orc', 10 | output : orcsrc + '.h', 11 | command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@']) 12 | orc_c = custom_target(orcsrc + '.c', 13 | input : orcsrc + '.orc', 14 | output : orcsrc + '.c', 15 | command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@']) 16 | orc_targets += {'name': orcsrc, 'orc-source': files(orcsrc + '.orc'), 'header': orc_h, 'source': orc_c} 17 | else 18 | orc_h = configure_file(input : orcsrc + '-dist.h', 19 | output : orcsrc + '.h', 20 | copy : true) 21 | orc_c = configure_file(input : orcsrc + '-dist.c', 22 | output : orcsrc + '.c', 23 | copy : true) 24 | endif 25 | 26 | gstcompositor = library('gstcompositor', 27 | compositor_sources, orc_c, orc_h, 28 | c_args : gst_plugins_base_args, 29 | include_directories : [configinc], 30 | dependencies : [video_dep, gst_base_dep, orc_dep, libm], 31 | install : true, 32 | install_dir : plugins_install_dir, 33 | ) 34 | pkgconfig.generate(gstcompositor, install_dir : plugins_pkgconfig_install_dir) 35 | plugins += [gstcompositor] 36 | -------------------------------------------------------------------------------- /gst/encoding/gstencodebin.h: -------------------------------------------------------------------------------- 1 | /* GStreamer encoding bin 2 | * Copyright (C) 2009 Edward Hervey 3 | * (C) 2009 Nokia Corporation 4 | * (C) 2020 Thibault Saunier 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #pragma once 23 | 24 | #include "gstencodebasebin.h" 25 | 26 | G_DECLARE_FINAL_TYPE (GstEncodeBin, gst_encode_bin, GST, ENCODE_BIN, GstEncodeBaseBin); -------------------------------------------------------------------------------- /gst/encoding/gstencodebin2.h: -------------------------------------------------------------------------------- 1 | /* GStreamer splitmux encoding bin 2 | * Copyright (C) 2009 Edward Hervey 3 | * (C) 2009 Nokia Corporation 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #pragma once 22 | 23 | #include "gstencodebasebin.h" 24 | 25 | G_DECLARE_FINAL_TYPE (GstEncodeBin2, gst_encode_bin2, GST, ENCODE_BIN2, GstEncodeBaseBin); -------------------------------------------------------------------------------- /gst/encoding/gstencodingelements.h: -------------------------------------------------------------------------------- 1 | /* GStreamer encoding bin 2 | * Copyright (C) 2016 Jan Schmidt 3 | * (C) 2020 Thibault Saunier 4 | * (C) 2009 Edward Hervey 5 | * (C) 2009 Nokia Corporation 6 | * 7 | * This library is free software; you can redistribute it and/or 8 | * modify it under the terms of the GNU Library General Public 9 | * License as published by the Free Software Foundation; either 10 | * version 2 of the License, or (at your option) any later version. 11 | * 12 | * This library is distributed in the hope that it will be useful, 13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 | * Library General Public License for more details. 16 | * 17 | * You should have received a copy of the GNU Library General Public 18 | * License along with this library; if not, write to the 19 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 20 | * Boston, MA 02110-1301, USA. 21 | */ 22 | #ifndef __ENCODING_ELEMENTS_H__ 23 | #define __ENCODING_ELEMENTS_H__ 24 | 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | G_GNUC_INTERNAL void encoding_element_init (GstPlugin * plugin); 30 | 31 | GST_ELEMENT_REGISTER_DECLARE (encodebin); 32 | GST_ELEMENT_REGISTER_DECLARE (encodebin2); 33 | 34 | G_END_DECLS 35 | 36 | #endif //__ENCODING_ELEMENTS_H__ 37 | -------------------------------------------------------------------------------- /gst/encoding/meson.build: -------------------------------------------------------------------------------- 1 | encoding_sources = [ 2 | 'gstencodebasebin.c', 3 | 'gstencodebin.c', 4 | 'gstencodebin2.c', 5 | 'gstsmartencoder.c', 6 | 'gststreamcombiner.c', 7 | 'gststreamsplitter.c', 8 | 'plugin.c', 9 | 'gstencodingelements.c', 10 | ] 11 | 12 | gstencoding = library('gstencoding', 13 | encoding_sources, 14 | c_args : gst_plugins_base_args, 15 | include_directories: [configinc, libsinc], 16 | dependencies : [pbutils_dep, video_dep, gst_base_dep], 17 | install : true, 18 | install_dir : plugins_install_dir, 19 | ) 20 | pkgconfig.generate(gstencoding, install_dir : plugins_pkgconfig_install_dir) 21 | plugins += [gstencoding] 22 | -------------------------------------------------------------------------------- /gst/gio/meson.build: -------------------------------------------------------------------------------- 1 | gio_sources = ['gstgio.c', 2 | 'gstgioelement.c', 3 | 'gstgiobasesink.c', 4 | 'gstgiobasesrc.c', 5 | 'gstgiosink.c', 6 | 'gstgiosrc.c', 7 | 'gstgiostreamsink.c', 8 | 'gstgiostreamsrc.c', 9 | ] 10 | 11 | gstgio = library('gstgio', 12 | gio_sources, 13 | c_args : gst_plugins_base_args, 14 | include_directories: [configinc, libsinc], 15 | dependencies : [gst_base_dep, gio_dep], 16 | install : true, 17 | install_dir : plugins_install_dir, 18 | ) 19 | pkgconfig.generate(gstgio, install_dir : plugins_pkgconfig_install_dir) 20 | plugins += [gstgio] 21 | -------------------------------------------------------------------------------- /gst/meson.build: -------------------------------------------------------------------------------- 1 | foreach plugin : ['adder', 'app', 'audioconvert', 'audiomixer', 'audiorate', 'audioresample', 2 | 'audiotestsrc', 'compositor', 'encoding', 'gio', 'overlaycomposition', 'pbtypes', 'playback', 3 | 'rawparse', 'subparse', 'tcp', 'typefind', 'videoconvert', 'videorate', 'videoscale', 4 | 'videotestsrc', 'volume'] 5 | if not get_option(plugin).disabled() 6 | subdir(plugin) 7 | endif 8 | endforeach 9 | -------------------------------------------------------------------------------- /gst/overlaycomposition/meson.build: -------------------------------------------------------------------------------- 1 | gstoverlaycomposition = library('gstoverlaycomposition', 2 | 'gstoverlaycomposition.c', 3 | c_args : gst_plugins_base_args, 4 | include_directories: [configinc, libsinc], 5 | dependencies : [video_dep], 6 | install : true, 7 | install_dir : plugins_install_dir, 8 | ) 9 | pkgconfig.generate(gstoverlaycomposition, install_dir : plugins_pkgconfig_install_dir) 10 | plugins += [gstoverlaycomposition] 11 | -------------------------------------------------------------------------------- /gst/pbtypes/gstpbtypes.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2015 Jan Schmidt 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifndef __GST_PB_TYPES_H__ 21 | #define __GST_PB_TYPES_H__ 22 | 23 | #include 24 | 25 | GST_DYNAMIC_TYPE_REGISTER_DECLARE (video_multiview_flagset); 26 | 27 | #endif //__GST_PB_TYPES_H__ 28 | -------------------------------------------------------------------------------- /gst/pbtypes/meson.build: -------------------------------------------------------------------------------- 1 | gstpbtypes_sources = [ 2 | 'gstpbtypes.c' 3 | ] 4 | 5 | gstpbtypes = library('gstpbtypes', 6 | gstpbtypes_sources, 7 | c_args : gst_plugins_base_args, 8 | include_directories: [configinc, libsinc], 9 | dependencies : [video_dep], 10 | install : true, 11 | install_dir : plugins_install_dir, 12 | ) 13 | pkgconfig.generate(gstpbtypes, install_dir : plugins_pkgconfig_install_dir) 14 | plugins += [gstpbtypes] 15 | -------------------------------------------------------------------------------- /gst/playback/gstrawcaps.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) <2009> Sebastian Dröge 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | 21 | #ifndef __GST_RAW_CAPS_H__ 22 | #define __GST_RAW_CAPS_H__ 23 | 24 | #include 25 | 26 | G_BEGIN_DECLS 27 | 28 | #define DEFAULT_RAW_CAPS \ 29 | "video/x-raw(ANY); " \ 30 | "audio/x-raw(ANY); " \ 31 | "text/x-raw(ANY); " \ 32 | "subpicture/x-dvd; " \ 33 | "subpicture/x-dvb; " \ 34 | "subpicture/x-xsub; " \ 35 | "subpicture/x-pgs; " \ 36 | "closedcaption/x-cea-608; " \ 37 | "closedcaption/x-cea-708" 38 | 39 | G_END_DECLS 40 | 41 | #endif /* __GST_RAW_CAPS__ */ 42 | -------------------------------------------------------------------------------- /gst/playback/meson.build: -------------------------------------------------------------------------------- 1 | playback_sources = [ 2 | 'gstdecodebin2.c', 3 | 'gstdecodebin3.c', 4 | 'gsturidecodebin.c', 5 | 'gsturidecodebin3.c', 6 | 'gsturisourcebin.c', 7 | 'gstparsebin.c', 8 | 'gstplaybackplugin.c', 9 | 'gstplaybackelement.c', 10 | 'gstplaybackutils.c', 11 | 'gstplaybin2.c', 12 | 'gstplaybin3.c', 13 | 'gstplaysink.c', 14 | 'gstplay-enum.c', 15 | 'gstsubtitleoverlay.c', 16 | 'gstplaysinkvideoconvert.c', 17 | 'gstplaysinkaudioconvert.c', 18 | 'gstplaysinkconvertbin.c', 19 | 'gststreamsynchronizer.c' 20 | ] 21 | 22 | gstplayback = library('gstplayback', 23 | playback_sources, 24 | c_args : gst_plugins_base_args + ['-DCOLORSPACE="videoconvert"'], 25 | include_directories: [configinc, libsinc], 26 | dependencies : [audio_dep, video_dep, pbutils_dep, tag_dep], 27 | install : true, 28 | install_dir : plugins_install_dir, 29 | ) 30 | pkgconfig.generate(gstplayback, install_dir : plugins_pkgconfig_install_dir) 31 | plugins += [gstplayback] 32 | -------------------------------------------------------------------------------- /gst/rawparse/gstrawparseelements.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) <2020> The GStreamer Contributors. 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the Free 16 | * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 17 | */ 18 | 19 | #ifndef __GST_RAWPARSE_ELEMENTS_H__ 20 | #define __GST_RAWPARSE_ELEMENTS_H__ 21 | 22 | #ifdef HAVE_CONFIG_H 23 | # include "config.h" 24 | #endif 25 | 26 | #include 27 | 28 | G_BEGIN_DECLS 29 | 30 | GST_ELEMENT_REGISTER_DECLARE (unalignedaudioparse); 31 | GST_ELEMENT_REGISTER_DECLARE (unalignedvideoparse); 32 | GST_ELEMENT_REGISTER_DECLARE (rawaudioparse); 33 | GST_ELEMENT_REGISTER_DECLARE (rawvideoparse); 34 | 35 | G_END_DECLS 36 | 37 | #endif /* __GST_RAWPARSE_ELEMENTS_H__ */ 38 | -------------------------------------------------------------------------------- /gst/rawparse/gstunalignedaudioparse.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2016 Carlos Rafael Giani 3 | * 4 | * gstunalignedaudioparse.h: 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_UNALIGNED_AUDIO_PARSE_H___ 23 | #define __GST_UNALIGNED_AUDIO_PARSE_H___ 24 | 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | #define GST_TYPE_UNALIGNED_AUDIO_PARSE (gst_unaligned_audio_parse_get_type()) 30 | #define GST_UNALIGNED_AUDIO_PARSE_CAST(obj) ((GstRawAudioParse *)(obj)) 31 | G_DECLARE_FINAL_TYPE (GstUnalignedAudioParse, gst_unaligned_audio_parse, 32 | GST, UNALIGNED_AUDIO_PARSE, GstBin) 33 | 34 | G_END_DECLS 35 | 36 | #endif /* __GST_UNALIGNED_AUDIO_PARSE_H___ */ 37 | -------------------------------------------------------------------------------- /gst/rawparse/gstunalignedvideoparse.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2016 Carlos Rafael Giani 3 | * 4 | * gstunalignedvideoparse.h: 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_UNALIGNED_VIDEO_PARSE_H___ 23 | #define __GST_UNALIGNED_VIDEO_PARSE_H___ 24 | 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | #define GST_TYPE_UNALIGNED_VIDEO_PARSE (gst_unaligned_video_parse_get_type()) 30 | #define GST_UNALIGNED_VIDEO_PARSE_CAST(obj) ((GstRawAudioParse *)(obj)) 31 | G_DECLARE_FINAL_TYPE (GstUnalignedVideoParse, gst_unaligned_video_parse, 32 | GST, UNALIGNED_VIDEO_PARSE, GstBin) 33 | 34 | G_END_DECLS 35 | 36 | #endif /* __GST_UNALIGNED_VIDEO_PARSE_H___ */ 37 | -------------------------------------------------------------------------------- /gst/rawparse/meson.build: -------------------------------------------------------------------------------- 1 | raw_sources = [ 2 | 'gstunalignedaudioparse.c', 3 | 'gstunalignedvideoparse.c', 4 | 'gstrawbaseparse.c', 5 | 'gstrawaudioparse.c', 6 | 'gstrawvideoparse.c', 7 | 'plugin.c', 8 | ] 9 | 10 | gstrawparse = library('gstrawparse', 11 | raw_sources, 12 | c_args : gst_plugins_base_args, 13 | include_directories : [configinc], 14 | dependencies : [gst_base_dep, video_dep, audio_dep], 15 | install : true, 16 | install_dir : plugins_install_dir, 17 | ) 18 | pkgconfig.generate(gstrawparse, install_dir : plugins_pkgconfig_install_dir) 19 | plugins += [gstrawparse] 20 | 21 | -------------------------------------------------------------------------------- /gst/rawparse/unalignedaudio.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2016 Carlos Rafael Giani 3 | * 4 | * unalignedaudio.h: 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_UNALIGNED_AUDIO_H__ 23 | #define __GST_UNALIGNED_AUDIO_H__ 24 | 25 | #include 26 | #include 27 | 28 | #define GST_UNALIGNED_RAW_AUDIO_CAPS \ 29 | "audio/x-unaligned-raw" \ 30 | ", format = (string) " GST_AUDIO_FORMATS_ALL \ 31 | ", rate = (int) [ 1, MAX ]" \ 32 | ", channels = (int) [ 1, MAX ]" \ 33 | ", layout = (string) { interleaved, non-interleaved }" 34 | 35 | #endif /* __GST_UNALIGNED_AUDIO_H__ */ 36 | -------------------------------------------------------------------------------- /gst/rawparse/unalignedvideo.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) 2016 Carlos Rafael Giani 3 | * 4 | * unalignedvideo.h: 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef __GST_UNALIGNED_VIDEO_H__ 23 | #define __GST_UNALIGNED_VIDEO_H__ 24 | 25 | #include 26 | #include 27 | 28 | #define GST_UNALIGNED_RAW_VIDEO_CAPS \ 29 | "video/x-unaligned-raw" \ 30 | ", format = (string) " GST_VIDEO_FORMATS_ALL \ 31 | ", width = " GST_VIDEO_SIZE_RANGE \ 32 | ", height = " GST_VIDEO_SIZE_RANGE \ 33 | ", framerate = " GST_VIDEO_FPS_RANGE 34 | 35 | #endif /* __GST_UNALIGNED_VIDEO_H__ */ 36 | -------------------------------------------------------------------------------- /gst/subparse/gstssaparse.h: -------------------------------------------------------------------------------- 1 | /* GStreamer SSA subtitle parser 2 | * Copyright (c) 2006 Tim-Philipp Müller 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifndef __GST_SSA_PARSE_H__ 21 | #define __GST_SSA_PARSE_H__ 22 | 23 | #include 24 | 25 | G_BEGIN_DECLS 26 | 27 | #define GST_TYPE_SSA_PARSE (gst_ssa_parse_get_type ()) 28 | G_DECLARE_FINAL_TYPE (GstSsaParse, gst_ssa_parse, GST, SSA_PARSE, GstElement) 29 | 30 | struct _GstSsaParse { 31 | GstElement element; 32 | 33 | GstPad *sinkpad; 34 | GstPad *srcpad; 35 | 36 | gboolean framed; 37 | gboolean send_tags; 38 | 39 | gchar *ini; 40 | }; 41 | 42 | G_END_DECLS 43 | 44 | #endif /* __GST_SSA_PARSE_H__ */ 45 | 46 | -------------------------------------------------------------------------------- /gst/subparse/meson.build: -------------------------------------------------------------------------------- 1 | subparse_sources = [ 2 | 'gstssaparse.c', 3 | 'gstsubparse.c', 4 | 'gstsubparseelement.c', 5 | 'gstsubparseplugin.c', 6 | 'samiparse.c', 7 | 'tmplayerparse.c', 8 | 'mpl2parse.c', 9 | 'qttextparse.c', 10 | ] 11 | 12 | gstsubparse = library('gstsubparse', 13 | subparse_sources, 14 | c_args : gst_plugins_base_args, 15 | include_directories: [configinc, libsinc], 16 | dependencies : [gst_base_dep], 17 | install : true, 18 | install_dir : plugins_install_dir, 19 | ) 20 | pkgconfig.generate(gstsubparse, install_dir : plugins_pkgconfig_install_dir) 21 | plugins += [gstsubparse] 22 | -------------------------------------------------------------------------------- /gst/subparse/mpl2parse.h: -------------------------------------------------------------------------------- 1 | /* GStreamer mpl2 format subtitle parser 2 | * Copyright (C) 2006 Kamil Pawlowski 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifndef _MPL2_PARSE_H_ 21 | #define _MPL2_PARSE_H_ 22 | 23 | #include "gstsubparse.h" 24 | 25 | G_BEGIN_DECLS 26 | 27 | gchar * parse_mpl2 (ParserState * state, const gchar * line); 28 | 29 | G_END_DECLS 30 | 31 | #endif /* _MPL2_PARSE_H_ */ 32 | 33 | -------------------------------------------------------------------------------- /gst/subparse/qttextparse.h: -------------------------------------------------------------------------------- 1 | /* GStreamer QTtext subtitle parser 2 | * Copyright (c) 2009 Thiago Santos 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifndef _QTTEXT_PARSE_H_ 21 | #define _QTTEXT_PARSE_H_ 22 | 23 | #include "gstsubparse.h" 24 | 25 | G_BEGIN_DECLS 26 | 27 | gchar * parse_qttext (ParserState * state, const gchar * line); 28 | 29 | void qttext_context_init (ParserState * state); 30 | 31 | void qttext_context_deinit (ParserState * state); 32 | 33 | G_END_DECLS 34 | 35 | #endif /* _QTTEXT_PARSE_H_ */ 36 | 37 | -------------------------------------------------------------------------------- /gst/subparse/samiparse.h: -------------------------------------------------------------------------------- 1 | /* GStreamer SAMI subtitle parser 2 | * Copyright (c) 2006 Young-Ho Cha 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifndef _SAMI_PARSE_H_ 21 | #define _SAMI_PARSE_H_ 22 | 23 | #include "gstsubparse.h" 24 | 25 | G_BEGIN_DECLS 26 | 27 | gchar * parse_sami (ParserState * state, const gchar * line); 28 | 29 | void sami_context_init (ParserState * state); 30 | 31 | void sami_context_deinit (ParserState * state); 32 | 33 | void sami_context_reset (ParserState * state); 34 | 35 | G_END_DECLS 36 | 37 | #endif /* _SAMI_PARSE_H_ */ 38 | 39 | -------------------------------------------------------------------------------- /gst/subparse/tmplayerparse.h: -------------------------------------------------------------------------------- 1 | /* GStreamer tmplayer format subtitle parser 2 | * Copyright (C) 2006 Tim-Philipp Müller 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifndef _TMPLAYER_PARSE_H_ 21 | #define _TMPLAYER_PARSE_H_ 22 | 23 | #include "gstsubparse.h" 24 | 25 | G_BEGIN_DECLS 26 | 27 | gchar * parse_tmplayer (ParserState * state, const gchar * line); 28 | 29 | G_END_DECLS 30 | 31 | #endif /* _TMPLAYER_PARSE_H_ */ 32 | 33 | -------------------------------------------------------------------------------- /gst/tcp/gsttcpsrcstats.c: -------------------------------------------------------------------------------- 1 | /* macOS and iOS have the .h files but the tcp_info struct is private API */ 2 | #if defined(HAVE_NETINET_TCP_H) && defined(HAVE_NETINET_IN_H) && defined(HAVE_SYS_SOCKET_H) 3 | #include 4 | #include 5 | #include 6 | #if defined(TCP_INFO) 7 | #define HAVE_SOCKET_METRIC_HEADERS 8 | #endif 9 | #endif 10 | 11 | #include "gsttcpsrcstats.h" 12 | 13 | void 14 | gst_tcp_stats_from_socket (GstStructure * structure, GSocket * socket) 15 | { 16 | #ifdef HAVE_SOCKET_METRIC_HEADERS 17 | if (getsockopt (fd, IPPROTO_TCP, TCP_INFO, &info, &info_len) == 0) { 18 | /* this is system-specific */ 19 | #ifdef HAVE_BSD_TCP_INFO 20 | gst_structure_set (s, 21 | "reordering", G_TYPE_UINT, info.__tcpi_reordering, 22 | "unacked", G_TYPE_UINT, info.__tcpi_unacked, 23 | "sacked", G_TYPE_UINT, info.__tcpi_sacked, 24 | "lost", G_TYPE_UINT, info.__tcpi_lost, 25 | "retrans", G_TYPE_UINT, info.__tcpi_retrans, 26 | "fackets", G_TYPE_UINT, info.__tcpi_fackets, NULL); 27 | #elif defined(HAVE_LINUX_TCP_INFO) 28 | gst_structure_set (s, 29 | "reordering", G_TYPE_UINT, info.tcpi_reordering, 30 | "unacked", G_TYPE_UINT, info.tcpi_unacked, 31 | "sacked", G_TYPE_UINT, info.tcpi_sacked, 32 | "lost", G_TYPE_UINT, info.tcpi_lost, 33 | "retrans", G_TYPE_UINT, info.tcpi_retrans, 34 | "fackets", G_TYPE_UINT, info.tcpi_fackets, NULL); 35 | #endif 36 | } 37 | #endif 38 | } 39 | -------------------------------------------------------------------------------- /gst/tcp/gsttcpsrcstats.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | void gst_tcp_stats_from_socket (GstStructure *structure, GSocket *socket); 5 | -------------------------------------------------------------------------------- /gst/tcp/meson.build: -------------------------------------------------------------------------------- 1 | tcp_sources = [ 2 | 'gstmultihandlesink.c', 3 | 'gstmultisocketsink.c', 4 | 'gstsocketsrc.c', 5 | 'gsttcpclientsrc.c', 6 | 'gsttcpclientsink.c', 7 | 'gsttcpelements.c', 8 | 'gsttcpserversrc.c', 9 | 'gsttcpserversink.c', 10 | 'gsttcpsrcstats.c', 11 | 'gsttcpplugin.c', 12 | ] 13 | 14 | if core_conf.has('HAVE_SYS_SOCKET_H') 15 | tcp_sources += 'gstmultifdsink.c' 16 | endif 17 | 18 | gsttcp = library('gsttcp', 19 | tcp_sources, 20 | c_args : gst_plugins_base_args, 21 | include_directories: [configinc, libsinc], 22 | dependencies : [gio_dep, gst_base_dep, gst_net_dep], 23 | install : true, 24 | install_dir : plugins_install_dir, 25 | ) 26 | pkgconfig.generate(gsttcp, install_dir : plugins_pkgconfig_install_dir) 27 | plugins += [gsttcp] 28 | -------------------------------------------------------------------------------- /gst/typefind/meson.build: -------------------------------------------------------------------------------- 1 | typefindfunctions_extra_defs = [] 2 | typefindfunctions_extra_deps = [] 3 | if not get_option('gio-typefinder').disabled() 4 | typefindfunctions_extra_defs += ['-DHAVE_GIO'] 5 | typefindfunctions_extra_deps += [gio_dep] 6 | endif 7 | 8 | typefindfunctions_sources = [ 9 | 'gsttypefindfunctions.c', 10 | 'gsttypefindfunctionsdata.c', 11 | 'gsttypefindfunctionsplugin.c', 12 | 'gsttypefindfunctionsriff.c', 13 | 'gsttypefindfunctionsstartwith.c', 14 | ] 15 | 16 | gsttypefind = library('gsttypefindfunctions', 17 | typefindfunctions_sources, 18 | c_args : gst_plugins_base_args + typefindfunctions_extra_defs, 19 | include_directories: [configinc, libsinc], 20 | dependencies : [pbutils_dep, gst_base_dep, typefindfunctions_extra_deps], 21 | install : true, 22 | install_dir : plugins_install_dir, 23 | ) 24 | pkgconfig.generate(gsttypefind, install_dir : plugins_pkgconfig_install_dir) 25 | plugins += [gsttypefind] 26 | -------------------------------------------------------------------------------- /gst/videoconvert/meson.build: -------------------------------------------------------------------------------- 1 | vconvert_sources = [ 2 | 'gstvideoconvert.c', 3 | ] 4 | 5 | gstvideoconvert = library('gstvideoconvert', 6 | vconvert_sources, 7 | c_args : gst_plugins_base_args, 8 | include_directories: [configinc, libsinc], 9 | dependencies : [video_dep], 10 | install : true, 11 | install_dir : plugins_install_dir, 12 | ) 13 | pkgconfig.generate(gstvideoconvert, install_dir : plugins_pkgconfig_install_dir) 14 | plugins += [gstvideoconvert] 15 | -------------------------------------------------------------------------------- /gst/videorate/meson.build: -------------------------------------------------------------------------------- 1 | gstvideorate = library('gstvideorate', 2 | 'gstvideorate.c', 3 | c_args : gst_plugins_base_args, 4 | include_directories: [configinc, libsinc], 5 | dependencies : [video_dep], 6 | install : true, 7 | install_dir : plugins_install_dir, 8 | ) 9 | pkgconfig.generate(gstvideorate, install_dir : plugins_pkgconfig_install_dir) 10 | plugins += [gstvideorate] 11 | -------------------------------------------------------------------------------- /gst/videoscale/README: -------------------------------------------------------------------------------- 1 | - test different strides using 2 | gst-launch -v videotestsrc ! video/x-raw,width=320,height=240,format=UYVY ! videoscale ! video/x-raw,width=328,height=240 ! xvimagesink 3 | gst-launch -v videotestsrc ! video/x-raw,width=320,height=240,format=UYVY ! videoscale ! video/x-raw,width=324,height=240 ! xvimagesink 4 | gst-launch -v videotestsrc ! video/x-raw,width=320,height=240,format=UYVY ! videoscale ! video/x-raw,width=322,height=240 ! xvimagesink 5 | gst-launch -v videotestsrc ! video/x-raw,width=320,height=240,format=UYVY ! videoscale ! video/x-raw,width=321,height=240 ! xvimagesink 6 | -------------------------------------------------------------------------------- /gst/videoscale/meson.build: -------------------------------------------------------------------------------- 1 | videoscale_sources = [ 2 | 'gstvideoscale.c', 3 | ] 4 | 5 | gstvideoscale = library('gstvideoscale', 6 | videoscale_sources, 7 | c_args : gst_plugins_base_args, 8 | include_directories: [configinc, libsinc], 9 | dependencies : glib_deps + [video_dep, gst_dep, gst_base_dep], 10 | install : true, 11 | install_dir : plugins_install_dir, 12 | ) 13 | pkgconfig.generate(gstvideoscale, install_dir : plugins_pkgconfig_install_dir) 14 | plugins += [gstvideoscale] 15 | -------------------------------------------------------------------------------- /gst/videotestsrc/generate_sine_table.c: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | #include 4 | #include 5 | 6 | static int 7 | get_value (int i) 8 | { 9 | int x; 10 | 11 | x = floor (256 * (0.5 + 0.5 * sin (i * 2 * G_PI / 256))); 12 | if (x > 255) 13 | x = 255; 14 | return x; 15 | } 16 | 17 | int 18 | main (int argc, char *argv[]) 19 | { 20 | int i; 21 | int j; 22 | 23 | printf ("static const guint8\n"); 24 | printf ("sine_table[256] = {\n"); 25 | for (i = 0; i < 256; i += 8) { 26 | printf (" "); 27 | for (j = 0; j < 8; j++) { 28 | printf ("%3d", get_value (i + j)); 29 | if (j != 7) { 30 | printf (", "); 31 | } else { 32 | if (i + j != 255) { 33 | printf (",\n"); 34 | } else { 35 | printf ("\n"); 36 | } 37 | } 38 | } 39 | } 40 | printf ("};\n"); 41 | 42 | return 0; 43 | } 44 | -------------------------------------------------------------------------------- /gst/videotestsrc/gstvideotestsrcorc.orc: -------------------------------------------------------------------------------- 1 | 2 | .function video_test_src_orc_splat_u32 3 | .dest 4 d1 guint8 4 | .param 4 p1 5 | 6 | storel d1, p1 7 | 8 | 9 | -------------------------------------------------------------------------------- /gst/videotestsrc/meson.build: -------------------------------------------------------------------------------- 1 | videotestsrc_deps = glib_deps + [video_dep, gst_dep, gst_base_dep, libm] 2 | orcsrc = 'gstvideotestsrcorc' 3 | if have_orcc 4 | videotestsrc_deps += [orc_dep] 5 | orc_h = custom_target(orcsrc + '.h', 6 | input : orcsrc + '.orc', 7 | output : orcsrc + '.h', 8 | command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@']) 9 | orc_c = custom_target(orcsrc + '.c', 10 | input : orcsrc + '.orc', 11 | output : orcsrc + '.c', 12 | command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@']) 13 | orc_targets += {'name': orcsrc, 'orc-source': files(orcsrc + '.orc'), 'header': orc_h, 'source': orc_c} 14 | else 15 | orc_h = configure_file(input : orcsrc + '-dist.h', 16 | output : orcsrc + '.h', 17 | copy : true) 18 | orc_c = configure_file(input : orcsrc + '-dist.c', 19 | output : orcsrc + '.c', 20 | copy : true) 21 | endif 22 | 23 | gstvideotestsrc = library('gstvideotestsrc', 24 | 'gstvideotestsrc.c', 'videotestsrc.c', orc_c, orc_h, 25 | c_args : gst_plugins_base_args, 26 | include_directories: [configinc, libsinc], 27 | dependencies : videotestsrc_deps, 28 | install : true, 29 | install_dir : plugins_install_dir, 30 | ) 31 | pkgconfig.generate(gstvideotestsrc, install_dir : plugins_pkgconfig_install_dir) 32 | plugins += [gstvideotestsrc] 33 | -------------------------------------------------------------------------------- /gst/volume/meson.build: -------------------------------------------------------------------------------- 1 | volume_deps = glib_deps + [audio_dep, gst_dep, gst_base_dep] 2 | orcsrc = 'gstvolumeorc' 3 | if have_orcc 4 | volume_deps += [orc_dep] 5 | orc_h = custom_target(orcsrc + '.h', 6 | input : orcsrc + '.orc', 7 | output : orcsrc + '.h', 8 | command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@']) 9 | orc_c = custom_target(orcsrc + '.c', 10 | input : orcsrc + '.orc', 11 | output : orcsrc + '.c', 12 | command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@']) 13 | orc_targets += {'name': orcsrc, 'orc-source': files(orcsrc + '.orc'), 'header': orc_h, 'source': orc_c} 14 | else 15 | orc_h = configure_file(input : orcsrc + '-dist.h', 16 | output : orcsrc + '.h', 17 | copy : true) 18 | orc_c = configure_file(input : orcsrc + '-dist.c', 19 | output : orcsrc + '.c', 20 | copy : true) 21 | endif 22 | 23 | gstvolume = library('gstvolume', 'gstvolume.c', orc_c, orc_h, 24 | c_args : gst_plugins_base_args, 25 | include_directories: [configinc, libsinc], 26 | dependencies : volume_deps, 27 | install : true, 28 | install_dir : plugins_install_dir, 29 | ) 30 | pkgconfig.generate(gstvolume, install_dir : plugins_pkgconfig_install_dir) 31 | plugins += [gstvolume] 32 | -------------------------------------------------------------------------------- /po/LINGUAS: -------------------------------------------------------------------------------- 1 | af az bg ca cs da de el en_GB eo es eu fi fr fur gl hr hu id it ja lt lv nb nl or pl pt_BR ro ru sk sl sq sr sv tr uk vi zh_CN 2 | -------------------------------------------------------------------------------- /po/POTFILES: -------------------------------------------------------------------------------- 1 | ext/alsa/gstalsasink.c 2 | ext/alsa/gstalsasrc.c 3 | ext/cdparanoia/gstcdparanoiasrc.c 4 | ext/gl/gstgltestsrc.c 5 | ext/ogg/gstoggdemux.c 6 | gst/encoding/gstencodebin.c 7 | gst/playback/gstdecodebin2.c 8 | gst/playback/gstparsebin.c 9 | gst/playback/gstplaybin2.c 10 | gst/playback/gstplaybin3.c 11 | gst/playback/gstplaysink.c 12 | gst/playback/gstplaysinkconvertbin.c 13 | gst/playback/gstsubtitleoverlay.c 14 | gst/playback/gsturidecodebin.c 15 | gst/playback/gsturisourcebin.c 16 | gst/tcp/gsttcpclientsink.c 17 | gst/tcp/gsttcpclientsrc.c 18 | gst-libs/gst/audio/gstaudiobasesrc.c 19 | gst-libs/gst/audio/gstaudiocdsrc.c 20 | gst-libs/gst/gl/gstglbasesrc.c 21 | gst-libs/gst/pbutils/descriptions.c 22 | gst-libs/gst/pbutils/missing-plugins.c 23 | gst-libs/gst/tag/gsttagdemux.c 24 | gst-libs/gst/tag/tags.c 25 | tools/gst-device-monitor.c 26 | tools/gst-play.c 27 | -------------------------------------------------------------------------------- /po/meson.build: -------------------------------------------------------------------------------- 1 | i18n = import('i18n') 2 | 3 | i18n.gettext('gst-plugins-base-1.0', preset: 'glib') 4 | -------------------------------------------------------------------------------- /scripts/meson.build: -------------------------------------------------------------------------------- 1 | # dist scripts 2 | if not meson.is_subproject() 3 | meson.add_dist_script('dist-translations.py') 4 | endif 5 | -------------------------------------------------------------------------------- /subprojects/gl-headers.wrap: -------------------------------------------------------------------------------- 1 | [wrap-git] 2 | directory=gl-headers 3 | url=https://gitlab.freedesktop.org/gstreamer/meson-ports/gl-headers.git 4 | revision=master 5 | -------------------------------------------------------------------------------- /subprojects/graphene.wrap: -------------------------------------------------------------------------------- 1 | [wrap-git] 2 | directory=graphene 3 | url=https://github.com/ebassi/graphene.git 4 | revision=master -------------------------------------------------------------------------------- /sys/meson.build: -------------------------------------------------------------------------------- 1 | if x11_dep.found() 2 | # XShm is only used by ximage and xvimage 3 | # FIXME: Need to check for XShmAttach inside libXext 4 | xshm_dep = dependency('xext', required : get_option('xshm')) 5 | core_conf.set('HAVE_XSHM', xshm_dep.found()) 6 | 7 | subdir('ximage') 8 | subdir('xvimage') 9 | endif 10 | -------------------------------------------------------------------------------- /sys/ximage/meson.build: -------------------------------------------------------------------------------- 1 | no_warn_args = [] 2 | # XKeycodeToKeysym is deprecated, but we use it when Xkb is unavailable 3 | if cc.has_argument ('-Wno-deprecated-declarations') 4 | no_warn_args += '-Wno-deprecated-declarations' 5 | endif 6 | 7 | gstximage = library('gstximagesink', 8 | 'ximagesink.c', 'ximage.c', 'ximagepool.c', 9 | c_args : gst_plugins_base_args + no_warn_args, 10 | include_directories: [configinc, libsinc], 11 | dependencies : glib_deps + [video_dep, gst_base_dep, gst_dep, x11_dep, xshm_dep], 12 | install : true, 13 | install_dir : plugins_install_dir, 14 | ) 15 | pkgconfig.generate(gstximage, install_dir : plugins_pkgconfig_install_dir) 16 | plugins += [gstximage] 17 | -------------------------------------------------------------------------------- /sys/ximage/ximage.c: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) <2003> Julien Moutte 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifdef HAVE_CONFIG_H 21 | #include "config.h" 22 | #endif 23 | 24 | #include "ximagesink.h" 25 | 26 | 27 | static gboolean 28 | plugin_init (GstPlugin * plugin) 29 | { 30 | return GST_ELEMENT_REGISTER (ximagesink, plugin); 31 | } 32 | 33 | GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, 34 | GST_VERSION_MINOR, 35 | ximagesink, 36 | "X11 video output element based on standard Xlib calls", 37 | plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) 38 | -------------------------------------------------------------------------------- /sys/xvimage/meson.build: -------------------------------------------------------------------------------- 1 | xvimage_sources = [ 2 | 'xvcontext.c', 3 | 'xvimage.c', 4 | 'xvimageallocator.c', 5 | 'xvimagepool.c', 6 | 'xvimagesink.c', 7 | ] 8 | 9 | no_warn_args = [] 10 | # XKeycodeToKeysym is deprecated, but we use it when Xkb is unavailable 11 | if cc.has_argument ('-Wno-deprecated-declarations') 12 | no_warn_args += '-Wno-deprecated-declarations' 13 | endif 14 | 15 | xvideo_dep = dependency('xv', required : get_option('xvideo')) 16 | 17 | if xvideo_dep.found() 18 | gstxvimage = library('gstxvimagesink', 19 | xvimage_sources, 20 | c_args : gst_plugins_base_args + no_warn_args, 21 | include_directories: [configinc, libsinc], 22 | dependencies : glib_deps + [video_dep, gst_base_dep, gst_dep, x11_dep, xshm_dep, xvideo_dep, libm], 23 | install : true, 24 | install_dir : plugins_install_dir, 25 | ) 26 | pkgconfig.generate(gstxvimage, install_dir : plugins_pkgconfig_install_dir) 27 | plugins += [gstxvimage] 28 | endif 29 | -------------------------------------------------------------------------------- /sys/xvimage/xvimage.c: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) <2003> Julien Moutte 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #ifdef HAVE_CONFIG_H 21 | #include "config.h" 22 | #endif 23 | 24 | #include "xvimagesink.h" 25 | 26 | 27 | static gboolean 28 | plugin_init (GstPlugin * plugin) 29 | { 30 | return GST_ELEMENT_REGISTER (xvimagesink, plugin);; 31 | } 32 | 33 | GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, 34 | GST_VERSION_MINOR, 35 | xvimagesink, 36 | "XFree86 video output plugin using Xv extension", 37 | plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) 38 | -------------------------------------------------------------------------------- /tests/check/libs/gstgl-public-headers.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | #if GST_GL_HAVE_PLATFORM_EGL 5 | #include 6 | #include 7 | #include 8 | #endif 9 | 10 | #if GST_GL_HAVE_WINDOW_X11 11 | #include 12 | #endif 13 | 14 | #if GST_GL_HAVE_WINDOW_WAYLAND 15 | #include 16 | #endif 17 | 18 | -------------------------------------------------------------------------------- /tests/examples/app/meson.build: -------------------------------------------------------------------------------- 1 | app_examples = [ 2 | 'appsrc_ex', 3 | 'appsrc-stream', 4 | 'appsrc-stream2', 5 | 'appsrc-ra', 6 | 'appsrc-seekable', 7 | 'appsink-src', 8 | 'appsink-src2', 9 | ] 10 | 11 | foreach app : app_examples 12 | executable(app, '@0@.c'.format(app), 13 | c_args : gst_plugins_base_args, 14 | include_directories: [configinc, libsinc], 15 | dependencies : [glib_deps, gst_dep, app_dep], 16 | install: false) 17 | endforeach 18 | -------------------------------------------------------------------------------- /tests/examples/audio/meson.build: -------------------------------------------------------------------------------- 1 | # autotools build also passes -D_GNU_SOURCE but not sure why it's needed 2 | if gtk_dep.found() 3 | executable('audiomix', 'audiomix.c', 4 | c_args : gst_plugins_base_args, 5 | include_directories: [configinc, libsinc], 6 | dependencies : [glib_deps, gst_dep, audio_dep, gtk_dep], 7 | install: false) 8 | executable('volume', 'volume.c', 9 | c_args : gst_plugins_base_args, 10 | include_directories: [configinc, libsinc], 11 | dependencies : [glib_deps, gst_dep, libm, audio_dep, gtk_dep], 12 | install: false) 13 | endif 14 | -------------------------------------------------------------------------------- /tests/examples/compositor/meson.build: -------------------------------------------------------------------------------- 1 | executable('crossfade', 'crossfade.c', 2 | include_directories: [configinc], 3 | c_args: ['-DHAVE_CONFIG_H'], 4 | dependencies: [gst_controller_dep, gst_dep], 5 | install: false) 6 | 7 | executable('mosaic', 'mosaic.c', 8 | include_directories: [configinc], 9 | c_args: ['-DHAVE_CONFIG_H'], 10 | dependencies: [video_dep, gst_dep], 11 | install: false) 12 | 13 | executable('signals', 'signals.c', 14 | include_directories: [configinc], 15 | c_args: ['-DHAVE_CONFIG_H'], 16 | dependencies: [gst_dep, gst_base_dep], 17 | install: false) 18 | -------------------------------------------------------------------------------- /tests/examples/decodebin_next/meson.build: -------------------------------------------------------------------------------- 1 | foreach example : ['decodebin3', 'playbin-test', 'uridecodebin3-select-all'] 2 | executable(example, '@0@.c'.format(example), 3 | c_args : gst_plugins_base_args, 4 | include_directories: [configinc, libsinc], 5 | dependencies : [glib_deps, gst_dep], 6 | install: false) 7 | endforeach 8 | -------------------------------------------------------------------------------- /tests/examples/device-provider/meson.build: -------------------------------------------------------------------------------- 1 | library('example_device_provider', 'example-device-provider.c', 2 | include_directories: [configinc], 3 | c_args : gst_plugins_base_args, 4 | install: false, 5 | dependencies: [gst_dep], 6 | ) 7 | -------------------------------------------------------------------------------- /tests/examples/dynamic/meson.build: -------------------------------------------------------------------------------- 1 | dynamic_examples = ['addstream', 'codec-select', 'sprinkle', 'sprinkle2', 'sprinkle3'] 2 | 3 | foreach example : dynamic_examples 4 | executable(example, '@0@.c'.format(example), 5 | c_args : gst_plugins_base_args, 6 | include_directories: [configinc, libsinc], 7 | dependencies : [glib_deps, gst_dep], 8 | install: false) 9 | endforeach 10 | -------------------------------------------------------------------------------- /tests/examples/encoding/gstcapslist.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) <2010> Edward Hervey 3 | * 4 | * This library is free software; you can redistribute it and/or 5 | * modify it under the terms of the GNU Library General Public 6 | * License as published by the Free Software Foundation; either 7 | * version 2 of the License, or (at your option) any later version. 8 | * 9 | * This library is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | * Library General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU Library General Public 15 | * License along with this library; if not, write to the 16 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 17 | * Boston, MA 02110-1301, USA. 18 | */ 19 | 20 | #include 21 | 22 | GstCaps *gst_caps_list_compatible_codecs (const GstCaps *containerformat, 23 | GstCaps *codecformats, 24 | GList *muxers); 25 | 26 | GstCaps *gst_caps_list_compatible_containers (GstCaps *mediaformat, 27 | GList *containerformats); 28 | 29 | 30 | GstCaps *gst_caps_list_container_formats (GstRank minrank); 31 | 32 | GstCaps *gst_caps_list_video_encoding_formats (GstRank minrank); 33 | 34 | GstCaps *gst_caps_list_audio_encoding_formats (GstRank minrank); 35 | 36 | -------------------------------------------------------------------------------- /tests/examples/encoding/meson.build: -------------------------------------------------------------------------------- 1 | executable('encoding', 'encoding.c', 'gstcapslist.c', 2 | c_args : gst_plugins_base_args, 3 | include_directories: [configinc, libsinc], 4 | dependencies : [glib_deps, gst_dep, pbutils_dep, tag_dep, video_dep, audio_dep], 5 | install: false) 6 | -------------------------------------------------------------------------------- /tests/examples/fft/meson.build: -------------------------------------------------------------------------------- 1 | executable('fftrange', 'fftrange.c', 2 | c_args : gst_plugins_base_args, 3 | include_directories: [configinc, libsinc], 4 | dependencies : [glib_deps, gst_dep, fft_dep], 5 | install: false) 6 | -------------------------------------------------------------------------------- /tests/examples/gio/meson.build: -------------------------------------------------------------------------------- 1 | if gtk_dep.found() 2 | executable('giosrc-mounting', 'giosrc-mounting.c', 3 | c_args : gst_plugins_base_args, 4 | include_directories: [configinc, libsinc], 5 | dependencies : [glib_deps, gio_dep, gst_dep, gtk_dep], 6 | install: false) 7 | endif 8 | -------------------------------------------------------------------------------- /tests/examples/gl/cocoa/meson.build: -------------------------------------------------------------------------------- 1 | if host_system == 'darwin' 2 | appkit_dep = dependency('appleframeworks', modules : ['AppKit'], required : true) 3 | 4 | executable('cocoa-videooverlay', 'cocoa-videooverlay.m', 5 | objc_args : [gst_plugins_base_args], 6 | include_directories: [configinc], 7 | dependencies : [gstgl_dep, corefoundation_dep, appkit_dep], 8 | install: false) 9 | endif 10 | -------------------------------------------------------------------------------- /tests/examples/gl/generic/README: -------------------------------------------------------------------------------- 1 | --- Description of the generic (no GUI) examples --- 2 | 3 | - cube: 4 | Show how to have a graphic FPS greater than the input video frame rate. 5 | The source is the videotestsrc rgb. 6 | 7 | - cubeyuv: 8 | Show how to have a graphic FPS greater than the input video frame rate. 9 | The source is a local video file needed in argument. 10 | The colorspace conversion is maded by the glupload element. 11 | 12 | - doublecube: 13 | A local video source is displayed into two renderers. 14 | The first one is a normal 2D screen, the second is a 3D cube. 15 | We can visually check that the video is displayed at the same speed 16 | in the two renderers. 17 | 18 | - recordgraphic: 19 | Show how to use the glfilterapp to define the draw callback in a gstreamer client code. 20 | The scene is recorded into an avi file using mpeg4 encoder. 21 | The colorspace conversion is made by the gldownload element. 22 | -------------------------------------------------------------------------------- /tests/examples/gl/generic/cube/meson.build: -------------------------------------------------------------------------------- 1 | if have_cxx 2 | executable('cube', 'main.cpp', 3 | dependencies : [gstgl_dep, gstglproto_dep], 4 | install: false) 5 | endif 6 | -------------------------------------------------------------------------------- /tests/examples/gl/generic/cubeyuv/meson.build: -------------------------------------------------------------------------------- 1 | if have_cxx 2 | executable('cubeyuv', 'main.cpp', 3 | dependencies : [gstgl_dep, gstglproto_dep], 4 | install: false) 5 | endif 6 | -------------------------------------------------------------------------------- /tests/examples/gl/generic/doublecube/meson.build: -------------------------------------------------------------------------------- 1 | if have_cxx 2 | executable('doublecube', 'main.cpp', 3 | dependencies : [gstgl_dep, gstglproto_dep], 4 | install: false) 5 | endif 6 | -------------------------------------------------------------------------------- /tests/examples/gl/generic/meson.build: -------------------------------------------------------------------------------- 1 | # TODO :get rid of pointless subdirs 2 | subdir('cube', if_found : gl_dep) 3 | subdir('cubeyuv', if_found : gl_dep) 4 | subdir('doublecube', if_found : gl_dep) 5 | subdir('recordgraphic', if_found : gl_dep) 6 | -------------------------------------------------------------------------------- /tests/examples/gl/generic/recordgraphic/meson.build: -------------------------------------------------------------------------------- 1 | if have_cxx 2 | executable('recordgraphic', 'main.cpp', 3 | dependencies : [gstgl_dep, gstglproto_dep], 4 | install: false) 5 | endif 6 | -------------------------------------------------------------------------------- /tests/examples/gl/gtk/3dvideo/meson.build: -------------------------------------------------------------------------------- 1 | executable('3dvideo', ['main.cpp', 'mviewwidget.c'], 2 | cpp_args : [gst_plugins_base_args], 3 | include_directories: [configinc, libsinc], 4 | dependencies : [gstgtkhelper_dep, gstgl_dep, x11_dep], 5 | install: false) 6 | -------------------------------------------------------------------------------- /tests/examples/gl/gtk/README: -------------------------------------------------------------------------------- 1 | --- Description of the GTK examples --- 2 | 3 | - gtkvideooverlay: 4 | Show how to use the videooverlay interface through GTK. 5 | It's possible to switch bettween GST_STATE through four buttons. 6 | 7 | -filternovideooverlay: 8 | A more complex pipeline is switched bettween the GST states 9 | without using the videooverlay interface. 10 | 11 | -filtervideooverlay: 12 | A more complex pipeline is switched bettween the GST states. 13 | using the videooverlay interface. 14 | 15 | -fxtest: 16 | switch bettween effects of the gleffects filter. 17 | 18 | -pixbufdrop: 19 | drag and drop a png file and overlay it using alpha channel. 20 | It uses gloverlay filter. 21 | 22 | -switchvideooverlay: 23 | change the videooverlay window while the stream is playing. 24 | 25 | --- How to build the GTK examples --- 26 | 27 | Using autotools or Meson. 28 | -------------------------------------------------------------------------------- /tests/examples/gl/gtk/filternovideooverlay/meson.build: -------------------------------------------------------------------------------- 1 | executable('filternovideooverlay', 'main.cpp', 2 | cpp_args : [gst_plugins_base_args], 3 | include_directories: [configinc, libsinc], 4 | dependencies : [gstgtkhelper_dep], 5 | install: false) 6 | 7 | -------------------------------------------------------------------------------- /tests/examples/gl/gtk/filtervideooverlay/meson.build: -------------------------------------------------------------------------------- 1 | executable('filtervideooverlay', 'main.cpp', 2 | cpp_args : [gst_plugins_base_args], 3 | include_directories: [configinc, libsinc], 4 | dependencies : [gstgtkhelper_dep, x11_dep], 5 | install: false) 6 | 7 | -------------------------------------------------------------------------------- /tests/examples/gl/gtk/fxtest/meson.build: -------------------------------------------------------------------------------- 1 | executable('fxtest', 'fxtest.c', 2 | c_args : [gst_plugins_base_args], 3 | include_directories: [configinc, libsinc], 4 | dependencies : [gstgtkhelper_dep, x11_dep], 5 | install: false) 6 | 7 | executable('pixbufdrop', 'pixbufdrop.c', 8 | c_args : [gst_plugins_base_args], 9 | include_directories: [configinc, libsinc], 10 | dependencies : [gstgtkhelper_dep, x11_dep], 11 | install: false) 12 | -------------------------------------------------------------------------------- /tests/examples/gl/gtk/gstgtk.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2009 David A. Schleef 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef __GST_GTK_H__ 22 | #define __GST_GTK_H__ 23 | 24 | #include 25 | #include 26 | 27 | G_BEGIN_DECLS 28 | 29 | void gst_video_overlay_set_gtk_window (GstVideoOverlay *videooverlay, GtkWidget *window); 30 | gboolean gst_gtk_handle_need_context (GstBus *bus, GstMessage *msg, gpointer data); 31 | 32 | G_END_DECLS 33 | 34 | #endif 35 | 36 | -------------------------------------------------------------------------------- /tests/examples/gl/gtk/meson.build: -------------------------------------------------------------------------------- 1 | extra_args = [] 2 | if cc.has_argument ('-Wno-parentheses') 3 | extra_args += '-Wno-parentheses' 4 | endif 5 | 6 | if host_system == 'darwin' 7 | extra_c_args = ['-xobjective-c'] 8 | else 9 | extra_c_args = [] 10 | endif 11 | 12 | gstgtkhelper = static_library ('gstgtkhelper', 13 | ['gstgtk.c'], 14 | c_args : gst_plugins_base_args + extra_c_args, 15 | include_directories : [configinc, libsinc], 16 | dependencies : [gst_base_dep, video_dep, gtk_dep, gstgl_dep], 17 | install : false) 18 | 19 | gstgtkhelper_dep = declare_dependency(link_with: gstgtkhelper, 20 | compile_args : extra_args, 21 | include_directories : include_directories('.'), 22 | dependencies : [gst_base_dep, video_dep, gtk_dep, gstgl_dep]) 23 | 24 | subdir('filternovideooverlay') 25 | subdir('filtervideooverlay') 26 | subdir('fxtest') 27 | subdir('switchvideooverlay') 28 | subdir('3dvideo') 29 | -------------------------------------------------------------------------------- /tests/examples/gl/gtk/switchvideooverlay/meson.build: -------------------------------------------------------------------------------- 1 | executable('switchvideooverlay', 'main.cpp', 2 | cpp_args : [gst_plugins_base_args], 3 | include_directories: [configinc, libsinc], 4 | dependencies : [gstgtkhelper_dep, gstgl_dep, x11_dep], 5 | install: false) 6 | -------------------------------------------------------------------------------- /tests/examples/gl/meson.build: -------------------------------------------------------------------------------- 1 | subdir('cocoa') 2 | subdir('generic') 3 | subdir('gtk', if_found : gtk_dep) 4 | qt5core_dep = dependency('qt5', modules : ['Core'], required : false) 5 | subdir('qt', if_found: qt5core_dep) 6 | subdir('sdl') 7 | -------------------------------------------------------------------------------- /tests/examples/gl/qt/README: -------------------------------------------------------------------------------- 1 | --- Description of the Qt examples --- 2 | 3 | - videooverlay: 4 | Show how to use the videooverlay interface through Qt. 5 | The video is displayed as normal 2D scene. 6 | The window is dynamically resized to have the same size as the original video. 7 | 8 | - mousevideooverlay: 9 | Show how to use the videooverlay interface through Qt. 10 | The cube is rotating when moving the mouse (+ click maintained) 11 | 12 | - qglwidgetvideooverlay: 13 | Show how to use the videooverlay interface through Qt. 14 | The cube is rotating automatically into a QGLWidget 15 | 16 | 17 | --- How to build the Qt examples --- 18 | 19 | sudo apt-get install g++ libqt5-dev 20 | 21 | cd qglvideooverlay 22 | qmake 23 | make 24 | ./debug/qglvideooverlay 25 | -------------------------------------------------------------------------------- /tests/examples/gl/qt/gl-compat-defines.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2020 Matthew Waters 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #include 22 | 23 | /* The glext.h guard was renamed in 2018, but some software which 24 | * includes their own copy of the GL headers (such as qt) might have 25 | * older version which use the old guard. This would result in the 26 | * header being included again (and symbols redefined). 27 | * 28 | * To avoid this, we define the "old" guard if the "new" guard is 29 | * defined.*/ 30 | #if GST_GL_HAVE_OPENGL 31 | #ifdef __gl_glext_h_ 32 | #ifndef __glext_h_ 33 | #define __glext_h_ 1 34 | #endif 35 | #endif 36 | #endif 37 | -------------------------------------------------------------------------------- /tests/examples/gl/qt/meson.build: -------------------------------------------------------------------------------- 1 | if get_option('qt5').disabled() 2 | subdir_done() 3 | endif 4 | 5 | qt5_mod = import('qt5') 6 | 7 | qt5gui_dep = dependency('qt5', modules : ['Core', 'Gui', 'Widgets'], required : false) 8 | qt5opengl_dep = dependency('qt5', modules : ['OpenGL'], required : false) 9 | #FIXME; other platforms 10 | libgl = cc.find_library ('GL', required : false) 11 | 12 | qt_cxx_warn_less = cxx.get_supported_arguments(['-Wno-aggregate-return']) 13 | 14 | if qt5gui_dep.found() 15 | subdir('videooverlay') 16 | if libgl.found() 17 | subdir('mousevideooverlay') 18 | if qt5opengl_dep.found() 19 | subdir('qglwidgetvideooverlay') 20 | subdir('qglwtextureshare') 21 | endif 22 | endif 23 | endif 24 | -------------------------------------------------------------------------------- /tests/examples/gl/qt/mousevideooverlay/meson.build: -------------------------------------------------------------------------------- 1 | sources = [ 2 | 'main.cpp', 3 | 'gstthread.cpp', 4 | 'pipeline.cpp', 5 | 'qrenderer.cpp', 6 | ] 7 | 8 | moc_headers = [ 9 | 'gstthread.h', 10 | 'pipeline.h', 11 | 'qrenderer.h', 12 | ] 13 | 14 | moc_files = qt5_mod.preprocess(moc_headers : moc_headers) 15 | executable('mousevideoverlay', sources, moc_files, 16 | cpp_args : [gst_plugins_base_args] + qt_cxx_warn_less, 17 | include_directories: [configinc, libsinc], 18 | dependencies : [qt5core_dep, qt5gui_dep, gst_dep, video_dep, gstgl_dep, gstglproto_dep], 19 | install: false) 20 | -------------------------------------------------------------------------------- /tests/examples/gl/qt/mousevideooverlay/mousevideooverlay.pri: -------------------------------------------------------------------------------- 1 | #Header files 2 | HEADERS += ./gstthread.h \ 3 | ./pipeline.h \ 4 | ./qrenderer.h 5 | 6 | #Source files 7 | SOURCES += ./gstthread.cpp \ 8 | ./main.cpp \ 9 | ./pipeline.cpp \ 10 | ./qrenderer.cpp 11 | -------------------------------------------------------------------------------- /tests/examples/gl/qt/mousevideooverlay/mousevideooverlay.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | TARGET = mousevideooverlay 3 | DESTDIR = ./debug 4 | QT += gui widgets opengl 5 | CONFIG += debug link_pkgconfig 6 | DEFINES += UNICODE QT_THREAD_SUPPORT QT_CORE_LIB QT_GUI_LIB 7 | PKGCONFIG = gstreamer-1.0 gstreamer-video-1.0 8 | 9 | win32 { 10 | DEFINES += WIN32 11 | INCLUDEPATH += ./GeneratedFiles \ 12 | ./GeneratedFiles/Debug \ 13 | C:/gstreamer/include \ 14 | C:/gstreamer/include/libxml2 \ 15 | C:/gstreamer/include/glib-2.0 \ 16 | C:/gstreamer/lib/glib-2.0/include \ 17 | C:/gstreamer/include/gstreamer-1.0 18 | LIBS += -L"C:/gstreamer/lib" \ 19 | -L"C:/gstreamer/bin" \ 20 | -lgstreamer-1.0 \ 21 | -lgstvideo-1.0 \ 22 | -lglib-2.0 \ 23 | -lgmodule-2.0 \ 24 | -lgobject-2.0 \ 25 | -lgthread-2.0 \ 26 | -lopengl32 \ 27 | -lglu32 28 | } 29 | 30 | unix { 31 | DEFINES += UNIX 32 | INCLUDEPATH += GeneratedFiles \ 33 | GeneratedFiles/Debug 34 | LIBS += -lGLU -lGL 35 | } 36 | 37 | DEPENDPATH += . 38 | MOC_DIR += ./GeneratedFiles/debug 39 | OBJECTS_DIR += debug 40 | UI_DIR += ./GeneratedFiles 41 | RCC_DIR += ./GeneratedFiles 42 | 43 | #Include file(s) 44 | include(mousevideooverlay.pri) 45 | -------------------------------------------------------------------------------- /tests/examples/gl/qt/qglwidgetvideooverlay/meson.build: -------------------------------------------------------------------------------- 1 | sources = [ 2 | 'main.cpp', 3 | 'gstthread.cpp', 4 | 'pipeline.cpp', 5 | 'qglrenderer.cpp', 6 | ] 7 | 8 | moc_headers = [ 9 | 'gstthread.h', 10 | 'pipeline.h', 11 | 'qglrenderer.h', 12 | ] 13 | 14 | moc_files = qt5_mod.preprocess(moc_headers : moc_headers) 15 | executable('qglwidgetvideoverlay', sources, moc_files, 16 | cpp_args : [gst_plugins_base_args] + qt_cxx_warn_less, 17 | include_directories: [configinc, libsinc], 18 | dependencies : [qt5core_dep, qt5gui_dep, qt5opengl_dep, gst_dep, video_dep, gstgl_dep, gstglproto_dep], 19 | install: false) 20 | -------------------------------------------------------------------------------- /tests/examples/gl/qt/qglwidgetvideooverlay/qglrenderer.h: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2008-2009 Julien Isorce 4 | * 5 | * This library is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU Library General Public 7 | * License as published by the Free Software Foundation; either 8 | * version 2 of the License, or (at your option) any later version. 9 | * 10 | * This library is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 | * Library General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU Library General Public 16 | * License along with this library; if not, write to the 17 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 | * Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef QGLRENDERER_H 22 | #define QGLRENDERER_H 23 | 24 | #include 25 | #include "gstthread.h" 26 | 27 | class QGLRenderer : public QGLWidget 28 | { 29 | Q_OBJECT 30 | 31 | public: 32 | QGLRenderer(const QString videoLocation, QWidget *parent = nullptr); 33 | ~QGLRenderer(); 34 | void paintEvent(QPaintEvent* event); 35 | void closeEvent (QCloseEvent* event); 36 | 37 | signals: 38 | void exposeRequested(); 39 | void closeRequested(); 40 | 41 | private: 42 | GstThread m_gt; 43 | }; 44 | 45 | #endif // QGLRENDERER_H 46 | -------------------------------------------------------------------------------- /tests/examples/gl/qt/qglwidgetvideooverlay/qglwidgetvideooverlay.pri: -------------------------------------------------------------------------------- 1 | #Header files 2 | HEADERS += ./gstthread.h \ 3 | ./pipeline.h \ 4 | ./qglrenderer.h 5 | 6 | #Source files 7 | SOURCES += ./gstthread.cpp \ 8 | ./main.cpp \ 9 | ./pipeline.cpp \ 10 | ./qglrenderer.cpp 11 | -------------------------------------------------------------------------------- /tests/examples/gl/qt/qglwidgetvideooverlay/qglwidgetvideooverlay.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = app 2 | TARGET = qglwidgetvideooverlay 3 | DESTDIR = ./debug 4 | QT += opengl 5 | CONFIG += debug 6 | CONFIG += link_pkgconfig 7 | DEFINES += UNICODE QT_THREAD_SUPPORT QT_CORE_LIB QT_GUI_LIB 8 | PKGCONFIG = gstreamer-1.0 gstreamer-video-1.0 9 | 10 | win32 { 11 | DEFINES += WIN32 12 | INCLUDEPATH += ./GeneratedFiles \ 13 | ./GeneratedFiles/Debug \ 14 | C:/gstreamer/include \ 15 | C:/gstreamer/include/libxml2 \ 16 | C:/gstreamer/include/glib-2.0 \ 17 | C:/gstreamer/lib/glib-2.0/include \ 18 | C:/gstreamer/include/gstreamer-1.0 19 | LIBS += -L"C:/gstreamer/lib" \ 20 | -L"C:/gstreamer/bin" \ 21 | -lgstreamer-1.0 \ 22 | -lgstvideo-1.0 \ 23 | -lglib-2.0 \ 24 | -lgmodule-2.0 \ 25 | -lgobject-2.0 \ 26 | -lgthread-2.0 \ 27 | -lopengl32 \ 28 | -lglu32 29 | } 30 | 31 | unix { 32 | DEFINES += UNIX 33 | INCLUDEPATH += GeneratedFiles \ 34 | GeneratedFiles/Debug 35 | LIBS += \ 36 | -lGLU \ 37 | -lGL 38 | } 39 | 40 | DEPENDPATH += . 41 | MOC_DIR += ./GeneratedFiles/debug 42 | OBJECTS_DIR += debug 43 | UI_DIR += ./GeneratedFiles 44 | RCC_DIR += ./GeneratedFiles 45 | 46 | #Include file(s) 47 | include(qglwidgetvideooverlay.pri) 48 | -------------------------------------------------------------------------------- /tests/examples/gl/qt/qglwtextureshare/README: -------------------------------------------------------------------------------- 1 | Requires: >= Qt 5.1 for the x11extras module (or else you need to 2 | get x11extras from gitorious yourself) 3 | 4 | This example illustrates how to integrate Gstreamer GL plugin with 5 | Qt. In particular it uses glupload with fakesink elements to create 6 | texture with decoded video frame. This texture is shared with 7 | QGLWidget derived class, which paints a cube with video texture on 8 | each face. 9 | 10 | To compile the example, include and library paths might be adjusted in 11 | .pro file according to your installation of the gstreamer and 12 | corresponding development files. Most probably, the adjustments will 13 | be necessary on Windows. 14 | 15 | To run the example simply start executable file after compilation. If 16 | there is no command line arguments provided, then videotestsrc element 17 | will be used to generate video. The following pipeline will be created 18 | in this case: 19 | 20 | videotestsrc ! video/x-raw, width=640, height=480, framerate=(fraction)30/1 ! glupload ! fakesink sync=1 21 | 22 | It is also possible to provide the video file name as a first command 23 | line parameter, i.e. ./qglwtextureshare myvideo.ogv . In this case, 24 | the following pipeline will be executed: 25 | 26 | filesrc location=myvideo.ogv ! decodebin2 ! glupload ! fakesink sync=1 27 | 28 | I would appreciate any feedback and improvement suggestions for this 29 | example. 30 | 31 | Have fun :-) 32 | Andrey Nechypurenko (andreynech@gmail.com) 33 | -------------------------------------------------------------------------------- /tests/examples/gl/qt/qglwtextureshare/cocoa_utils.mm: -------------------------------------------------------------------------------- 1 | /* 2 | * GStreamer 3 | * Copyright (C) 2010 Julien Isorce 4 | * Copyright (C) 2010 Nuno Santos 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #if !defined(MAC_OS_X_VERSION_MAX_ALLOWED) || MAC_OS_X_VERSION_MAX_ALLOWED >= 1014 23 | # define GL_SILENCE_DEPRECATION 24 | #endif 25 | 26 | #import 27 | void *qt_current_nsopengl_context() 28 | { 29 | return CGLGetCurrentContext (); 30 | } 31 | -------------------------------------------------------------------------------- /tests/examples/gl/qt/qglwtextureshare/meson.build: -------------------------------------------------------------------------------- 1 | sources = [ 2 | 'main.cpp', 3 | 'gstthread.cpp', 4 | 'pipeline.cpp', 5 | 'qglrenderer.cpp', 6 | ] 7 | 8 | moc_headers = [ 9 | 'gstthread.h', 10 | 'pipeline.h', 11 | 'qglrenderer.h', 12 | ] 13 | 14 | qtwinsys_deps = [] 15 | if enabled_gl_winsys.contains('x11') and enabled_gl_platforms.contains('glx') 16 | qt5x11extras = dependency('qt5', modules : ['X11Extras'], required : false) 17 | if qt5x11extras.found() 18 | qtwinsys_deps += [qt5x11extras, glx_dep] 19 | else 20 | subdir_done() 21 | endif 22 | endif 23 | 24 | moc_files = qt5_mod.preprocess(moc_headers : moc_headers) 25 | executable('qglwtextureshare', sources, moc_files, 26 | cpp_args : [gst_plugins_base_args] + qt_cxx_warn_less, 27 | include_directories: [configinc, libsinc], 28 | dependencies : [qt5core_dep, qt5gui_dep, qt5opengl_dep, qtwinsys_deps, gst_dep, video_dep, gstgl_dep, gstglproto_dep], 29 | install: false) 30 | -------------------------------------------------------------------------------- /tests/examples/gl/qt/videooverlay/meson.build: -------------------------------------------------------------------------------- 1 | executable('videoverlay', 'videooverlay.cpp', 2 | cpp_args : [gst_plugins_base_args], 3 | include_directories: [configinc, libsinc], 4 | dependencies : [qt5core_dep, qt5gui_dep, gst_dep, video_dep], 5 | install: false) 6 | -------------------------------------------------------------------------------- /tests/examples/gl/sdl/meson.build: -------------------------------------------------------------------------------- 1 | sdl_dep = dependency('sdl2', version : '>=2.0', required : get_option('examples')) 2 | have_sdl_gl = build_gstgl and ( 3 | enabled_gl_apis.contains('gl') and 4 | (enabled_gl_platforms.contains('glx') or enabled_gl_platforms.contains('wgl')) and 5 | (enabled_gl_winsys.contains('x11') or enabled_gl_winsys.contains('win32')) 6 | ) 7 | if sdl_dep.found() and have_sdl_gl 8 | executable('sdlshare', 9 | 'sdlshare.c', 10 | install: false, 11 | dependencies : [gst_base_dep, gstgl_dep, sdl_dep, gl_dep, glx_dep]) 12 | 13 | executable('sdlshare2', 14 | 'sdlshare2.c', 15 | install: false, 16 | dependencies : [gst_base_dep, gstgl_dep, sdl_dep, gl_dep, glx_dep]) 17 | endif 18 | -------------------------------------------------------------------------------- /tests/examples/meson.build: -------------------------------------------------------------------------------- 1 | subdir('app') 2 | subdir('audio') 3 | subdir('compositor') 4 | subdir('device-provider') 5 | subdir('dynamic') 6 | subdir('decodebin_next') 7 | subdir('encoding') 8 | subdir('fft') 9 | subdir('gio') 10 | if build_gstgl 11 | subdir('gl') 12 | endif 13 | subdir('overlay') 14 | subdir('overlaycomposition') 15 | subdir('playback') 16 | subdir('playrec') 17 | subdir('seek') 18 | subdir('snapshot') 19 | -------------------------------------------------------------------------------- /tests/examples/overlay/qtgv-videooverlay.h: -------------------------------------------------------------------------------- 1 | /* GStreamer 2 | * Copyright (C) <2010> Alexander Bokovoy 3 | * 4 | * qtgv-xoverlay: demonstrate overlay handling using qt graphics view 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Library General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Library General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Library General Public 17 | * License along with this library; if not, write to the 18 | * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 19 | * Boston, MA 02110-1301, USA. 20 | */ 21 | 22 | #ifndef QTGV_XOVERLAY_H 23 | #define QTGV_XOVERLAY_H 24 | 25 | #include 26 | #include 27 | 28 | 29 | class SinkPipeline : public QObject 30 | { 31 | Q_OBJECT 32 | public: 33 | SinkPipeline(QGraphicsView *parent = 0); 34 | ~SinkPipeline(); 35 | 36 | void startPipeline(); 37 | 38 | private: 39 | GstElement *pipeline; 40 | GstElement *sink; 41 | GstElement *src; 42 | WId xwinid; 43 | }; 44 | 45 | #endif // QTGV_XOVERLAY_H 46 | -------------------------------------------------------------------------------- /tests/examples/overlaycomposition/meson.build: -------------------------------------------------------------------------------- 1 | executable('overlaycomposition', 'overlaycomposition.c', 2 | dependencies: [video_dep, gst_dep, gio_dep, libm], 3 | c_args : gst_plugins_base_args, 4 | include_directories : [configinc], 5 | install: false) 6 | -------------------------------------------------------------------------------- /tests/examples/playback/meson.build: -------------------------------------------------------------------------------- 1 | if gtk_dep.found() 2 | if gtk_quartz_dep.found() 3 | quartz_cflags = ['-xobjective-c'] 4 | else 5 | quartz_cflags = [] 6 | endif 7 | 8 | executable('playback-test', 'playback-test.c', 9 | c_args : gst_plugins_base_args + quartz_cflags, 10 | include_directories: [configinc, libsinc], 11 | dependencies : [glib_deps, gst_dep, video_dep, libm, gtk_dep], 12 | install: false) 13 | endif 14 | -------------------------------------------------------------------------------- /tests/examples/playrec/meson.build: -------------------------------------------------------------------------------- 1 | executable('playrec', 'playrec.c', 2 | c_args : gst_plugins_base_args, 3 | include_directories: [configinc, libsinc], 4 | dependencies : [glib_deps, gst_dep], 5 | install: false) 6 | -------------------------------------------------------------------------------- /tests/examples/seek/meson.build: -------------------------------------------------------------------------------- 1 | if gtk_x11_dep.found() 2 | if cc.compiles(''' 3 | #include 4 | #include 5 | void foo (void) { 6 | struct js_event js; 7 | js.type = JS_EVENT_AXIS; 8 | }''', name : 'Linux joystick headers needed by jseek example') 9 | executable('jsseek', 'jsseek.c', 10 | c_args : gst_plugins_base_args, 11 | include_directories: [configinc, libsinc], 12 | dependencies : [glib_deps, gst_dep, video_dep, libm, gtk_dep], 13 | install: false) 14 | endif 15 | executable('scrubby', 'scrubby.c', 16 | c_args : gst_plugins_base_args, 17 | include_directories: [configinc, libsinc], 18 | dependencies : [glib_deps, gst_dep, video_dep, libm, gtk_dep], 19 | install: false) 20 | endif 21 | 22 | executable('stepping', 'stepping.c', 23 | c_args : gst_plugins_base_args, 24 | include_directories: [configinc, libsinc], 25 | dependencies : [libm, glib_deps, gst_dep, video_dep], 26 | install: false) 27 | 28 | executable('stepping2', 'stepping2.c', 29 | c_args : gst_plugins_base_args, 30 | include_directories: [configinc, libsinc], 31 | dependencies : [libm, glib_deps, gst_dep, video_dep], 32 | install: false) 33 | 34 | executable('instant-rate-change', 'instant-rate-change.c', 35 | c_args : gst_plugins_base_args, 36 | include_directories: [configinc, libsinc], 37 | dependencies : [libm, glib_deps, gst_dep, video_dep], 38 | install: false) 39 | 40 | -------------------------------------------------------------------------------- /tests/examples/snapshot/meson.build: -------------------------------------------------------------------------------- 1 | if gdk_pixbuf_dep.found() 2 | executable('snapshot', 'snapshot.c', 3 | c_args : gst_plugins_base_args, 4 | include_directories: [configinc, libsinc], 5 | dependencies : [libm, glib_deps, gst_dep, video_dep, gdk_pixbuf_dep], 6 | install: false) 7 | endif 8 | -------------------------------------------------------------------------------- /tests/files/623663.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-plugins-base/ce937bcb21412d7b3539a2da0509cc96260562f8/tests/files/623663.mts -------------------------------------------------------------------------------- /tests/files/hls.m3u8: -------------------------------------------------------------------------------- 1 | #EXTM3U 2 | #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=246221 3 | 0240/prog_index.m3u8 4 | #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=38872 5 | 0064/prog_index.m3u8 6 | #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=153059 7 | 0150/prog_index.m3u8 8 | #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=455394 9 | 0440/prog_index.m3u8 10 | #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=650356 11 | 0640/prog_index.m3u8 12 | #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=861738 13 | 0840/prog_index.m3u8 14 | #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1258987 15 | 1240/prog_index.m3u8 16 | -------------------------------------------------------------------------------- /tests/files/partialframe.mjpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-plugins-base/ce937bcb21412d7b3539a2da0509cc96260562f8/tests/files/partialframe.mjpeg -------------------------------------------------------------------------------- /tests/files/test.mkv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-plugins-base/ce937bcb21412d7b3539a2da0509cc96260562f8/tests/files/test.mkv -------------------------------------------------------------------------------- /tests/files/test.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-plugins-base/ce937bcb21412d7b3539a2da0509cc96260562f8/tests/files/test.mp3 -------------------------------------------------------------------------------- /tests/files/theora-vorbis.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GStreamer/gst-plugins-base/ce937bcb21412d7b3539a2da0509cc96260562f8/tests/files/theora-vorbis.ogg -------------------------------------------------------------------------------- /tests/meson.build: -------------------------------------------------------------------------------- 1 | pluginsdirs = [] 2 | if gst_dep.type_name() == 'pkgconfig' 3 | pluginsdirs = [gst_dep.get_pkgconfig_variable('pluginsdir')] 4 | gst_plugin_scanner_dir = gst_dep.get_pkgconfig_variable('pluginscannerdir') 5 | else 6 | gst_plugin_scanner_dir = gst_proj.get_variable('gst_scanner_dir') 7 | endif 8 | gst_plugin_scanner_path = join_paths(gst_plugin_scanner_dir, 'gst-plugin-scanner') 9 | 10 | if not get_option('tests').disabled() and gst_check_dep.found() 11 | subdir('check') 12 | subdir('icles') 13 | subdir('validate') 14 | endif 15 | if not get_option('examples').disabled() 16 | subdir('examples') 17 | endif 18 | -------------------------------------------------------------------------------- /tests/validate/audiotestsrc/reverse.validatetest: -------------------------------------------------------------------------------- 1 | meta, 2 | args = { 3 | "audiotestsrc name=src samplesperbuffer=1024 ! audio/x-raw,format=S16LE,rate=44100 ! fakesink name=asink sync=true", 4 | }, 5 | configs = { 6 | "$(validateflow), pad=asink:sink, record-buffers=true", 7 | }, 8 | handles-states=true, 9 | ignore-eos=true 10 | 11 | play; 12 | seek, start=0.0, stop=0.5, rate=-1.0, flags=accurate+flush 13 | 14 | crank-clock, expected-time=0.0 15 | 16 | # roundup((44100 / 2 / 1024) - 1 (already cranked) + 1 (for eos)) = 22 17 | crank-clock, repeat=22 18 | 19 | set-property, target-element-name="src", property-name="samplesperbuffer", property-value=4410, on-message=eos 20 | seek, start=0.0, stop=1.0, rate=-1.0, flags=accurate+flush 21 | crank-clock, expected-elapsed-time=0.0 22 | crank-clock, repeat=10, expected-elapsed-time=0.1 23 | 24 | stop, on-message=eos; -------------------------------------------------------------------------------- /tests/validate/compositor/renogotiate_failing_unsupported_src_format.validatetest: -------------------------------------------------------------------------------- 1 | meta, 2 | args = { 3 | "videotestsrc num-buffers=20 ! capsfilter caps=\"video/x-raw,format=I420\" ! capssetter name=cs ! compositor name=c ! fakesink sync=true\ 4 | videotestsrc num-buffers=20 ! capsfilter caps=\"video/x-raw,format=I420\" ! c.", 5 | }, 6 | handles-states=true 7 | 8 | play; 9 | crank-clock, repeat=10; 10 | set-properties, cs::caps="video/x-raw,format=ARGB64" 11 | crank-clock, repeat=11; 12 | play 13 | -------------------------------------------------------------------------------- /tests/validate/encodebin/set-encoder-properties.validatetest: -------------------------------------------------------------------------------- 1 | meta, 2 | seek=false, 3 | handles-states=true, 4 | args = { 5 | "audiotestsrc num-buffers=4 ! encodebin name=ebin profile=\"vorbisenc|element-properties,managed=true,name=audioencoder\" ! fakesink", 6 | } 7 | 8 | pause 9 | check-properties, audioencoder::managed=true 10 | 11 | set-properties, ebin::profile::element-properties=[ 12 | element-properties-map, map = { 13 | [vorbisenc, managed=false], 14 | [somethingelse, whatever=false], 15 | }, 16 | ] 17 | 18 | check-properties, audioencoder::managed=false 19 | 20 | stop -------------------------------------------------------------------------------- /tests/validate/videorate/10_to_1fps.validatetest: -------------------------------------------------------------------------------- 1 | set-globals, in_framerate="(GstFraction)10/1", out_framerate="(GstFraction)1/1" 2 | 3 | include, location="videorate-test.meta" 4 | 5 | play 6 | seek, start=0.0, stop=5.0, flags=accurate+flush, rate=1.0 7 | crank-clock, expected-elapsed-time=0.0 8 | crank-clock, repeat=4, expected-elapsed-time=1.0 9 | crank-clock, expected-elapsed-time=1.0 10 | stop, on-message=eos -------------------------------------------------------------------------------- /tests/validate/videorate/check-rate-prop.meta: -------------------------------------------------------------------------------- 1 | # Common metadatas to check the videorate element behavior with different 2 | # framerate specified by previously setting variables with: 3 | # ``` 4 | # set-global, rate=, decoder= 5 | # ``` 6 | # and then `include, location="check-rate-prop.meta" to setup the test with this 7 | # file 8 | 9 | meta, 10 | args = { 11 | "videotestsrc pattern=ball animation-mode=frames ! video/x-raw,format=I420,framerate=30/1,width=320,height=240 $(decoder) videorate name=videorate rate=$(rate) ! fakesink sync=true qos=true", 12 | }, 13 | configs = { 14 | "$(validateflow), pad=videorate:sink, buffers-checksum=as-id, ignored-event-types={ tag }", 15 | "$(validateflow), pad=videorate:src, buffers-checksum=as-id, ignored-event-types={ tag }", 16 | } 17 | 18 | crank-clock, expected-time=0.0 19 | crank-clock, repeat=9 20 | wait, on-clock=true 21 | check-position, expected-position=300000000 22 | stop -------------------------------------------------------------------------------- /tests/validate/videorate/rate_0_5.validatetest: -------------------------------------------------------------------------------- 1 | set-globals, rate=(string)"0.5", decoder="!" 2 | 3 | include, location="check-rate-prop.meta" 4 | -------------------------------------------------------------------------------- /tests/validate/videorate/rate_0_5/flow-expectations/log-videorate-sink-expected: -------------------------------------------------------------------------------- 1 | event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1; 2 | event caps: video/x-raw, format=(string)I420, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320; 3 | event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000 4 | buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont 5 | buffer: content-id=1, pts=0:00:00.033333333, dur=0:00:00.033333333 6 | buffer: content-id=2, pts=0:00:00.066666666, dur=0:00:00.033333334 7 | buffer: content-id=3, pts=0:00:00.100000000, dur=0:00:00.033333333 8 | buffer: content-id=4, pts=0:00:00.133333333, dur=0:00:00.033333333 9 | buffer: content-id=5, pts=0:00:00.166666666, dur=0:00:00.033333334 10 | buffer: content-id=6, pts=0:00:00.200000000, dur=0:00:00.033333333 11 | -------------------------------------------------------------------------------- /tests/validate/videorate/rate_0_5/flow-expectations/log-videorate-src-expected: -------------------------------------------------------------------------------- 1 | event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1; 2 | event caps: video/x-raw, format=(string)I420, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320; 3 | event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000 4 | buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont 5 | buffer: content-id=0, pts=0:00:00.033333333, dur=0:00:00.033333333, flags=gap 6 | buffer: content-id=1, pts=0:00:00.066666666, dur=0:00:00.033333334 7 | buffer: content-id=2, pts=0:00:00.100000000, dur=0:00:00.033333333 8 | buffer: content-id=2, pts=0:00:00.133333333, dur=0:00:00.033333333, flags=gap 9 | buffer: content-id=2, pts=0:00:00.166666666, dur=0:00:00.033333334, flags=gap 10 | buffer: content-id=3, pts=0:00:00.200000000, dur=0:00:00.033333333 11 | buffer: content-id=3, pts=0:00:00.233333333, dur=0:00:00.033333333, flags=gap 12 | buffer: content-id=4, pts=0:00:00.266666666, dur=0:00:00.033333334 13 | buffer: content-id=5, pts=0:00:00.300000000, dur=0:00:00.033333333 14 | buffer: content-id=5, pts=0:00:00.333333333, dur=0:00:00.033333333, flags=gap 15 | -------------------------------------------------------------------------------- /tests/validate/videorate/rate_0_5_with_decoder.validatetest: -------------------------------------------------------------------------------- 1 | # Using an encoder/decoder to test QoS handling 2 | # FIXME: Use a fakevideodec once merged! 3 | set-globals, rate=(string)"0.5", decoder="! theoraenc ! theoradec !" 4 | 5 | include, location="check-rate-prop.meta" -------------------------------------------------------------------------------- /tests/validate/videorate/rate_0_5_with_decoder/flow-expectations/log-videorate-sink-expected: -------------------------------------------------------------------------------- 1 | event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1; 2 | event caps: video/x-raw, chroma-site=(string)jpeg, colorimetry=(string)2:4:5:0, format=(string)I420, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320; 3 | event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000 4 | buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont 5 | buffer: content-id=1, pts=0:00:00.033333333, dur=0:00:00.033333333 6 | buffer: content-id=2, pts=0:00:00.066666666, dur=0:00:00.033333334 7 | buffer: content-id=3, pts=0:00:00.100000000, dur=0:00:00.033333333 8 | buffer: content-id=4, pts=0:00:00.133333333, dur=0:00:00.033333333 9 | buffer: content-id=5, pts=0:00:00.166666666, dur=0:00:00.033333334 10 | buffer: content-id=6, pts=0:00:00.200000000, dur=0:00:00.033333333 11 | -------------------------------------------------------------------------------- /tests/validate/videorate/rate_2_0.validatetest: -------------------------------------------------------------------------------- 1 | set-globals, rate=(string)"2.0", decoder="!" 2 | 3 | include, location="check-rate-prop.meta" -------------------------------------------------------------------------------- /tests/validate/videorate/rate_2_0/flow-expectations/log-videorate-src-expected: -------------------------------------------------------------------------------- 1 | event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1; 2 | event caps: video/x-raw, format=(string)I420, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320; 3 | event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000 4 | buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont 5 | buffer: content-id=2, pts=0:00:00.033333333, dur=0:00:00.033333333 6 | buffer: content-id=4, pts=0:00:00.066666666, dur=0:00:00.033333334 7 | buffer: content-id=6, pts=0:00:00.100000000, dur=0:00:00.033333333 8 | buffer: content-id=8, pts=0:00:00.133333333, dur=0:00:00.033333333 9 | buffer: content-id=10, pts=0:00:00.166666666, dur=0:00:00.033333334 10 | buffer: content-id=12, pts=0:00:00.200000000, dur=0:00:00.033333333 11 | buffer: content-id=14, pts=0:00:00.233333333, dur=0:00:00.033333333 12 | buffer: content-id=16, pts=0:00:00.266666666, dur=0:00:00.033333334 13 | buffer: content-id=18, pts=0:00:00.300000000, dur=0:00:00.033333333 14 | buffer: content-id=20, pts=0:00:00.333333333, dur=0:00:00.033333333 15 | -------------------------------------------------------------------------------- /tests/validate/videorate/rate_2_0_with_decoder.validatetest: -------------------------------------------------------------------------------- 1 | # Using an encoder/decoder to test QoS handling 2 | # FIXME: Use a fakevideodec once merged! 3 | set-globals, rate=(string)"0.5", decoder="! theoraenc ! theoradec !" 4 | 5 | include, location="check-rate-prop.meta" -------------------------------------------------------------------------------- /tests/validate/videorate/rate_2_0_with_decoder/flow-expectations/log-videorate-sink-expected: -------------------------------------------------------------------------------- 1 | event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1; 2 | event caps: video/x-raw, chroma-site=(string)jpeg, colorimetry=(string)2:4:5:0, format=(string)I420, framerate=(fraction)30/1, height=(int)240, interlace-mode=(string)progressive, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320; 3 | event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000 4 | buffer: content-id=0, pts=0:00:00.000000000, dur=0:00:00.033333333, flags=discont 5 | buffer: content-id=1, pts=0:00:00.033333333, dur=0:00:00.033333333 6 | buffer: content-id=2, pts=0:00:00.066666666, dur=0:00:00.033333334 7 | buffer: content-id=3, pts=0:00:00.100000000, dur=0:00:00.033333333 8 | buffer: content-id=4, pts=0:00:00.133333333, dur=0:00:00.033333333 9 | buffer: content-id=5, pts=0:00:00.166666666, dur=0:00:00.033333334 10 | buffer: content-id=6, pts=0:00:00.200000000, dur=0:00:00.033333333 11 | -------------------------------------------------------------------------------- /tests/validate/videorate/reverse.10_to_1fps.validatetest: -------------------------------------------------------------------------------- 1 | set-globals, in_framerate="(GstFraction)10/1", out_framerate="(GstFraction)1/1" 2 | 3 | include, location="videorate-test.meta" 4 | 5 | play 6 | seek, start=0.0, stop=5.0, flags=accurate+flush, rate=-1.0 7 | 8 | # First buffer is display as fast as possible 9 | crank-clock, expected-elapsed-time=0.0 10 | crank-clock, repeat=4, expected-elapsed-time=1.0 11 | 12 | # Waiting 1 second on EOS 13 | crank-clock, expected-elapsed-time=1.0 14 | 15 | seek, start=5.0, stop=10.0, flags=accurate+flush, rate=-1.0, on-message=eos 16 | 17 | # First buffer is display as fast as possible 18 | crank-clock, expected-elapsed-time=0.0 19 | crank-clock, repeat=4, expected-elapsed-time=1.0 20 | 21 | # Waiting 1 second on EOS 22 | crank-clock, expected-elapsed-time=1.0 23 | 24 | stop, on-message=eos 25 | -------------------------------------------------------------------------------- /tests/validate/videorate/reverse.10_to_30fps.validatetest: -------------------------------------------------------------------------------- 1 | set-globals, in_framerate="(GstFraction)10/1", out_framerate="(GstFraction)30/1" 2 | 3 | include, location="videorate-test.meta" 4 | 5 | play 6 | seek, start=0.0, stop=1.0, flags=accurate+flush, rate=-1.0 7 | 8 | # First buffer is display as fast as possible 9 | crank-clock, expected-elapsed-time=0 10 | crank-clock, repeat=29 11 | 12 | # Waiting 1 second on EOS 13 | crank-clock, expected-elapsed-time=(guint64)33333334 14 | stop, on-message=eos 15 | 16 | -------------------------------------------------------------------------------- /tests/validate/videorate/reverse.1_to_10fps.validatetest: -------------------------------------------------------------------------------- 1 | set-globals, in_framerate="(GstFraction)1/1", out_framerate="(GstFraction)10/1" 2 | 3 | include, location="videorate-test.meta" 4 | 5 | play 6 | seek, start=0.0, stop=1.0, flags=accurate+flush, rate=-1.0 7 | 8 | # First buffer is display as fast as possible 9 | crank-clock, expected-elapsed-time=0.0 10 | crank-clock, repeat=9, expected-elapsed-time=0.1 11 | 12 | # Waiting 1 second on EOS 13 | crank-clock, expected-elapsed-time=0.1 14 | stop, on-message=eos 15 | -------------------------------------------------------------------------------- /tests/validate/videorate/reverse.1_to_10fps/flow-expectations/log-videorate-sink-expected: -------------------------------------------------------------------------------- 1 | event stream-start: GstEventStreamStart, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1; 2 | event caps: video/x-raw, format=(string)I420, framerate=(fraction)1/1, height=(int)240, interlace-mode=(string)progressive, multiview-mode=(string)mono, pixel-aspect-ratio=(fraction)1/1, width=(int)320; 3 | event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=none, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:00.000000000 4 | buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:01.000000000, flags=discont 5 | buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:01.000000000, dur=0:00:01.000000000 6 | event flush-start: (no structure) 7 | event flush-stop: GstEventFlushStop, reset-time=(boolean)true; 8 | event segment: format=TIME, start=0:00:00.000000000, offset=0:00:00.000000000, stop=0:00:01.000000000, rate=-1.000000, flags=0x01, time=0:00:00.000000000, base=0:00:00.000000000, position=0:00:01.000000000 9 | buffer: checksum=d13b763048b4e8a132923ccec0cb0989a33ef44b, pts=0:00:01.000000000, dur=0:00:01.000000000, flags=discont 10 | buffer: checksum=5074004a070c85d97cc9f58fab273813c95b748c, pts=0:00:00.000000000, dur=0:00:01.000000000, flags=discont 11 | event eos: (no structure) 12 | -------------------------------------------------------------------------------- /tests/validate/videorate/reverse.30fps.validatetest: -------------------------------------------------------------------------------- 1 | set-globals, in_framerate="(GstFraction)30/1", out_framerate="(GstFraction)30/1" 2 | 3 | include, location="videorate-test.meta" 4 | 5 | play 6 | seek, start=0.0, stop=1.0, flags=accurate+flush, rate=-1.0 7 | 8 | # First buffer is display as fast as possible 9 | crank-clock, expected-elapsed-time=(guint64)0 10 | crank-clock, repeat=29 11 | 12 | # Waiting on EOS 13 | crank-clock, expected-elapsed-time=(guint64)33333334 14 | stop, on-message=eos -------------------------------------------------------------------------------- /tests/validate/videorate/reverse.variable_to_10fps.validatetest: -------------------------------------------------------------------------------- 1 | set-globals, in_framerate=(string)"0/1", out_framerate=(string)"10/1" 2 | 3 | meta, 4 | handles-states=true, 5 | ignore-eos=true, 6 | args = { 7 | "videotestsrc pattern=ball animation-mode=frames ! video/x-raw,format=I420,framerate=30/1 ! capssetter caps=\"video/x-raw,framerate=$(in_framerate)\" ! videorate name=videorate ! video/x-raw,format=I420,framerate=$(out_framerate) ! fakesink sync=true", 8 | }, 9 | configs = { 10 | "$(validateflow), pad=videorate:sink, buffers-checksum=true", 11 | "$(validateflow), pad=videorate:src, buffers-checksum=true", 12 | } 13 | 14 | 15 | play 16 | seek, start=0.0, stop=1.0, flags=accurate+flush, rate=-1.0 17 | 18 | # First buffer is display as fast as possible 19 | crank-clock, expected-elapsed-time=0.0 20 | crank-clock, repeat=9, expected-elapsed-time=0.1 21 | 22 | # Waiting 1 second on EOS 23 | crank-clock, expected-elapsed-time=0.1 24 | 25 | seek, start=1.0, stop=2.0, flags=accurate+flush, rate=-1.0, on-message=eos 26 | 27 | # First buffer is display as fast as possible 28 | crank-clock, expected-elapsed-time=0.0 29 | crank-clock, repeat=9, expected-elapsed-time=0.1 30 | 31 | # Waiting 1 second on EOS 32 | crank-clock, expected-elapsed-time=0.1 33 | 34 | stop, on-message=eos 35 | -------------------------------------------------------------------------------- /tests/validate/videorate/videorate-test.meta: -------------------------------------------------------------------------------- 1 | # Common metadatas to check the videorate element behavior with different 2 | # framerate specified by previously setting variables with: 3 | # ``` 4 | # set-global, in_framerate=, out_framerate= 5 | # ``` 6 | # and then `include, location="videorate-test.meta" to setup the test with this 7 | # file 8 | meta, 9 | handles-states=true, 10 | ignore-eos=true, 11 | args = { 12 | "videotestsrc pattern=ball animation-mode=frames ! video/x-raw,format=I420,framerate=$(in_framerate) ! videorate name=videorate ! video/x-raw,format=I420,framerate=$(out_framerate) ! fakesink sync=true", 13 | }, 14 | configs = { 15 | "$(validateflow), pad=videorate:sink, buffers-checksum=true", 16 | "$(validateflow), pad=videorate:src, buffers-checksum=true", 17 | } 18 | -------------------------------------------------------------------------------- /tools/gst-discoverer-1.0.1: -------------------------------------------------------------------------------- 1 | .TH "GStreamer" "1" "August 2012" "" "" 2 | .SH "NAME" 3 | gst\-discoverer\-1.0 \- Display file metadata and stream information 4 | .SH "SYNOPSIS" 5 | \fBgst\-discoverer\-1.0\fR \fIFILE|DIRECTORY|URI [FILE2|DIRECTORY2|URI2]\fR 6 | .SH "DESCRIPTION" 7 | .LP 8 | \fIgst\-discoverer\-1.0\fP is a tool that can be used to print 9 | basic metadata and stream information about a media file. It can be run on 10 | individual files or whole directories. It will recurse into sub-directories 11 | in that case. 12 | 13 | .SH "OPTIONS" 14 | .l 15 | \fIgst\-discoverer\-1.0\fP accepts the following options: 16 | .TP 8 17 | .B \-\-help 18 | Print help synopsis and available FLAGS 19 | .TP 8 20 | .B \-v, \-\-verbose 21 | Output all available information 22 | .TP 8 23 | .B \-a, \-\-async 24 | Use asynchronous code path 25 | .TP 8 26 | .B \-t, \-\-timeout=T 27 | Specify timeout in seconds (default: 10 seconds) 28 | .TP 8 29 | .B \-c, \-\-toc 30 | Output TOC (chapters and editions) if available 31 | .TP 8 32 | 33 | .SH "SEE ALSO" 34 | .BR gst\-inspect\-1.0 (1), 35 | .BR gst\-launch\-1.0 (1), 36 | .SH "AUTHOR" 37 | The GStreamer team at http://gstreamer.freedesktop.org/ 38 | -------------------------------------------------------------------------------- /tools/meson.build: -------------------------------------------------------------------------------- 1 | tool_deps = glib_deps + [pbutils_dep, audio_dep, video_dep, tag_dep, gst_dep, gst_base_dep, gmodule_dep] 2 | 3 | executable('gst-device-monitor-@0@'.format(api_version), 4 | 'gst-device-monitor.c', 5 | install: true, 6 | c_args : gst_plugins_base_args, 7 | include_directories: [configinc], 8 | dependencies : tool_deps, 9 | ) 10 | install_man('gst-device-monitor-@0@.1'.format(api_version)) 11 | 12 | executable('gst-discoverer-@0@'.format(api_version), 13 | 'gst-discoverer.c', 14 | install: true, 15 | c_args : gst_plugins_base_args, 16 | include_directories: [configinc], 17 | dependencies : tool_deps, 18 | ) 19 | install_man('gst-discoverer-@0@.1'.format(api_version)) 20 | 21 | executable('gst-play-@0@'.format(api_version), 22 | 'gst-play.c', 'gst-play-kb.c', 23 | install: true, 24 | c_args : gst_plugins_base_args, 25 | include_directories: [configinc], 26 | dependencies : tool_deps + [libm], 27 | ) 28 | install_man('gst-play-@0@.1'.format(api_version)) 29 | --------------------------------------------------------------------------------