raop: Add autoreconnect feature

This patch adds the autoreconnect feature to the raop module.
This is mainly to be used in a server context, but can be used
also in a desktop usage context.

With autoreconnect feature, the raop module behaves like this:

- At initialisation or in case of the RTSP TCP connection lost, it
  tries to reconnect every 5 seconds
- In case of any fatal error, it tries to reconnect every 5 seconds
- In UDP mode, if no timing packets received anymore for a long time,
  RTSP connection is closed, then it tries to reconnect..
- After reconnection, once RTSP session has been established again,
  playing is resumed automatically.
- When the connection is not established yet (or loss), the sink
  behaves like a null sink. In the source code I called it "autonull",
  even if autonull is set to autoreconnect param value, it could be
  split into two different params.
This commit is contained in:
ckdo 2019-08-15 08:14:42 +02:00 committed by Georg Chini
parent 46dd3be8ce
commit 4854524058
6 changed files with 293 additions and 65 deletions

View file

@ -62,6 +62,7 @@ static const char* const valid_modargs[] = {
"username",
"password",
"latency_msec",
"autoreconnect",
NULL
};