Commit Graph

885 Commits

Author SHA1 Message Date
Aaro Altonen 36d76a3ca5 Add Doxygen main page 2021-03-23 01:19:47 +02:00
Aaro Altonen 8271bfb34d Update Doxygen documentation 2021-03-23 01:19:27 +02:00
Aaro Altonen 737d1d0056 Update build instructions 2021-03-23 01:18:59 +02:00
Aaro Altonen 4bacbaf36d Update VVC packet handler
Save the frame info to the media object and fetch it from there
when a packet is received, update the code to better handle out-of-order
packets and add support for RCE_H26X_PREPEND_SC
2021-03-23 01:18:59 +02:00
Aaro Altonen 5b3a70adad Update sending_generic.cc example code 2021-03-23 01:18:59 +02:00
Aaro Altonen 663f0242e3 Allow sending small packets using RCE_FRAGMENT_GENERIC
Before, if RCE_FRAGMENT_GENERIC was enabled, the sender would
set marker bit to every outgoing packet which the receiver
would then interpret to be a fragment of a larger frame.

This is not correct behaviour because one can also send small packets
using the RCE_FRAGMENT_GENERIC in which case the packet is handled
normally.
2021-03-23 01:18:59 +02:00
Aaro Altonen e574a2a786 Rename RCE_HEVC_NO_INTRA_DELAY to RCE_NO_H26X_INTRA_DELAY
Now the functionality of all three (AVC, HEVC and VVC) can be controlled
through one flag
2021-03-23 01:18:59 +02:00
Aaro Altonen 0e12e57a47 Rename uvg_rtp to uvgrtp
I have no idea why the name had an underscore but now it's gone.
The old namespace is kept as an alias for backwards-compatibility
but it may be removed in the future
2021-03-23 01:18:59 +02:00
Aaro Altonen 871242b149 Fix RTCP socket initialization 2021-03-23 01:18:59 +02:00
Aaro Altonen 13989c66f1 Add Doxygen documentation support
Some of the API is still undocumented
2021-03-23 01:18:59 +02:00
Aaro Altonen 41011487ba Implement RCE_HOLEPUNCH_KEEPALIVE 2021-03-23 01:18:59 +02:00
Aaro Altonen 4d561a5b28 Implement RCC_MTU_SIZE 2021-03-23 01:18:59 +02:00
Aaro Altonen b1ccd7f788 Increase MAX_PAYLOAD by 3 bytes
1443 is the maximum payload size for H26X Fragmentation Units but
for generic frames there is no NAL + FU header meaning the 3 bytes
can be used for payload data
2021-03-23 01:18:59 +02:00
Aaro Altonen 5ad18e3284 Add documentation 2021-03-23 01:18:56 +02:00
Aaro Altonen 3244d1bc47 Update uvgRTP configuration example code 2021-03-23 01:16:42 +02:00
Aaro Altonen c950179790 Implement RCC_DYN_PAYLOAD_TYPE
This change removes set_dynamic_payload() as ctx_configure() function
should be used for all context configuration instead of separate functions
for some configurations
2021-03-23 01:16:42 +02:00
Aaro Altonen ca66f6f8dc Implement RCC_PKT_MAX_DELAY 2021-03-23 01:16:42 +02:00
Aaro Altonen 755fe99d88 Implement RCE_H26X_PREPEND_SC 2021-03-23 01:16:42 +02:00
Aaro Altonen fc90e335aa Update copyright 2021-03-23 01:16:42 +02:00
Aaro Altonen 8619ac5252 Update build instructions 2021-01-12 11:13:14 +02:00
Aaro Altonen a7f4ce58a1 Combine uvgRTP and dependencies into one archive 2021-01-12 11:13:10 +02:00
Aaro Altonen 7727be0017 Make sure Crypto++ and POSIX threads exist before linking 2021-01-11 08:14:32 +02:00
Aaro Altonen 39f4e036cf Build uvgRTP as a shared library
Switch from static to shared library format and use whole-archive
option to include POSIX threads and Crypto++ into the output library
2020-12-11 07:56:55 +02:00
Aaro Altonen 171b73af21 Update uvgRTP build information
Remove the old GNU Makefile, update building documentation
and convert tabs to spaces in CMakeLists.txt
2020-12-11 07:56:54 +02:00
Aaro Altonen f87b4e8e72 Use __has_include to detect the presence of Crypto++ automatically
Use __has_include to check if all needed headers are present in the
system and if so, build uvgRTP with crypto enabled.

