Go to file
Aaro Altonen 082372fba1 Merge RTP context configuration flags into one enum
Having separate enums for general configuration and media configuration
might be too confusing given that they are passed to kvzRTP using same
variable and the configuration values must not clash with each other
so the second enum's values would have to start from RCE_LAST which
might look weird
2020-04-24 21:51:12 +03:00
benchmarks Parse netcat output in benchmark.pl 2020-04-23 12:53:52 +03:00
examples Fix comment in examples/binding.cc 2020-04-16 13:59:46 +03:00
include Merge RTP context configuration flags into one enum 2020-04-24 21:51:12 +03:00
src Drop invalid inter frame fragments before frame construction 2020-04-23 12:30:27 +03:00
.gitignore Ignore tags file 2020-04-24 11:10:26 +03:00
BUILDING.md Add Visual Studio project files 2020-04-24 21:51:07 +03:00
CMakeLists.txt Create separate include directory 2020-04-22 04:58:41 +03:00
COPYING Update copyright 2020-04-21 08:46:54 +03:00
Makefile Create separate include directory 2020-04-22 04:58:41 +03:00
README.md Update README 2020-04-21 08:05:07 +03:00
kvzRTP.sln Add Visual Studio project files 2020-04-24 21:51:07 +03:00
kvzRTP.vcxproj Add Visual Studio project files 2020-04-24 21:51:07 +03:00
kvzRTP.vcxproj.filters Add Visual Studio project files 2020-04-24 21:51:07 +03:00
kvzrtp.pro Create separate include directory 2020-04-22 04:58:41 +03:00

README.md

kvzRTP

kvzRTP is an RTP library written in C++ with a focus on usability and efficiency. It features a very intuitive and easy-to-use API, built-in support for HEVC and Opus, SRTP and ZRTP. In ideal conditions it is able to receive a goodput of 600 MB/s for HEVC stream.

kvzRTP is licensed under the permissive BSD 2-Clause License

For SRTP/ZRTP support, kvzRTP uses Crypto++

Supported specifications:

Based on Marko Viitanen's fRTPlib

Building and linking

See Building for instructions on how to build and use kvzRTP

Examples

Please see examples directory for different kvzRTP examples

Adding support for new media types

Adding support for new media types quite straight-forward:

  • add the payload to util.hh's RTP_FORMAT list
  • create files to src/formats/format_name.{cc, hh}
  • create namespace format_name inside namespace kvz_rtp
  • Add functions push_frame() and frame_receiver()
    • You need to implement all (de)fragmentation required by the media type

See src/formats/hevc.cc and src/formats/hevc.hh for help when in doubt.