Richard Fuchs
20ffa4f780
MT#55283 convert timerthread to int64_t
Change-Id: Ia7bdb7538428edef1ff83d7bd8f6116d5e618510
8 months ago
Richard Fuchs
f34786dade
MT#55283 convert media_packet to int64_t
Change-Id: I4b1da113cf01d34473027987d4ee60215655fdec
8 months 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
8 months ago
Richard Fuchs
d75e44829d
MT#55283 replace UINT64F with PRIu64
Change-Id: I604226d2515dae6b7a348426b5e997dafc840042
8 months ago
Richard Fuchs
238dc9d5be
MT#55283 integrate ssrc_hash into upper objects
Change-Id: Ib8f78ef6bc3028fc342fe07253ebe628af322e55
8 months ago
Richard Fuchs
75aa3038db
MT#55283 convert ssrc_hash to g_direct
Change-Id: I5cd5a308a8c5f6fefed94e4f594eee3a31b0f6fd
8 months ago
Richard Fuchs
859ac06626
MT#55283 use non-glib atomic macros in more places
Change-Id: Ia1e92f1d665a1773d25160a1ed4e4e93ae7b8ec2
8 months ago
Richard Fuchs
1779beeea0
MT#55283 fix atomic_compare_exchange macro
Change-Id: I25900efc7cef0f8b699ab9a1c17224c950d15d38
8 months ago
Richard Fuchs
0623b6b9de
MT#61625 tie codec-chain into transcode-config
Change-Id: Ida6e51b8b4ef3cefe738ccd1678ec86763e93711
8 months ago
Richard Fuchs
0b654d9854
MT#55283 add rtpe_g_tree_first shortcut
Change-Id: I71ab7965c9edf988dc501673cdb714a7bb8b5725
8 months ago
Richard Fuchs
75884b8d58
MT#55283 add dedicated g_tree_first wrapper
Change-Id: I4f7a366d37ab2c67d57f4217133725917b2e726b
8 months ago
Richard Fuchs
5460ca1f90
MT#55283 properly namespace g_tree helpers
Change-Id: Ie3097da52012a91b1e5d9d5c7dabe901ff2d9d72
8 months ago
Richard Fuchs
198a6053bf
MT#55283 support reworked framework
Change-Id: I947996343b09f38d1e14eee1d215a83e764f43cf
9 months 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
8 months 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
8 months 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
9 months ago
Richard Fuchs
094c3d93d2
MT#55283 report correct error
Change-Id: I102a52434581569c04f255a3fd09a39599e3fff2
9 months ago
Richard Fuchs
8e1bbc24df
MT#55283 allow stack storage for dummy uring send
Change-Id: Iae5067f7e8bd492f10db946160d2c4af54c2fc2b
9 months ago
Richard Fuchs
dd91f0ec11
MT#55283 centralise uring methods
Introduce struct to keep uring-specific thread-local method pointers
Change-Id: I7b0d1fd82cf5f3d114e8072553cb74054ac7e133
9 months ago
Richard Fuchs
f090376d9a
MT#55283 move defines
to a more appropriate place to remove an otherwise unneeded dependency
Change-Id: If82707e937a9102de1a405a25f7f3f436df878e6
9 months ago
Richard Fuchs
6c19b19069
MT#55283 type safety for uring allocs
Change-Id: I1f1e49b986f7a2cd83b898167e0c314b8862bb69
9 months ago
Richard Fuchs
bcbe751dec
MT#55283 make bufferpool (mostly) lock-free
Change-Id: I9c6803c3b01deacafc20bcca4c6ddd89fd69d3e9
9 months ago
Richard Fuchs
26072ed6a1
MT#55283 support CFLAGS in str hash helper
Fixes #1919
Change-Id: Ibac4475c96063b69868546e54e27f9f61b7b909b
9 months ago
Richard Fuchs
95f75d690b
MT#55283 use embedded links in bufferpool
Avoids repeated calls to allocator
Change-Id: I2b85fef3d0fd976bc9bf8a4b0cb9b29b62318cbf
9 months ago
Richard Fuchs
58054f2c0f
MT#55283 use typed queue for bpool shards
Change-Id: Iebe8286a930add93a179cbf0dabc08ea23152f37
9 months 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
9 months 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
9 months 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
9 months 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
9 months 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
9 months 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
9 months ago
Richard Fuchs
5f9e43b3e0
MT#55283 move alignment macros to header file
Change-Id: I266cbefe8351f77399bb6e50b2122f9a45249529
9 months 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
9 months 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
9 months ago
Richard Fuchs
162e982088
MT#55283 fix typo
Technically inconsequential because both functions call the same
underlying pthread_rwlock_unlock
Change-Id: I6fddc55f70772592d17f496e5c16edf6ba7a88e5
9 months 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
10 months 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
9 months ago
Richard Fuchs
4a03cbd996
MT#55283 fix g_ptr_array_sort usage
The compare function receives pointers to pointers as arguments.
Change-Id: I93abaa635f94207de826deb6523d8c847bef0860
9 months ago
Richard Fuchs
8ab206c26a
MT#61625 add t_slist_free_full wrapper
Change-Id: Ib47bc4890ecfeac5a6814505abe77b4454cda5e3
10 months ago
Richard Fuchs
fc3ce1f81d
MT#55283 safeguard auto cleanup function
Change-Id: I4aa6f604a74cb5f6467745bdea214954227dc0eb
9 months ago
Richard Fuchs
b1e69f74dd
MT#61625 fix getsockname call
Change-Id: If58e83e3bd03d39b552ed1e843d31baefe5c8e37
10 months ago
Richard Fuchs
ccccded287
MT#55283 add evs-dtx= option
Change-Id: I6489895e31e1fcf1c72c9767b122189f22f58792
10 months ago
Richard Fuchs
de47c13b0b
MT#55283 add missing EVS DTX handling
Change-Id: I04882d64df1f08d733a4fb87747f13c807e2795c
10 months 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
10 months ago
Richard Fuchs
b2599aba54
MT#61625 add getsockname abstraction
Change-Id: Ib89e235c3b8ea5a1038d09dfd8a7895d5753401c
10 months ago
Richard Fuchs
69ac1b1c9d
MT#61625 allow send/recv without endpoint address
Change-Id: I61f301baec69788228325f79194755b828b3858d
10 months ago
Richard Fuchs
af789073a7
MT#61625 add socket_rcvtimeout helper
Change-Id: I17de1f5948e64712fb60bd96708c07ea87cfe010
10 months ago
Richard Fuchs
c99a4691b4
MT#55283 use GPOINTER_TO_UINT
Change-Id: I5e8ee279aa193c1b7f71a01c42fa3482856b9b30
10 months ago
Richard Fuchs
bebec5eee4
MT#55283 add extra typed GPtrArray methods
Change-Id: If67ac73a5f7f7e767d8f8eb09a77ca552ab81148
10 months ago
Richard Fuchs
587c0dac82
MT#55283 convert __socket to bool
Change-Id: I1b631456716d37c188d473763fab6d5114573b01
10 months ago