Bonjour,

> 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...
Ca pourrait se passer si par exemple tu passes un mauvais timestamp (genre 
dans le futur), a ce moment rtp_session_send_with_ts() bloque en attendant 
que ce timestamp arrive... Par exemple si ton timestamp est un int32 au lieu 
d'un uint32 je ne sais pas ce qui va se passer lorsque lors d'un +=160 ton 
int32 va devenir negatif.
Ceci dit le probleme peut etre a l'interieur d'oRTP ! J'avoue ne jamais avoir 
teste les sessions de 6h. C'est quoi le clockrate de ton payload audio ? 
J'aimerais pouvoir verifier.

>
> 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.
Normalement cela arrive uniquement si justement l'emetteur a emis des paquets 
plus gros...
Le fait d'utiliser rtp_session_recvm_with_ts() au lieu de 
rtp_session_recv_with_ts() pourrait t'en dire plus.
rtp_session_recvm_with_ts()  retourne un mblk_t*
Pour avoir les donnees, il faut acceder a:
mblk_t *mp;
mp->b_cont->b_rptr, la fin du buffer etant marquee par mp->b_cont->b_wptr .
mp->b_rptr pointe vers le header, mais normalement tu t'en fous.

>
> Désolé de n'apporter que des questions et pas de réponses ;)
Ca viendra !
>
> Nous sommes très contents d'utiliser oRTP dans liquidsoap, ce qui nous
> permet d'avoir un noyau vraiment indépendant et léger.
Merci. D'ailleurs je ne sais pas quelle version vous utilisez, mais je viens 
de mettre une 0.7.0 toute neuve. 
Mais si vous etes dans la meme equpie que Samuel Thibault je crois que vous 
avez deja un oRTP top recent (cvs).

>
> Ca ne marche pas encore parfaitement, mais déja merci beaucoup!
Tenez moi au courant.

Simon
> --
> David

Répondre à