Commit Graph

51 Commits

Author SHA1 Message Date
Heikki Tampio 655294e9d2 common: Add get_configuration_value() for getting configuration flag values 2023-05-10 16:24:56 +03:00
Heikki Tampio 0dde713b63 multiplex: Fix bug when closing RTCP report reader 2023-05-10 14:22:15 +03:00
Heikki Tampio de82b282a5 multiplex: remove remote_sockaddr (4 and 6) from socket along with functions that used them 2023-05-04 15:02:22 +03:00
Heikki Tampio 4d56a20943 multiplex: remove add_zrtp_ctx() from media_stream 2023-05-04 12:43:33 +03:00
Heikki Tampio c68bc0a963 multiplex: Add function add_zrtp_ctx
You can start ZRTP initialization with this function. Used like add_srtp_ctx().
2023-05-03 14:58:58 +03:00
Heikki Tampio 985a33d043 multiplex: Add ability to set RCC_SSRC and RCC_REMOTE_SSRC before stream is initialized
Also add body for add_zrtp_ctx() in media_stream
2023-04-28 12:55:17 +03:00
Heikki Tampio 8f8e58ba01 multiplex: Map hooks to remote SSRCs 2023-04-26 14:56:17 +03:00
Heikki Tampio e276490db0 multiplex: Separate reception_flow and socketfactory 2023-04-25 13:51:45 +03:00
Heikki Tampio 7efce9901a multiplex: Add universal hook to socketfactory 2023-04-19 15:19:50 +03:00
Heikki Tampio 0a554938d0 multiplex: Add option to manually set remote SSRC of media stream 2023-04-19 12:47:36 +03:00
Heikki Tampio 5091876961 multiplex: basic sending and receiving works on ipv6, but not on ipv4 2023-04-05 12:18:50 +03:00
Heikki Tampio fab904a39a multiplex: clean up functions that went in the wrong design direction 2023-04-05 10:55:24 +03:00
Heikki Tampio 6bb49cccc9 multiplex: add is_single_socket() to media_stream 2023-04-05 09:43:00 +03:00
Heikki Tampio ac7023f9f3 multiplex: receive multiple streams in one socket 2023-04-03 14:23:03 +03:00
Heikki Tampio 0d9e3beed6 ipv6: remove clutter from media_stream api 2023-03-20 15:07:09 +02:00
Heikki Tampio a9fc7750dc Merge branch 'IPv6' 2023-03-20 13:26:51 +02:00
Heikki Tampio 5c9c5562e2 ipv6: fix compiler error 2023-03-15 10:21:01 +02:00
Heikki Tampio 6d23229936 Improve documentation
Also remove tabs from CMakeLists.txt in examples folder
2023-03-13 14:35:11 +02:00
Heikki Tampio 84bf8c9e4c ipv6: add ipv6 support
ipv6 support for rtp, rtcp, srtp+zrtp, no context flags needed

# Conflicts:
#	src/media_stream.cc
#	src/rtcp.cc
#	src/socket.cc
2023-03-13 13:47:25 +02:00
Heikki Tampio e6c759f514 Merge branch 'rtcp_fixes'
# Conflicts:
#	examples/CMakeLists.txt
#	include/uvgrtp/media_stream.hh
#	include/uvgrtp/util.hh
#	src/media_stream.cc
#	src/rtcp.cc
2023-03-13 13:32:15 +02:00
Heikki Tampio 63175f8a04 rtcp: Calculate RTP timestamp in SR correctly
Also add the ability to manually set RTP and NTP timestamps in RTP packets.
2023-02-13 10:48:06 +02:00
Heikki Tampio 9dff5f3c58 RTCP: Implement the ability to set session bandwidth via a context flag
Session bandwidth affects the RTCP packet transmission interval. Related to issue #65.
2022-12-19 13:35:06 +02:00
vechtomo db19b52dc5 config: allow for custom SSRC. Added thread safety 2022-12-13 15:36:36 +02:00
Joni Räsänen 4f205c893d common: Use correct name for numerator 2022-09-19 14:43:08 +03:00
Joni Räsänen 72224ce909 common: Reduce the default MTU size by 8 bytes
This helps account for various protocols that add an extra 8 bytes on
top of sent UDP traffic.
2022-09-16 16:35:59 +03:00
Joni Räsänen 1b2996fd25 common: Release the memory of copy with RTP_COPY flag
uvgRTP does not indeed take ownership of the data when used with non-
smart pointer API. Now the copy is deleted by making it a unique_ptr.
2022-09-15 12:00:57 +03:00
Joni Räsänen 4dba1d55d1 common: Update documentation of public API
This commit makes Doxygen generation create better documentation.
2022-09-15 08:17:58 +03:00
Joni Räsänen 938efe1176 common: Implement RTP_COPY flag 2022-09-09 13:29:50 +03:00
Joni Räsänen b8091d02b6 common: Simplify media_stream code
Remove unused media_config and construct socket and holepuncher at
constructor.
2022-09-08 11:27:44 +03:00
Joni Räsänen d68fcb0690 common: Add possibility only send or only receive
The API forced uvgRTP to both bind to local port even if user does not
need or want this and it also expects the user to know the remote
remote address which is not always possible.

