mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-21 21:46:22 +00:00
This doesn't always bring visible issue, but is formally incorrect: not chaining up means that the code doesn't trigger GstObject and GstElement "constructed" implementations. In particular both GstElement's and GstObject's classes in "constructed" may sign up this object for tracing and GstObject's class sets GST_OBJECT_FLAG_CONSTRUCTED flag. If we don't chain up none of this is going to be executed. For example, before the fix leaks tracer couldn't detect this leak: ```c int main (int argc, char **argv) { g_setenv ("GST_TRACERS", "leaks(name=all-leaks)", TRUE); g_setenv ("GST_DEBUG", "GST_TRACER:7", TRUE); g_setenv ("G_DEBUG", "fatal-warnings", TRUE); gst_init (&argc, &argv); // leak audiomixer: doesn't detect because it's based on the aggregator gst_element_factory_make ("audiomixer", "Jerry"); // leak videoconvert: this one is detected fine because it's not // based on the aggregator //gst_element_factory_make ("videoconvert", "Tom"); gst_deinit (); return 0; } // $ cc tst.c $(pkg-config --cflags --libs gstreamer-1.0) -o tst && ./tst ``` Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8416> |
||
---|---|---|
.. | ||
gst-devtools | ||
gst-docs | ||
gst-editing-services | ||
gst-examples | ||
gst-integration-testsuites | ||
gst-libav | ||
gst-plugins-bad | ||
gst-plugins-base | ||
gst-plugins-good | ||
gst-plugins-ugly | ||
gst-python | ||
gst-rtsp-server | ||
gstreamer | ||
gstreamer-sharp | ||
gstreamer-vaapi | ||
macos-bison-binary | ||
packagefiles | ||
webview2 | ||
win-flex-bison-binaries | ||
win-nasm | ||
win-pkgconfig | ||
avtp.wrap | ||
cairo.wrap | ||
dav1d.wrap | ||
DirectX-Headers.wrap | ||
directxmath.wrap | ||
dssim.wrap | ||
dv.wrap | ||
expat.wrap | ||
fdk-aac.wrap | ||
FFmpeg.wrap | ||
flac.wrap | ||
fontconfig.wrap | ||
freetype2.wrap | ||
fribidi.wrap | ||
gdk-pixbuf.wrap | ||
gl-headers.wrap | ||
glib-networking.wrap | ||
glib.wrap | ||
gobject-introspection.wrap | ||
graphene.wrap | ||
gst-plugins-rs.wrap | ||
gtk-sharp.wrap | ||
gtk.wrap | ||
harfbuzz.wrap | ||
json-glib.wrap | ||
lame.wrap | ||
libdrm.wrap | ||
libffi.wrap | ||
libgudev.wrap | ||
libjpeg-turbo.wrap | ||
liblc3.wrap | ||
libmicrodns.wrap | ||
libnice.wrap | ||
libopenjp2.wrap | ||
libpng.wrap | ||
libpsl.wrap | ||
libsoup.wrap | ||
libsrtp2.wrap | ||
libva.wrap | ||
libwpe.wrap | ||
libxml2.wrap | ||
ntv2.wrap | ||
ogg.wrap | ||
openh264.wrap | ||
opus.wrap | ||
orc.wrap | ||
pango.wrap | ||
pcre2.wrap | ||
pixman.wrap | ||
proxy-libintl.wrap | ||
pycairo.wrap | ||
pygobject.wrap | ||
soundtouch.wrap | ||
sqlite3.wrap | ||
vorbis.wrap | ||
vpx.wrap | ||
wayland-protocols.wrap | ||
webrtc-audio-processing.wrap | ||
wpebackend-fdo.wrap | ||
x264.wrap | ||
zlib.wrap |