record - playback synchronisieren
-
hola leute !
ich hab fuers lan ein kleines voice-chat-proggie geschrieben. nun hab ich aber n kleines problem: die standart soundcards halten die angegebenen sampling-rates net wirklich ein. wenn ich nun mit jemanden paar minuten quatsche, dann wird aus meinen urspruenglichen 0.3 sek gleich mal 2-3 sekunden zeitverzoegerung. aufgebaut hab ich das mit den low-level apis und fuer die kompression verwende ich den gsm610 acm-codec. unter directX gibts filter die die abspielgeschwindigkeit ueberpruefen und sie richtig ausballancieren. oder auch proggies gibts dafuer: z.b. ReClock. aber das greift bei den waveinxxx waveoutxxx apis nicht. is gibt zwar waveOutSetPlaybackRate und so n zeugs, aber wird nicht von allen soundcards unterstuetzt. von meiner schon garnicht.
gibts da sonst noch ne moeglichkeit wie man die record und playback geschwindigkeit synchronisieren kann ?
derzeit loesche ich alle 5 minuten ein paar buffer aus meiner waveOutWrite-queue, damit er wieder etwas "aufholt". is aber auch recht doof.hoffe mal das mir da vielleicht jemand weiter helfen kann
Meep Meep
-
für gewöhnlich wird die latenz zwischen input und output beim sog. rec w/ playback bei der waveApi nur durch die buffergrössen bestimmt.
wenn die latenz stetig wächst, solltest du einmal dein design prüfen.
-
hallo RockNix !
mein proggie is scho in ordnung. hab auch andere proggies ausprobiert. bei denen wird die latenzzeit auch immer groesser.
auch in newsgroups haben die leute laufend probleme mit dem zeugs.bin jetzt aber mal n kleiner stueckchen weiter gekommen. wenn ich nur im PCM format aufnehme und abspiel gibts (fast) keine latenzzeitzunahme. liegt irgendwo im millisekundenbereich bei ein paar minuten. aber sobald ich GSM kompression benutze komme ich auf durchschnittlich 1 sek. pro minute.
Meep Meep