gstreamer/subprojects/gst-devtools/validate
Xavier Claessens d809406dfc gstbuffer: Add parent meta when a copy shares memory with parent
When copying a buffer, for example with gst_buffer_make_writable(), the
new buffer might reference the same GstMemory as the src buffer,
making those memories not writable. If the src buffer gets disposed
first it should return to its buffer pool, but since some of its
memories are not writable it gets discarded and new buffer/memory gets
allocated.

Solves this by making the new buffer keep a reference to the src buffer,
that ensures that by the time the src buffer gets disposed no other
buffer are referencing its memories and it can thus return safely to its
pool.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5696>
2023-11-20 12:31:04 -05:00
..
data devenv: Add some missing GStreamer specific env variables 2022-02-25 20:35:26 +00:00
docs Move files from gst-devtools into the "subprojects/gst-devtools/" subdir 2021-09-24 16:15:38 -03:00
gst gstbuffer: Add parent meta when a copy shares memory with parent 2023-11-20 12:31:04 -05:00
gst-libs validate:ssim: Show original/nok/diff images on error images 2022-10-05 20:29:22 +00:00
launcher gst-validate: Fixed compatibility with Python 3.12 2023-11-09 10:19:52 +00:00
plugins validate: plug some leaks 2022-11-04 17:59:21 +00:00
tests video: Fix order of new video formats 2021-10-31 06:38:36 +00:00
tools validate: Don't deinit too early 2022-11-12 12:24:21 +01:00
.gitignore Move files from gst-devtools into the "subprojects/gst-devtools/" subdir 2021-09-24 16:15:38 -03:00
COPYING Move files from gst-devtools into the "subprojects/gst-devtools/" subdir 2021-09-24 16:15:38 -03:00
meson.build Fix API visibility macros 2022-12-20 14:03:35 +00:00
README Move files from gst-devtools into the "subprojects/gst-devtools/" subdir 2021-09-24 16:15:38 -03:00

== Gst-Validate

The goal of GstValidate is to be able to detect when elements are not
behaving as expected and report it to the user so he knows how things
are supposed to work inside a GstPipeline. In the end, fixing issues
found by the tool will ensure that all elements behave all together in
the expected way.

The easiest way of using GstValidate is to use one of its command-line
tools, located at tools/ directory. It is also possible to monitor
GstPipelines from any application by using the LD_PRELOAD gstvalidate
lib. The third way of using it is to write your own application that
links and uses libgstvalidate.

== BUILDING

Getting the code:

Releases are available at <URL>, download and extract the tarball. If you
want to use latest git version, do:

git clone <URI>

After cloning or extracting from a tarball, enter the gst-validate directory:

cd gst-validate

Build with:

meson build --prefix=<installation-prefix>
ninja -C build
sudo ninja -C build install (only if you want to install it)

Replace <installation-prefix> with your desired installation path, you can omit
the --prefix argument if you aren't going to install it or if you want the
default /usr/local. It is possible to use gst-validate CLI tools without
installation.

== INSTRUCTIONS

If you are looking for informations on how to use gst-validate -> docs/validate-usage.txt
If you are looking for informations on gst-validate design -> docs/validate-design.txt