Richard Fuchs
165c42fb8e
MT#55283 convert calls to int64_t
...
Change-Id: I7c9a2229ba3eea418e009bb04def336476d2ec25
1 year ago
Richard Fuchs
20ffa4f780
MT#55283 convert timerthread to int64_t
...
Change-Id: Ia7bdb7538428edef1ff83d7bd8f6116d5e618510
1 year ago
Richard Fuchs
f34786dade
MT#55283 convert media_packet to int64_t
...
Change-Id: I4b1da113cf01d34473027987d4ee60215655fdec
1 year ago
Richard Fuchs
c70510303a
MT#55283 convert rtpe_now to int64_t
...
First step in converting (almost) all timeval uses to int64_t
Change-Id: If20fd749c61c278273c535b68287df7e6f042808
1 year ago
Richard Fuchs
d75e44829d
MT#55283 replace UINT64F with PRIu64
...
Change-Id: I604226d2515dae6b7a348426b5e997dafc840042
1 year ago
Richard Fuchs
238dc9d5be
MT#55283 integrate ssrc_hash into upper objects
...
Change-Id: Ib8f78ef6bc3028fc342fe07253ebe628af322e55
1 year ago
Richard Fuchs
75aa3038db
MT#55283 convert ssrc_hash to g_direct
...
Change-Id: I5cd5a308a8c5f6fefed94e4f594eee3a31b0f6fd
1 year ago
Richard Fuchs
859ac06626
MT#55283 use non-glib atomic macros in more places
...
Change-Id: Ia1e92f1d665a1773d25160a1ed4e4e93ae7b8ec2
1 year ago
Richard Fuchs
1779beeea0
MT#55283 fix atomic_compare_exchange macro
...
Change-Id: I25900efc7cef0f8b699ab9a1c17224c950d15d38
1 year ago
Richard Fuchs
0623b6b9de
MT#61625 tie codec-chain into transcode-config
...
Change-Id: Ida6e51b8b4ef3cefe738ccd1678ec86763e93711
1 year ago
Richard Fuchs
0b654d9854
MT#55283 add rtpe_g_tree_first shortcut
...
Change-Id: I71ab7965c9edf988dc501673cdb714a7bb8b5725
1 year ago
Richard Fuchs
75884b8d58
MT#55283 add dedicated g_tree_first wrapper
...
Change-Id: I4f7a366d37ab2c67d57f4217133725917b2e726b
1 year ago
Richard Fuchs
5460ca1f90
MT#55283 properly namespace g_tree helpers
...
Change-Id: Ie3097da52012a91b1e5d9d5c7dabe901ff2d9d72
1 year ago
Richard Fuchs
198a6053bf
MT#55283 support reworked framework
...
Change-Id: I947996343b09f38d1e14eee1d215a83e764f43cf
1 year ago
Richard Fuchs
4d8156bf91
MT#55283 remove remnants of g_slice
...
The GLib slice allocator has been obsoleted. Having a mixture of two
allocators can lead to hidden issues on systems that use different
implementations. Take the leap and replace everything with g_new/g_free.
Change-Id: I025c8383ef47b2c2472573360407fd6a6ca339b3
1 year ago
Richard Fuchs
b742dbc460
MT#55283 protect against duplicate a=mid
...
Media IDs are supposed to be unique. Non-RFC OSRTP may however lead to
duplicated media sections with the same media ID. Use a hash table to
track which media IDs have already been seen, and ignore any duplicates.
Change-Id: I9de5fdf3165fc4326862af708aec3d4f6736cb12
1 year ago
Richard Fuchs
2c636fd1c1
MT#55283 add lib/ Makefile
...
There is a generated file left behind (codeclib.strhash.c) that needs to
be cleaned up by `make clean`
Ref: https://bugs.debian.org/1101804
Change-Id: I22eef1124a84107478ef6058abb127eb65fc9aa5
1 year ago
Richard Fuchs
094c3d93d2
MT#55283 report correct error
...
Change-Id: I102a52434581569c04f255a3fd09a39599e3fff2
1 year ago
Richard Fuchs
8e1bbc24df
MT#55283 allow stack storage for dummy uring send
...
Change-Id: Iae5067f7e8bd492f10db946160d2c4af54c2fc2b
1 year ago
Richard Fuchs
dd91f0ec11
MT#55283 centralise uring methods
...
Introduce struct to keep uring-specific thread-local method pointers
Change-Id: I7b0d1fd82cf5f3d114e8072553cb74054ac7e133
1 year ago
Richard Fuchs
f090376d9a
MT#55283 move defines
...
to a more appropriate place to remove an otherwise unneeded dependency
Change-Id: If82707e937a9102de1a405a25f7f3f436df878e6
1 year ago
Richard Fuchs
6c19b19069
MT#55283 type safety for uring allocs
...
Change-Id: I1f1e49b986f7a2cd83b898167e0c314b8862bb69
1 year ago
Richard Fuchs
bcbe751dec
MT#55283 make bufferpool (mostly) lock-free
...
Change-Id: I9c6803c3b01deacafc20bcca4c6ddd89fd69d3e9
1 year ago
Richard Fuchs
26072ed6a1
MT#55283 support CFLAGS in str hash helper
...
Fixes #1919
Change-Id: Ibac4475c96063b69868546e54e27f9f61b7b909b
1 year ago
Richard Fuchs
95f75d690b
MT#55283 use embedded links in bufferpool
...
Avoids repeated calls to allocator
Change-Id: I2b85fef3d0fd976bc9bf8a4b0cb9b29b62318cbf
1 year ago
Richard Fuchs
58054f2c0f
MT#55283 use typed queue for bpool shards
...
Change-Id: Iebe8286a930add93a179cbf0dabc08ea23152f37
1 year ago
Richard Fuchs
0551c2549a
MT#55283 obsolete bufferpool shard array
...
Remove the sorted pointer array and the associated lock. We can now
directly look up the shard associated with a particular memory block and
so this isn't needed any more.
Change-Id: I6b2972c3b8837cdabdf92cf957c69dc2d559a06c
1 year ago
Richard Fuchs
d43575dc06
MT#55283 look up bufferpool shard from metadata
...
Use the pointer we stored as metadata to quickly look up the respective
shard.
Change-Id: I01c39d9dbe229bb9bd98d90efb95adfe076e426d
1 year ago
Richard Fuchs
69e634f94a
MT#55283 store metadata head pointer
...
Put a pointer to the shard itself in the beginning of the buffer. This
facilitates quick lookup.
Change-Id: I0109d77e56afac3189775dd708970288f175dfe6
1 year ago
Richard Fuchs
f7fbe490b0
MT#55283 request aligned addresses from mmap
...
Or rather, request double the amount, then use the contained aligned
block.
Change-Id: Iaf1da4b3df243a1d4391fc2ff46eba1fec3d738c
1 year ago
Richard Fuchs
9bd5670f89
MT#55283 use fixed allocation size
...
Allocate all bufferpool shards of the same size, regardless of
underlying allocator. This way increase memory usage a bit, but we're
already quite heavy on that, so no big deal.
Change-Id: Icbe09cd2f9b33bc58ab1efe7de293dea00236fec
1 year ago
Richard Fuchs
1a837e6ab1
MT#55283 add `empty` pointer
...
With this we can reserve some head room to store our own metadata.
Change-Id: I525c2df7db85ce22c0a4a9810e4c75fdd7731c0c
1 year ago
Richard Fuchs
5f9e43b3e0
MT#55283 move alignment macros to header file
...
Change-Id: I266cbefe8351f77399bb6e50b2122f9a45249529
1 year ago
Richard Fuchs
1a98502a1b
MT#55283 used aligned memory for bufferpool
...
Use allocators that return memory blocks aligned to the requested size,
instead of generic malloc. This makes it easier to play tricks with the
memory blocks.
Change-Id: Iad4b1127c76e48c2e9b4ad8489118d4883a24f6a
1 year ago
Richard Fuchs
ef7aa06801
MT#55283 shorten lock duration
...
We can do the freeing safely after having removed the shard from the
list.
Change-Id: I15d7ec71b0c44b916571c420b07c715ad2feaf50
1 year ago
Richard Fuchs
162e982088
MT#55283 fix typo
...
Technically inconsequential because both functions call the same
underlying pthread_rwlock_unlock
Change-Id: I6fddc55f70772592d17f496e5c16edf6ba7a88e5
1 year ago
Richard Fuchs
6b5fac9dc7
MT#61625 add "transcode-config"
...
Adds a new config section that allows adjusting behaviour for certain
transcoding scenarios. This only adds the initial support for the config
option.
Change-Id: Ia3d43061adc540fab054e5c99ab804dc1ff53b84
1 year ago
Richard Fuchs
605b497108
MT#55283 unconditionally demux RTCP
...
This seems to be an acceptable and reliable way to detect RTCP
multiplexed with RTP, even if `a=rtcp-mux` wasn't advertised in the SDP.
Take the opportunity to clean up __streams_set_sinks() a bit by giving
the variables better names.
Change-Id: I0cdc5e4a544641591fc2aabca12fb11bab3453f7
1 year ago
Richard Fuchs
4a03cbd996
MT#55283 fix g_ptr_array_sort usage
...
The compare function receives pointers to pointers as arguments.
Change-Id: I93abaa635f94207de826deb6523d8c847bef0860
1 year ago
Richard Fuchs
8ab206c26a
MT#61625 add t_slist_free_full wrapper
...
Change-Id: Ib47bc4890ecfeac5a6814505abe77b4454cda5e3
1 year ago
Richard Fuchs
fc3ce1f81d
MT#55283 safeguard auto cleanup function
...
Change-Id: I4aa6f604a74cb5f6467745bdea214954227dc0eb
1 year ago
Richard Fuchs
b1e69f74dd
MT#61625 fix getsockname call
...
Change-Id: If58e83e3bd03d39b552ed1e843d31baefe5c8e37
1 year ago
Richard Fuchs
ccccded287
MT#55283 add evs-dtx= option
...
Change-Id: I6489895e31e1fcf1c72c9767b122189f22f58792
1 year ago
Richard Fuchs
de47c13b0b
MT#55283 add missing EVS DTX handling
...
Change-Id: I04882d64df1f08d733a4fb87747f13c807e2795c
1 year ago
Richard Fuchs
6a5d3412f8
MT#55283 move out EVS frame generation code
...
Changes to a hard-coded sample format (clock rate, channels) and
directly modifies dec->pts.
Change-Id: I1b9f71af4a252cdc0f795ca91e525ff19f6cc580
1 year ago
Richard Fuchs
b2599aba54
MT#61625 add getsockname abstraction
...
Change-Id: Ib89e235c3b8ea5a1038d09dfd8a7895d5753401c
2 years ago
Richard Fuchs
69ac1b1c9d
MT#61625 allow send/recv without endpoint address
...
Change-Id: I61f301baec69788228325f79194755b828b3858d
2 years ago
Richard Fuchs
af789073a7
MT#61625 add socket_rcvtimeout helper
...
Change-Id: I17de1f5948e64712fb60bd96708c07ea87cfe010
2 years ago
Richard Fuchs
c99a4691b4
MT#55283 use GPOINTER_TO_UINT
...
Change-Id: I5e8ee279aa193c1b7f71a01c42fa3482856b9b30
2 years ago
Richard Fuchs
bebec5eee4
MT#55283 add extra typed GPtrArray methods
...
Change-Id: If67ac73a5f7f7e767d8f8eb09a77ca552ab81148
2 years ago
Richard Fuchs
587c0dac82
MT#55283 convert __socket to bool
...
Change-Id: I1b631456716d37c188d473763fab6d5114573b01
2 years ago
Richard Fuchs
09c4c84d03
MT#55283 move helpers out of the way
...
Change-Id: I207d000c7c2cfca9c139518cc0111355b6414d60
2 years ago
Richard Fuchs
3662b74009
MT#55283 convert tos to bool
...
Change-Id: Icf424a04b79923c239f1ccdbb79115b080a84462
2 years ago
Richard Fuchs
ad11e98903
MT#55283 convert pktinfo to bool
...
Change-Id: I4fa705063400f119568f93fa037a51adabbe9c40
2 years ago
Richard Fuchs
bf08339f5a
MT#55283 convert timestamping to bool
...
Change-Id: If87a80917396fa397e6d0641c38546bd31a10a31
2 years ago
Richard Fuchs
df64eb09a4
MT#55283 convert accept to bool
...
Change-Id: Ie4e1415fd35fa6b4a3ab95ed80c2ab3047b902bc
2 years ago
Richard Fuchs
55ccc6bbe1
MT#55283 convert listen to bool
...
Change-Id: I18ab74fcd1e5ca330619a357d6ee080be45b2ab5
2 years ago
Richard Fuchs
88bbfc2255
MT#55283 convert connect to bool
...
Change-Id: I8086c72713b79c29d9cfd6822610e3580df38cc8
2 years ago
Richard Fuchs
9808a5f26c
MT#55283 convert eq to bool
...
Change-Id: I62460fe2184aaf8bd6e84957c46274c04bd672c4
2 years ago
Richard Fuchs
eb172ce029
MT#55283 convert bind to bool
...
Change-Id: Ic127aabf04e3185293e77194953f4eb93dd1a771
2 years ago
Richard Fuchs
23ca436a1e
MT#55283 convert sockaddr2endpoint to bool
...
Change-Id: I4d2fb4ea29284ea421920e514ec0d80392e1a7a0
2 years ago
Richard Fuchs
c621061cc7
MT#55283 convert sockaddr2endpoint to bool
...
Change-Id: Ib1e2ff18d8a64f71116fe5ce886c593cd29b2d51
2 years ago
Richard Fuchs
3337059585
MT#55283 convert endpoint_parse_any_str to bool
...
Change-Id: Id7ba272643f3578fbf12647444342f979b3d864f
2 years ago
Richard Fuchs
b5085cf1c7
MT#55283 convert ipv46_any_convert to bool
...
Change-Id: I7671aca8592ca02b6005c5e94aae3d18444fd7dc
2 years ago
Richard Fuchs
80f7c20429
MT#55283 convert sockaddr_getaddrinfo to bool
...
Change-Id: I75e04bdda3b54fd9f7cbe9d6ff8c978e2bb2c2d1
2 years ago
Richard Fuchs
5f418146c4
MT#55283 convert endpoint_parse_any_getaddrinfo_full to bool
...
Change-Id: I74dbdcb6798203306652078997b74bdaacfb8526
2 years ago
Richard Fuchs
fbcdaaee4a
MT#55283 convert endpoint_parse_port_any to bool
...
Change-Id: Iede44b1652ac749d0e0fbd31acb0e42bca8641c3
2 years ago
Richard Fuchs
86a825d3d4
MT#55283 convert endpoint_parse_any_getaddrinfo to bool
...
Change-Id: I81bb829ab4ccb8005109c2c1c874e83c3340a053
2 years ago
Richard Fuchs
3e5cf09486
MT#55283 convert endpoint_parse_any_getaddrinfo_alt to bool
...
Change-Id: I6e4437ce60065205c13271b96ee6b346af0a24fa
2 years ago
Richard Fuchs
ce68a760db
MT#55283 convert sockaddr_getaddrinfo_alt to bool
...
Change-Id: I0e071572b22977cbcd06aa1836b4b91c94de263b
2 years ago
Richard Fuchs
927c85e5ff
MT#55283 convert endpoint_parse_any to bool
...
Change-Id: Ia6fd64615591efe1dfd6de4cc70a5642ea777331
2 years ago
Richard Fuchs
4b13ada4e5
MT#55283 convert sockaddr_parse_str to bool
...
Change-Id: Idf1ab8653c14f8bf4fe0f1cc9f19054ed2de7157
2 years ago
Richard Fuchs
3cce4ac230
MT#55283 convert sockaddr_parse_any_str to bool
...
Change-Id: Iaf9179bf1f55774bc9c63fd1238155f7ff3b7570
2 years ago
Richard Fuchs
81899d5483
MT#55283 convert sockaddr_parse_any to bool
...
Change-Id: I0bd04ab7f12d31feab469c7b3a6ac8df591ec8cd
2 years ago
Richard Fuchs
7599e5c375
MT#55283 convert close_socket to bool
...
Change-Id: I290012391ba1fa2c6c550614e054181de6e0b94e
2 years ago
Richard Fuchs
050cdd3ae1
MT#55283 convert addr_parse to bool
...
Change-Id: I3ef56f827c888c347ea2a83884c10e1e94d7bd83
2 years ago
Richard Fuchs
0a034ecde2
MT#55283 convert reset_socket to bool
...
Change-Id: I8f59d0d44186a0e41f2a044b24f2bf13714ebf16
2 years ago
Richard Fuchs
386f1d50cd
MT#55283 convert open_v46_socket to bool
...
Change-Id: I174a08cbed3f6ac856bf29458ee3c81ca2947de9
2 years ago
Richard Fuchs
c2ba54e615
MT#55283 convert open_socket to bool
...
Change-Id: I715afc937f6b1cbc124ff14a0428f781f58cd050
2 years ago
Richard Fuchs
e7a0bad24e
MT#55283 convert is_addr_unspecified to bool
...
Change-Id: I764b0c1129e4ce909eb95fd7c3251548f5c948ae
2 years ago
Richard Fuchs
2be0844d6d
MT#55283 convert sockaddr_print_gstring to bool
...
Change-Id: Icc5478ef30e4f5823e3cee8f479759df928c7b96
2 years ago
Richard Fuchs
854ef3f0fc
MT#55283 remove unused functions
...
Change-Id: I5377ff885315c6ba08c5f942b0c606dbd1edd478
2 years ago
Richard Fuchs
96995ae680
MT#55283 convert endpoint_print to bool
...
Change-Id: I4b1ccfe3bc9412cd4f0d8366b4de8bb84d75c0c4
2 years ago
Richard Fuchs
5a09c9c329
MT#55283 convert sockaddr_print_port to bool
...
Change-Id: I68d8dfdeca5b5236e1dbc1cfa87558142bc8f8ee
2 years ago
Richard Fuchs
c85eca8ea9
MT#55283 convert addr_print etc to bool
...
Change-Id: I2d5b48ea69452ebdc84e65ae309d7df6c314f865
2 years ago
Richard Fuchs
21de8d4b94
MT#55283 modernise timeval_subtract
...
Change-Id: I7715ee92e12e88d69e3f714a6714f691646e240c
2 years ago
Richard Fuchs
5dd0a387a3
MT#55283 modernise timeval_from_us
...
Change-Id: I745365e9c0c3c055e6972d18ab4593b9589f55f5
2 years ago
Richard Fuchs
4947ab9404
MT#55283 modernise timeval_add
...
Change-Id: I16a368dc66e632d43f01f9e674ad9637a0c18370
2 years ago
Richard Fuchs
89e355b1ba
MT#55283 remove unused timeval helpers
...
Change-Id: I53da8a84bac3a5235d5a5155b08a6a3419ddb1a8
2 years ago
Richard Fuchs
7b60e85970
MT#55283 add codec_def_supported() helper
...
Make sure a codec is not only known to us, but that it can actually be
used, in places where it makes sense. This is partially redundant
because ensure_codec_def_type already takes care of this, but a codec
definition may come from a different source, so it doesn't help to
double check.
Change-Id: I91af84afc2477840f1400674b2538ad8fb7746ee
2 years ago
Richard Fuchs
49e97d9f51
MT#55283 add GPU G.729a support
...
Change-Id: I204527e4ebad461f519483018120f7546b24e43a
2 years ago
Richard Fuchs
bdadee5dff
MT#55283 add extra typed container methods
...
Change-Id: I406238c947b3b02341f021dbacb6cb06502181ec
2 years ago
Richard Fuchs
79a1dca3a9
MT#55283 add t_list_free
...
Change-Id: Ie8438e14f73c5f57cb1197e764ec002df5cf117c
2 years ago
Richard Fuchs
ad6fb06b13
MT#55283 type safety for uid_alloc
...
Change-Id: I4b5975d22f2713b66edba128f0749461578f9cde
2 years ago
Richard Fuchs
1896fafe60
MT#55283 add _link variants
...
Change-Id: I9596193105300f8bb3733ae41e848ec6c8f4b887
2 years ago
Richard Fuchs
5a5c575740
MT#55283 avoid type cast
...
Change-Id: I9ae55874bcb93992088281603c401fdc87cd9fe8
2 years ago
Richard Fuchs
672bf5305c
MT#62053 add interfaces-config= option
...
Change-Id: I32c67bd6834f51c835c08af67a7d84f3216486db
2 years ago
Richard Fuchs
119ca4b105
MT#62053 add config file groups callback
...
Add a callback type to read config groups and their contents based on a
group prefix.
Unused at this point.
Change-Id: I7d9e043e96f48e599bc4da2d8ef4079559cb8b47
2 years ago
Richard Fuchs
052972082a
MT#62053 generalise config loading
...
Switch from specialised handling of config sections (used to load
signalling templates) to a more general approach using a callback
mechanism. This allows us to add more information to the config file
while keeping the details of the underlying GKeyFile hidden. Use a typed
hash table for type safety.
Change-Id: I71ddfda0202b47df363bcc5acf1725078774f8f1
2 years ago
Guillem Jover
7dbe24e4e5
MT#61993 build: Rework to use a config.mk generated during the build
...
These are potentially computed from inside each subdir, and in addition
due to what appears to be a regression in GNU make 4.4, where it is
reevaluating variables that contain $(shell) functions, many times (in
the order of thousands, this was slowing down the build, were on the
Debian amd64 build daemons it went from 5m with GNU make 4.3 to 2h40m
with GNU make 4.4. Although the bulk of the slow down has been fixed
with previous commits, the remaining optimizations are only to avoid
this potentially happening again in the future, and to reduce useless
duplicate work.
Instead of trying to cache the values from within make itself, where
programming this there is extremely painful, and does not seem to be
able to greatly reduce the number of calls, because the build system
is going to be called multiple times for different targets. Simply
externalize the generation into several shell scripts, that we call
to generate a make fragment that then we include from the various
Makefiles.
For a Debian build with GNU make 4.3, this reduces the amount of total
pkg-config calls from around ~1600 to 128, for dpkg-buildflags from
~1100 down to 6, and for dpkg-parsechangelog from ~56 to 17, but the
slow down is not as significant there anyway.
For a Debian build with GNU make 4.4, this reduces the amount of total
pkg-config calls from around ~2600 to 128, for dpkg-buildflags from
~2800 down to 6, and for dpkg-parsechangelog from ~350 to 21.
For a Debian build with GNU make 4.4, this reduces the build time
on this system from 2m10s to ~ 1m30s.
Change-Id: I427d0ea5106dc6ed1ff9e664ccdba2fa0725b7d0
2 years ago