Hallo,
ich schaue von meiner Client-Box (dm525) die meisten Sender als transkodierte Streams, die von meiner Server-Box (dm820) kommen. Das funktioniert im Normalfall super. Leider hängt sich der dreamrtspserver beim zappen immer wieder mal auf. Das monitore ich zwar mit einem Script (wenn er sich aufhängt, gibt es Verbindungen mit Status CLOSE_WAIT und ich starte den Service einfach neu), aber man muss immer ein paar Sek warten und hin und her zappen, bis die Client-Box wieder ein Bild bekommt.
Jedenfalls nervt mich das so sehr, dass ich mal auf Fehlersuche gegangen bin.
Das Problem entsteht wie folgt:
1. Client zappt zu anderem Kanal
2. Neue Verbindung zu RTSP-Server wird aufgebaut und die alte geschlossen.
3. Bei jedem 10. bis 20. Zap liefert der RTSP-Server auf einmal kein Bild mehr und schreibt auch gar nichts mehr ins journal. Die neue Verbindung kam aber noch zustande und die alte wurde korrekt geschlossen.
4. Der Client zappt weiter, weil ja kein Bild kam.
5. Eine neue Verbindung wird zwar aufgebaut, aber keine Daten werden gesendet. Die alte Verbindung bleibt mit CLOSE_WAIT offen.
Per GST_DEBUG env kann man im WARN-Level sehen, dass ab Zeitpunkt "3." immer wieder folgende Meldung gesendet wird. Habe zwar mal in den Code von gst-plugin-dreamsource gesehen, aber mir den Quellcode der anderen Projekte noch nicht genau angesehen und zurück verfolgt, wo genau die aufrufende Schleife sich befindet, aber es scheint so, als wenn der dreamrtspserver in einer Schleife versucht einen Zeitwert aus einem Stream, der vorher anscheinend nicht korrekt geöffnet wurde, zu lesen. Da das nicht funktioniert, hängt der Server hier fest und bearbeitet auch weitere Anfragen nicht richtig.