roc-streaming / roc-toolkit

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

Rework port concept in roc_pipeline #330

Closed gavv closed 4 years ago

gavv commented 4 years ago

Currently roc_pipeline routes packets by their transport address (host + port).

Now we're migrating from ports to endpoints (#258) and adding RTSP support and this approach is no longer functional because:

Currently we have single packet::IWriter for all ports and roc_pipeline have to route packets by address. In this task, we will switch to individual IWriter for every port. Packets will go directly to or from necessary port. Sessions also will be connected directly to ports. No routing will be needed.

In case of UDP, IWriter will be provided by roc_netio and will be bound to specific UDP address. In case of RTSP, this IWriter will be provided by roc_rtsp.

Dynamic port creation will be moved from peer::Sender to SenderSink.

gavv commented 4 years ago

Done.