Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Jul 03, 2025 11:33

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Do Aug 05, 2010 20:53 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich sitz jetzt grad wieder vor dem Problem das ich rausfinden muß wieviel von meinem Audio bereits gespielt wurde, um es mit dem Videobild zu synchronisieren.

Ich nutze schon diese QueueBuffers-Methode von OpenAL. Jeder Buffer hat immer 1 Sekunde an daten, und die werden ständig geswapt.

Jetzt könnte ich zwar hergehen und einfach zählen wie oft die Buffer geswapt wurden um zu sehen wie weit ich bin, aber ich überprüfe nur alle 100ms ob ein Buffer wieder befüllt werden muß. Also im schlechtesten fall habe ich dann einen Offset von 100ms drin, was sich bei Sprache etc schon sehr stark bemerkbar macht wenn es asynchron ist.

Ich könnte natürlich jetzt alle 10ms oder noch öffter überprüfen ob die Buffer gefüllt werden müßen, aber irgendwie scheint mir das ein wenig Ineffizient, vorallem weil OpenAL selbst immer sagt man solle die ganzen befehle nicht ZU häufig aufrufen.

Daher die frage.. gibt es evtl noch eine andere Möglichkeit sowas zu realisieren? Ich brauch das nicht in 100tel sekunden schritten oder so, mir würde es reichen wenn ich zuverlässig und genau immer mitgeteilt bekomme wenn eine Sekunde abgespielt wurde o.Ä. Alles genauere kann ich mit einer eigenen Uhr die mitläuft bestimmen und die eben immer in sekunden schritten an die tatsächlich abgespielte dauer anpassen.

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Do Aug 05, 2010 22:11 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Habs rausgefunden :)


Code:
   ALint position;
   alGetSourcei(source, AL_SAMPLE_OFFSET, &position);


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 2 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 14 Queries | GZIP : On ]