Commit Graph

923 Commits

Author SHA1 Message Date
Aaro Altonen 6e53f686f9 rtcp: Extract fraction and lost fields correctly from the report 2021-04-22 13:25:04 +03:00
Aaro Altonen bfaa3536c5 crypto: Add 192/256-bit key support for SRTP 2021-04-22 12:43:05 +03:00
Aaro Altonen 5c3f76f04d doc: Document NTP clock interface 2021-04-22 07:00:04 +03:00
Aaro Altonen 20dc9da16b crypto: Use a 16-bit integer for ROC calculations 2021-04-22 06:45:49 +03:00
Aaro Altonen a8882f296c formats/h264: Support 2-byte NAL units 2021-04-19 12:56:40 +03:00
Aaro Altonen 363f3f88b5 formats/h264: Disable Aggregation Packets 2021-04-19 12:56:37 +03:00
Aaro Altonen db3ae7790b Clear aggregation packet info when exiting from push_nal_unit()
The vector was not always cleared which caused it to accumulate
old aggregation packets and when that was coupled with the WSABUF size
problem, memory errors happened.
2021-04-19 12:56:34 +03:00
Aaro Altonen 6c60a768f0 Increase wsa_bufs size to 32 elements
This is a temporary fix but increasing it and making sure the
incoming vector has fewer elements at least prevents memory access
errors.

The size should grow dynamically though and not just fail. Not sure
what kind of a stream requires more than 32 WSABUFs though.
2021-04-19 12:56:31 +03:00
Aaro Altonen 0806522ab9 doc: Add documentation for RTCP 2021-04-19 12:15:23 +03:00
Aaro Altonen b3cc2cdc23 build: Add support for MinGW build 2021-04-19 07:32:09 +03:00
Aaro Altonen a3d534019f build: Add missing files to uvgRTP.pro 2021-04-16 08:49:01 +03:00
Aaro Altonen 5e3c043ba8 doc: List all subsystems 2021-04-16 08:28:45 +03:00
Aaro Altonen 5552649252 Increase receive buffer size
Additionally, make sure that when a custom value for MTU size is set,
the maximum UDP datagram size does not exceed the actual limit.
2021-04-15 12:06:33 +03:00
Joni Räsänen f8b53cc581 Set theme jekyll-theme-modernist 2021-03-24 07:49:40 +02:00
Joni Räsänen 19e32d951c Set theme jekyll-theme-cayman 2021-03-24 07:49:12 +02:00
Joni Räsänen 20f5dfe95c Set theme jekyll-theme-cayman 2021-03-24 07:48:29 +02:00
Joni Räsänen d515c620fa Set theme jekyll-theme-minimal 2021-03-24 07:48:04 +02:00
Joni Räsänen bba8c39220 Set theme jekyll-theme-dinky 2021-03-24 07:46:18 +02:00
Joni Räsänen 3c60206b56 Set theme jekyll-theme-slate 2021-03-24 07:45:00 +02:00
Joni Räsänen f6b029c75f doc: Update build instructions for release 2021-03-23 15:17:20 +00:00
Aaro Altonen 94698c0437 doc: Update build instructions 2021-03-23 16:26:22 +02:00
Aaro Altonen af4233e9b7 Merge branch 'develop' 2021-03-23 09:37:56 +02:00
Aaro Altonen 5b3a7f13a9 build: Disable archive merging temporarily
At least on Linux, the final library seems to be corrupted
2021-03-23 01:25:57 +02:00
Aaro Altonen a114893415 Fix holepuncher functionality for receiver-only streams
The previous assumption was that the stream utilizing holepuncher
would have already sent a datagram and would then switch just receiving
which is why the holepuncher did not send anything if the media stream
had not (yet) sent anything.

This does not, however, work for those streams that only receive packets
as they would never call push_frame() and thus never update the last_dgram_sent_
of the holepuncher, essentially making holepuncher disabled for the stream.
2021-03-23 01:19:47 +02:00
Aaro Altonen 4f2f9ac1c6 Add RCE_HOLEPUNCH_KEEPALIVE to docs/examples/binding.cc 2021-03-23 01:19:47 +02:00
Aaro Altonen 706ff9796a Reset select(2) state before each call in pkt_dispatcher
According to the documentation, the state of "timeout" parameter
of select(2) should be considered undefined after the function returns
2021-03-23 01:19:47 +02:00
Aaro Altonen 367a8ad465 Allow pkt_dispatcher thread access to pkt_dispatcher's state
This makes the code and interface cleaner
2021-03-23 01:19:47 +02:00
Aaro Altonen 6ceec24473 Make sure media object allocation succeeds 2021-03-23 01:19:47 +02:00
Aaro Altonen 2dadd7b937 Implement free_resources() 2021-03-23 01:19:47 +02:00
Aaro Altonen 238cf77f64 Implement create_media() helper function 2021-03-23 01:19:47 +02:00
Aaro Altonen a7ac351e38 Check the state correctly in pull_frame() 2021-03-23 01:19:47 +02:00
Aaro Altonen b5aabb06c7 Update push_frame()/pull_frame() documentation 2021-03-23 01:19:47 +02:00
Aaro Altonen c2e6207698 Document set_ts_info() 2021-03-23 01:19:47 +02:00
Aaro Altonen 5bdb283193 Document add_srtp_ctx() 2021-03-23 01:19:47 +02:00
Aaro Altonen d80abd580e Document pull_frame() 2021-03-23 01:19:47 +02:00
Aaro Altonen 53f8afbdb2 Document push_frame() 2021-03-23 01:19:47 +02:00
Aaro Altonen 59b4eb4b27 Document install_receive_hook() 2021-03-23 01:19:47 +02:00
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