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:
some streams will be identified by URI, not just by host and port
some streams will not have transport address, e.g. if we're sending RTP stream inside RTSP TCP connection
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.
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.