gstreamer/subprojects/gst-devtools/validate
Jonas K Danielsson f0b8a33f10 check: Add valgrind leak exception for srt test
The srt unittest test_src_listener_sink_call will sometimes fail under
valgrind with the following splat:

 Memcheck, a memory error detector
 Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
 Using Valgrind-3.18.1 and LibVEX; rerun with -h for copyright info
 Parent PID: 14579

 HEAP SUMMARY:
     in use at exit: 799,848 bytes in 2,182 blocks
   total heap usage: 64,090 allocs, 61,908 frees, 37,891,032 bytes allocated

 120 bytes in 1 blocks are definitely lost in loss record 1,563 of 1,681
    at 0x4842FF5: operator new(unsigned long) (vg_replace_malloc.c:422)
    by 0x6031E29: srt::sync::SetThreadLocalError(CUDTException const&) (sync_posix.cpp:461)
    by 0x5FCD77E: CUDT::epoll_wait(int, std::set<int, std::less<int>,
    std::allocator<int> >*, std::set<int, std::less<int>,
    std::allocator<int> >*, long, std::set<int, std::less<int>,
    std::allocator<int> >*, std::set<int, std::less<int>, std::allocator<int> >*) [clone .cold] (api.cpp:3796)
    by 0x5FE2F79: UDT::epoll_wait2(int, int*, int*, int*, int*, long, int*, int*, int*, int*) (api.cpp:4277)
    by 0x5F0C626: gst_srt_object_read (gstsrtobject.c:1569)
    by 0x5F0F978: gst_srt_src_fill (gstsrtsrc.c:180)
    by 0x5F5A2A1: gst_base_src_default_create (gstbasesrc.c:1620)
    by 0x5F5C9AE: gst_base_src_get_range (gstbasesrc.c:2630)
    by 0x5F5EF5A: gst_base_src_loop (gstbasesrc.c:2959)
    by 0x4918B13: gst_task_func (gsttask.c:399)
    by 0x4A60B33: g_thread_pool_thread_proxy.lto_priv.0 (gthreadpool.c:354)
    by 0x4A5DC41: g_thread_proxy (gthread.c:826)
    by 0x4F532A4: start_thread (pthread_create.c:481)
    by 0x4C71322: clone (clone.S:95)

An issue has been started against libsrt here:

https://github.com/Haivision/srt/issues/2867

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6098>
2024-02-12 13:24:21 +00:00
..
data fakevideodec: Add some tests 2023-11-17 15:57:46 +00:00
docs Move files from gst-devtools into the "subprojects/gst-devtools/" subdir 2021-09-24 16:15:38 -03:00
gst validate: flow: Plug leak about ignored fields 2024-01-31 11:00:24 +00:00
gst-libs validate: ssim: Minor debug message enhancements 2023-11-15 19:07:36 +00:00
launcher check: Add valgrind leak exception for srt test 2024-02-12 13:24:21 +00:00
plugins validate: disable plugins in static build 2023-05-31 15:17:11 +00:00
tests structure: Allow STRICT flag only in _serialize_full() 2024-02-09 15:45:33 +00:00
tools gstreamer-full: add full static support 2023-05-31 15:17:11 +00: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