PDA

View Full Version : [ALSA] Lettura clock campioni audio? Si puo'?


parisisalvo
13-10-2005, 17:50
Salve!!
Ho un problemone...Siamo sotto linux.
Ho realizzato un software di synch, e dovrei "testarlo" con una sorgente audio (comune a entrambi i pc).
con la chiamata ALSA snd_pcm_readi() leggo 2000 campioni alla volta (ho un rate di 8000Hz) messi appunto nella variabile *audio;
Io leggo il clock macchina, tramite la chiamata rdtsc.
Se volessi sapere a che clock (macchina) è stato registrato il campione 1500esimo faccio cosi' (pseudocodice) ;

clock=rdtsc(...);
audio = snd_pcm_readi(...);
clock_campione=1500*(1/8000)*clockmacchina

Ho usato la semplice proporzione
1sec : clockmacchina = 1500/8000 : x
dato che 1500 * 1/8000 mi da lo shift in avanti in secondi da considerare.
Diciamo che ho fatto finta, che il primo campione audio corrisponde alla lettura del clock macchina quando chiamo la funzione di lettura, poi mi sono spostato tot usec in avanti e "immaginato" quanto potesse valere il clock shiftato.
Non esiste un modo migliore per operare? Per avere piu' precisione?