boucle de lecture streaming audio [C] - C - Programmation
MarshPosté le 07-01-2009 à 10:03:44
Salut tout le monde, J'ai un petit problème concernant mon programme qui est sensé envoyer un fichier wave en multicast avec rtp. Je reçois bien le fichier et j'arrive à le lire car mon buffer est infini mais le problème est qu'il envoie "à la vitesse de la machine" alors que j'aimerais l'envoyer selon son débit wave en octets par seconde.
Voilà ma boucle d'envoi:
infos: TAILLE_BLOC est égal à 512o data c'est ce que j'envoi runcond -> la condition de boucle de lecture (pour pouvoir stopper la lecture) j'envoie en rtp avec un time stamp: user_ts auquel je rajoute adding_time_user_ts à chaque envoi de paquet (adding_time_user_ts=1000*Taille_bloc/débitwave) (pour avoir un rajout en millisecondes)
while( ((i=fread(data,1,TAILLE_BLOC,fic))>0) && (runcond) ) { /* envoie des données en rtp */ rtp_session_send_with_ts(session,data,i,user_ts); /* gestion du timestamp */ user_ts+=adding_time_user_ts; }
Marsh Posté le 07-01-2009 à 10:03:44
Salut tout le monde,
J'ai un petit problème concernant mon programme qui est sensé envoyer un fichier wave en multicast avec rtp.
Je reçois bien le fichier et j'arrive à le lire car mon buffer est infini mais le problème est qu'il envoie "à la vitesse de la machine" alors que j'aimerais l'envoyer selon son débit wave en octets par seconde.
Voilà ma boucle d'envoi:
infos:
TAILLE_BLOC est égal à 512o
data c'est ce que j'envoi
runcond -> la condition de boucle de lecture (pour pouvoir stopper la lecture)
j'envoie en rtp avec un time stamp: user_ts
auquel je rajoute adding_time_user_ts à chaque envoi de paquet
(adding_time_user_ts=1000*Taille_bloc/débitwave) (pour avoir un rajout en millisecondes)
while( ((i=fread(data,1,TAILLE_BLOC,fic))>0) && (runcond) )
{
/* envoie des données en rtp */
rtp_session_send_with_ts(session,data,i,user_ts);
/* gestion du timestamp */
user_ts+=adding_time_user_ts;
}
Voilà j'espère que vous pourrez m'aider.