This commit adds API to session for specifying only one port when
creating media_stream. This commit also adds RCE_SEND_ONLY and
RCE_RECEIVE_ONLY flags which can be used to prevent binding and specify
the meaning of single address and port parameters.
2022-09-06 11:45:19 +03:00
Joni Räsänen eb5e7c7c2f common: Fix warnings given by GCC on Linux 2022-08-25 18:19:05 +03:00
Joni Räsänen f915b2aa17 common: Remove most MSVC compiler warnings 2022-08-25 17:30:09 +03:00
Joni Räsänen 1c9dcd2aad common: Clarify address naming 2022-08-24 14:34:12 +03:00
Joni Räsänen f9a89f7408 common: Rename all flags to distinguish between types
I've already created one bug by not being able to distinguish between
different flags. uvgRTP has four types of flags: enable, context, rtp
and socket. I'm planning on adding one more flag type which makes this
a good point to rename all flags.
2022-08-23 09:47:41 +03:00
Joni Räsänen 2abf0bc4ef common: FPS API for sending 2022-08-22 11:34:06 +03:00
Joni Räsänen 2341238e7e rtcp: Get cname to rtcp for SDES packet 2022-07-07 19:29:08 +03:00
Joni Räsänen 41af90b1cf rtcp: Use session bandwidth to calculate interval
This is not full implementation of RTCP interval calculation, but it is
a step in the right direction.
2022-06-17 12:00:17 +03:00
Joni Räsänen 088fc585ed common: Add const qualifiers where applicable 2022-05-16 12:02:37 +03:00
Joni Räsänen a6f9afcd28 common: Add function for getting SSRC of media_stream
Came across needing to know the local SSRC when trying to separate
media streams from one another.
2022-05-16 10:52:55 +03:00
Joni Räsänen ced9ea4271 common: Use unique_ptr to manage holepuncher memory 2022-03-03 11:52:15 +02:00
Joni Räsänen 468e9d82e5 common: Use unique_ptr for managing memory of media_ 2022-03-03 11:48:50 +02:00
Joni Räsänen 737898d5dc common: Use unique_ptr for managing reception_flow memory 2022-03-03 11:43:26 +02:00
Joni Räsänen e62e59af9f common: Remove duplicate code in media_stream in init 2022-03-03 11:39:12 +02:00
Joni Räsänen 8e05f3dbc7 rtcp: Use shared_ptr to manage rtcp memory 2022-03-03 10:48:51 +02:00
Joni Räsänen 97317fed22 srtp: Use shared_ptr to manage srtp and srtcp memory 2022-03-03 10:44:04 +02:00
Joni Räsänen 32839127f4 common: Use shared_ptr for managing socket memory 2022-03-03 10:31:36 +02:00
Joni Räsänen de639fe861 common: Manage rtp memory using shared_ptr 2022-03-03 10:20:21 +02:00
Joni Räsänen cce653b9b7 common: Rename pkt_dispatch to reception_flow
The dispatching is what technique the class uses, but it does not
describe its responsibilities at all making it very hard to figure out
what role it plays in the architecture just by looking at the name.

Also removed all references to obsolete System call dispatcher
(different concept) in all the comments.
2022-03-03 09:16:09 +02:00
Joni Räsänen 3437e194aa common: Remove extra ; from end of namespaces
This was correctly giving warnings with GCC --pedantic
2022-02-28 08:51:38 +02:00
Joni Räsänen f62ade9c70 Merge branch 'example_improvements'
# Conflicts:
#	CMakeLists.txt
#	src/formats/h264.hh
#	src/formats/h265.hh
#	src/formats/h266.hh
#	src/formats/h26x.cc
#	src/formats/h26x.hh
#	src/lib.cc
#	src/pkt_dispatch.hh
#	src/rtp.cc
#	uvgRTP.pro
2022-02-22 14:03:49 +02:00