Introduce new define, __RTP_NO_CRYPTO__ which disables SRTP/ZRTP
support even if Crypto++ is present in the system
2020-12-11 07:56:02 +02:00
Aaro Altonen b99c0711ce Fix SRTP ROC calculation near sequence number overflow boundary 2020-12-11 07:37:16 +02:00
Aaro Altonen 2833161d3a Add support for H.266/VVC
This code is based on the most recent draft of VVC RTP payload
format and is subjet to changes as the draft evolves
2020-12-11 07:37:16 +02:00
Aaro Altonen 7e72bdbf32 Use correct directory when installing headers 2020-12-04 14:57:37 +02:00
Aaro Altonen 3f1c4b4092 Release exit_mtx_ before packet dispatcher is destroyed
It seems that with MSVC, the mutex must be released before it is
destroyed.
2020-11-25 08:22:05 +02:00
Aaro Altonen b263262538 Use strncmp() to check ZRTP version
For some reason, when uvgRTP is used with Kvazzup, sscanf() does
not convert the value correctly
2020-11-23 09:19:03 +02:00
Aaro Altonen 601209e295 Fix ZRTP header padding for MSVC 2020-11-23 09:18:58 +02:00
Aaro Altonen 5248ad15b4 Protect top-level init function of ZRTP with mutex 2020-11-18 09:03:34 +02:00
Aaro Altonen d61a6cf4dc Protect access to create_stream() with a mutex
Multiple threads may access create_stream() for the same session
simultaneously which can cause problems if the access is not protected.
2020-11-18 08:39:53 +02:00
Aaro Altonen 2d44980384 Merge branch 'develop' into master 2020-11-11 08:03:05 +02:00
Aaro Altonen b6ff9b808c Enable Aggregation Packet support 2020-11-11 08:00:59 +02:00
Aaro Altonen b59cf9146d Update README 2020-11-11 08:00:45 +02:00
Aaro Altonen 3195a271e9 Use NTP to calculate RTP timestamps 2020-10-26 07:28:10 +02:00
Aaro Altonen 0102bb2801 Set marker bit only if there are multiple packets 2020-10-22 14:39:33 +03:00
Aaro Altonen e185160f94 Implement RTP_SLICE 2020-10-22 14:38:59 +03:00
Aaro Altonen 9154f5554f Fix NTP timestamp difference calculation 2020-10-22 11:58:44 +03:00
Aaro Altonen c74d6a75a7 Implement RCE_FRAGMENT_GENERIC for the new architecture 2020-10-13 03:39:19 +03:00
Aaro Altonen 4253f636bf Remove the old HEVC receiver
This thread-based approach is no longer supported and optimistic
packet reception isn't possible to implement properly using the
new packet dispatcher architecture
2020-10-12 18:46:52 +03:00
Aaro Altonen e9be9ae7e8 Fix buffer duplication when encryption is used
Previously the code did not append the copied buffer to the transaction
so uvgRTP only sent the RTP header. It also incremented an incorrect
pointer while it was making the copy
2020-10-12 09:13:00 +03:00
Aaro Altonen 74fc452e06 Pass HEVC frame info to auxiliary handler when using SRTP 2020-10-12 09:07:47 +03:00
Aaro Altonen 9a9ae7dab4 Remove examples/sending_fragmented.cc
This kind of usage of push_frame() is no longer supported by uvgRTP
2020-10-10 03:36:35 +03:00
Aaro Altonen a856b79f6b Merge branch 'new-develop' into master 2020-10-10 03:15:58 +03:00
Aaro Altonen 2a2baf88fa Implement STAP-A support for H.264 2020-10-10 03:02:35 +03:00
Aaro Altonen 497d9a9a80 Set correct initial timeout for DHPart1 2020-10-10 03:02:33 +03:00
Aaro Altonen 56ef10e88b Do not print error if blocked_recv() timeouts 2020-10-10 03:02:33 +03:00
Aaro Altonen 3541212cc1 Remove SEND_ONLY/RECV_ONLY options from media_stream
The media_stream object acts as uni-/bidirectional based on usage
so there is no need to explicitly define it as send/recv only
2020-10-09 04:09:07 +03:00