roc-streaming / roc-toolkit

Real-time audio streaming over the network.
https://roc-streaming.org
Mozilla Public License 2.0
1.09k stars 213 forks source link

Teach test::Proxy to send packets in reverse direction #772

Open gavv opened 3 months ago

gavv commented 3 months ago

test::Proxy is a class that we use in integration tests for C API.

Proxy is inserted between sender and receiver. Instead of connecting sender to receiver, we connect sender to proxy and proxy to receiver. Mostly, proxy just forwards packets as is and calculates some metrics, but it can also simulate network losses by dropping some packets.

Currently Proxy supports two uni-directional endpoints: one for source packets (audio packets sent from sender to receiver) and another for repair packets (redundancy packets sent from sender to receiver). See docs.

We want to teach Proxy to support optional endpoint for control packets. This endpoint should be bidirectional, i.e. sender sends control packets to receiver (via proxy), and receiver sends control packets to sender (via proxy).

This would allow us to improve tests for metrics.

kiranlahiri commented 2 weeks ago

Hi! I would like to work on this!

gavv commented 1 hour ago

@kiranlahiri Hi, sorry for late reply. Please let me know if you're still interested.