scream icon indicating copy to clipboard operation
scream copied to clipboard

Use RTP as protocol

Open mincequi opened this issue 4 years ago • 2 comments

Hi @duncanthrax , could we implement some kind of "standard way" of distributing the audio stream? RTP comes to my mind here. Then we could check for dropped packets, do recovering and so on. This should be fairly simple to implement (on sender side).

Thanks a lot for your nice project!

mincequi avatar Dec 21 '19 00:12 mincequi

There is actually a branch that implements RTP as a transport (16bit 44,1kHz stereo only). This is based on an older version of the driver. It does work, but there's a problem with the Scream driver operation model:

Scream does not have it's own timer loop, but just gets triggered when the Windows sound subsystem dumps audio data via IRQ. It then puts that data on the network. If no data arrives, Scream just stops sending packets.

Most RTP receivers cannot cope with sound stream cutting in and out and will exhibit strange buffering problems in these cases. In addition, many RTP clients buffer RTP heavily, adding a lot of latency.

duncanthrax avatar Dec 22 '19 14:12 duncanthrax

Ah ok, i missed that other branch.

Well, my intention was not to support a "real" RTP receiver. But one could reuse some code from a RTP receiver.

I experienced some dropped packets while using scream within a WiFi network. If there had been at least the RTP sequence number, I could detect those kind of drop outs.

mincequi avatar Dec 23 '19 10:12 mincequi