Bonjour,

Nous utilisont liboRTP dans le projet savonet, plus précisemment dans le générateur de flux liquidsoap. Nous envoyons un flux de WAV qualité CD, ainsi que des blocs de metadatas en AUDIO_PACKETIZED. Un programme nommé soaptube lit ces flux et les réencode dans la plupart des cas en vorbis, pour l'envoyer à icecast2.

Problème 1: en émission.
Le coeur de liquidsoap se bloque au bout d'un moment (~5-6h en général), on s'est aperçu que le thread principal est en fait bloqué pendant l'appel à rtp_send_with_ts(). En mettant l'émetteur en mode non-scheduled, et en gérant les sleep moi-même, j'obtiens une radio qui semble ne plus se bloquer ainsi. Il se pourrait donc qu'un bug se trouve dans la liboRTP, malheureusement je n'ai aucune idée d'où cela pourrait venir...

Problème 2: en réception.
Je n'ai pas du tout compris ce problème et le présente à tout hasard, s'il vous évoque quelque chose. Le récepteur fait des recv_with_ts() sur un buffer qui fait exactement la taille nécessaire. Le récepteur fonctionne très bien quelques heures (pas beaucoup), reçoit de l'audio et des metadatas, les retransmet... Jusqu'à ce que le recv lui indique (have_more) qu'il a (beaucoup) plus de données à lui transmettre qu'un unique buffer. Quand cela peut il arriver ? J'étudierais plus ce problème à l'avenir et vous tiendrais au courant de nouvelles observations.

Désolé de n'apporter que des questions et pas de réponses ;)

Nous sommes très contents d'utiliser oRTP dans liquidsoap, ce qui nous permet d'avoir un noyau vraiment indépendant et léger.

Ca ne marche pas encore parfaitement, mais déja merci beaucoup!
--
David

Attachment: signature.asc
Description: OpenPGP digital signature

Répondre à