Rialto

Dependencies (Ubuntu 24.04)

First, install dependencies:

sudo apt-get install libunwind-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio libyaml-cpp-dev
sudo apt-get install libjsoncpp-dev
sudo apt-get install libjson-perl libperlio-gzip-perl perl libgd-gd2-perl libcapture-tiny-perl libdatetime-perl
sudo apt-get install protobuf-compiler
sudo apt-get install clang-format-18
sudo apt-get install cppcheck
sudo apt-get install -y doxygen
sudo apt install -y graphviz
sudo apt-get install build-essential
sudo apt-get install cmake
sudo apt-get install libyaml-cpp-dev
sudo apt-get install valgrind
sudo apt-get install libc6-dbg

wget https://github.com/linux-test-project/lcov/releases/download/v2.0/lcov-2.0.tar.gz
tar -xf lcov-2.0.tar.gz
cd lcov-2.0
sudo make install

Unit Tests

Running all UTs:

python3 build_ut.py

Useful options:

# Forward the output to file:python3 build_ut.py -f output_file.log
# Configure which suite tests you would like to run
# By not supplying this option, all test suites will be run
python3 build_ut.py -s serveripc
# Configure the googletest filter to use when running the tests
# For more details, see: https://github.com/google/googletest/blob/main/docs/advanced.md#running-a-subset-of-the-tests
python3 build_ut.py -gf TestFilter
# e.g.
python3 build_ut.py -gf GstGenericPlayerTest.*

Generate UT coverage report (it will appear in build directory):

python3 build_ut.py -cov

Run UTs with Valgrind to check memory leaks

python3 build_ut.py -val

Component Tests

Running all CTs:

python3 build_ct.py

Useful options/flags are the same as in build_ut.py script

Clang-format

Before the commit code has to be formatted. To do that, execute those commands:

find . -name "*.h" -not -path "./build/*" | xargs clang-format-18 -i --style=file
find . -name "*.cpp" -not -path "./build/*" | xargs clang-format-18 -i --style=file

It will modify your local files to meet Rialto Coding Standards.

Cpplint

To check, if there are no Cpplint errors, execute this command:

python3 scripts/cpplint/cpplint.py --recursive .

Cppcheck

To run Cppcheck, execute this command:

cppcheck -q -ibuild --enable=all --output-file=cppcheck_report.txt --std=c++17 --suppress-xml=cppcheck_suppressions.xml --library=googletest .

Native build

To build Rialto for x86-64 Linux machine, execute those commands:

cmake . -B build -DNATIVE_BUILD=ON -DRIALTO_BUILD_TYPE="Debug"make -C build


Rialto-Gstreamer

tbd

Rialto-Ocdm

tbd