PDA

Visualizza la versione completa : [c++] problema di concetto..


raphi01
27-10-2003, 12:54
ciao a tutti

sto facendo un programma che legge lo stream audio che passa nella scheda audio (deve leggere in continuazione.. deve funzionare in real time..)
- leggo inizialmente 16896 (=16384+512) campioni e su questi il programma deve farci delle cose e tirare fuori una sequenza di bit (questa parte l'ho gia' fatta e funziona, pero' partendo da un file wav presente sul disco fisso.. percio' non in real time)
- finita l'elaborazione, i primi 512 campioni non vanno piu' considerati e dovrebbero essere cancellati; ne considero altri 512 (cosi' da considerarne sempre in totale 16896) e faccio la stessa elaborazione per avere un 'altra sequenza di bit..

in pratica deve fare una cosa del genere:

leggo:

|< 16384 >|< 512 >|

elaboro la sequenza di bit h1:

|< h1 >|

ma nel frattempo continuo a leggere altri 512:

|< 512 >|

finita l'elaborazione di h1 cancello i primi 512 e faccio quella di h2:

|< ... >|< h2 >|

ma nel frattempo ho letto altri 512:

|< 512 >|

e cosi', ricavato h2, cancello i primi 512 ed elaboro h3:

|< ... >|< h3 >|

etc...
spero che la formattazione renda il concetto..


il mio problema e' che non capisco come far fare queste due cose contemporaneamente (la lettura e l'elaborazione)..
..lo vedrei facilmente in questo modo, con 2 programmi:

- il primo legge in continuazione quello che passa sulla scheda audio e mette ogni sequenza di 512 campioni letti in un record di un database
- il secondo legge i record del database; inizialmente finche' non ha letto 16896 campioni non fa nulla; poi inizia l'elaborazione. Elabora h1, cancella il primo record e legge il primo record non ancora letto e sul totale elabora h2.. e cosi' via..
ci sono metodi piu' intelligenti, vero??

avete capito cosa intendo vista la mia indubbia (?!?) chiarezza??..

ciao e grazie

raphi01
27-10-2003, 12:55
mi spiace, la formattazione ha fatto un po' di casino con gli spazi..

raphi01
27-10-2003, 12:58
forse aiuta a capire:
http://fisicavolta.unipv.it/percorsi/txt/testo.txt

Loading