AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi WaveIn-Problem bei grossen Buffern (Waveform Audio API)
Thema durchsuchen
Ansicht
Themen-Optionen

WaveIn-Problem bei grossen Buffern (Waveform Audio API)

Ein Thema von HHick123 · begonnen am 4. Feb 2008 · letzter Beitrag vom 31. Mai 2008
 
HHick123

Registriert seit: 23. Jul 2007
73 Beiträge
 
#1

WaveIn-Problem bei grossen Buffern (Waveform Audio API)

  Alt 4. Feb 2008, 14:17
Hallo Leute!

Ich schreibe gerade ein Programm (XP Servicepack 2) mit WaveIn und WaveOut, wobei
ich EVENT_CALLBACK verwende.

Ich verwende jeweils 2 Buffer, wobei jeweils einer von mir vorbereitet wird,
während der andere aufgezeichnet bzw. gespielt wird.

Das klappt auch im Prinzip sehr gut, allerdings bekomme ich ein Problem
mit großen Buffergroessen (z.B. größer als 500ms oder größer als 1s)
und zwar nur bei manchen Soundkarten (z.B. beim Sennheiser PC-166-USB).

Das Problem äussert sich darin, dass in den aufgezeichneten Daten plötzlich
(teilweise mehrere 100ms lange) Stücke fehlen. Das Problem beginnt erst mit dem
Start von WaveOut (welches selber aber anstandslos funktioniert).

Bei der Benutzung von kleineren Buffern verschwindet das Problem plötzlich.

Die zurückgegebenen WaveIn-Buffer haben stets die erwartet Länge.
Alle Waveform-API-Calls liefern MMSYSERR_NOERROR.

Was könnte da sein???????
Ich bin schon reif fürs Irrenhaus!!!

Bin für jeden Hinweis dankbar.

Schönen Gruß, Helmut

Es folgt ein Trace der API-Calls eines Fehlerfalls (im Klammer stehen die Zeiten,
die der Call gedauert hat, Zeiten ermittelt mit PerformanceCounter). In dem Beispiel
läuft WaveIn immer und 2x wird etwas über WaveOut ausgegeben. Die Buffer sind 4 Sekunden lang.

0ms (160ms) WaveInOpen
160ms (24ms) WaveOutOpen
184ms (0ms) WaveOutPause
196ms (0ms) WaveInPrepareHeader 0
196ms (0ms) WaveInPrepareHeader 1
196ms (0ms) WaveOutPrepareHeader 0
196ms (0ms) WaveOutPrepareHeader 1
196ms (0ms) WaveInStart
197ms (0ms) WaveInAddBuffer 0
197ms (0ms) WaveInAddBuffer 1
4201ms -> EVENT OnInputBuffer 0
4201ms (0ms) WaveInUnprepareHeader 0
4201ms (0ms) WaveInPrepareHeader 0
4201ms (0ms) WaveInAddBuffer 0
8201ms -> EVENT OnInputBuffer 1
8201ms (0ms) WaveInUnprepareHeader 1
8201ms (0ms) WaveInPrepareHeader 1
8201ms (0ms) WaveInAddBuffer 1
8617ms (1ms) WaveOutWrite 0
8618ms (0ms) WaveOutRestart
8619ms (0ms) WaveInGetPosition
8619ms (0ms) WaveOutWrite 1
12471ms -> EVENT OnInputBuffer 0
12471ms (0ms) WaveInUnprepareHeader 0
12471ms (0ms) WaveInPrepareHeader 0
12471ms (0ms) WaveInAddBuffer 0
12762ms -> EVENT OnOutputBuffer 0
12762ms (0ms) WaveOutUnprepareHeader 0
12763ms (0ms) WaveOutPrepareHeader 0
12763ms (0ms) WaveOutWrite 0
16624ms -> EVENT OnOutputBuffer 1
16624ms (0ms) WaveOutUnprepareHeader 1
16624ms (0ms) WaveOutPrepareHeader 1
16624ms (0ms) WaveOutWrite 1
16685ms -> EVENT OnInputBuffer 1
16685ms (0ms) WaveInUnprepareHeader 1
16685ms (0ms) WaveInPrepareHeader 1
16685ms (0ms) WaveInAddBuffer 1
20624ms -> EVENT OnOutputBuffer 0
20624ms (0ms) WaveOutUnprepareHeader 0
20624ms (0ms) WaveOutPrepareHeader 0
20624ms -> EVENT OnTimeOut ENDOFPLAYBACK
20899ms -> EVENT OnInputBuffer 0
20899ms (0ms) WaveInUnprepareHeader 0
20899ms (0ms) WaveInPrepareHeader 0
20899ms (0ms) WaveInAddBuffer 0
24624ms -> EVENT OnOutputBuffer 1
24624ms (0ms) WaveOutUnprepareHeader 1
24624ms (0ms) WaveOutPrepareHeader 1
24624ms (0ms) WaveOutUnprepareHeader 0
24624ms (0ms) WaveOutUnprepareHeader 1
24625ms (33ms) WaveOutClose
24657ms (31ms) WaveOutOpen
24688ms (0ms) WaveOutPause
24688ms (0ms) WaveOutPrepareHeader 0
24688ms (0ms) WaveOutPrepareHeader 1
24899ms -> EVENT OnInputBuffer 1
24900ms (0ms) WaveInUnprepareHeader 1
24900ms (0ms) WaveInPrepareHeader 1
24900ms (0ms) WaveInAddBuffer 1
24901ms (0ms) WaveOutWrite 0
24901ms (0ms) WaveOutRestart
24901ms (0ms) WaveInGetPosition
24902ms (0ms) WaveOutWrite 1
28900ms -> EVENT OnInputBuffer 0
28900ms (0ms) WaveInUnprepareHeader 0
28900ms (0ms) WaveInPrepareHeader 0
28900ms (0ms) WaveInAddBuffer 0
28908ms -> EVENT OnOutputBuffer 0
28908ms (0ms) WaveOutUnprepareHeader 0
28908ms (0ms) WaveOutPrepareHeader 0
28908ms (0ms) WaveOutWrite 0
32900ms -> EVENT OnInputBuffer 1
32900ms (0ms) WaveInUnprepareHeader 1
32900ms (0ms) WaveInPrepareHeader 1
32900ms (0ms) WaveInAddBuffer 1
32908ms -> EVENT OnOutputBuffer 1
32908ms (0ms) WaveOutUnprepareHeader 1
32908ms (0ms) WaveOutPrepareHeader 1
32908ms (0ms) WaveOutWrite 1
36900ms -> EVENT OnInputBuffer 0
36900ms (0ms) WaveInUnprepareHeader 0
36900ms (0ms) WaveInPrepareHeader 0
36900ms (0ms) WaveInAddBuffer 0
36900ms -> EVENT OnTimeOut ENDOFPLAYBACK
36908ms -> EVENT OnOutputBuffer 0
36908ms (0ms) WaveOutUnprepareHeader 0
36908ms (0ms) WaveOutPrepareHeader 0
40900ms -> EVENT OnInputBuffer 1
40900ms (0ms) WaveInUnprepareHeader 1
40900ms (0ms) WaveInPrepareHeader 1
40900ms (0ms) WaveInAddBuffer 1
40908ms -> EVENT OnOutputBuffer 1
40908ms (0ms) WaveOutUnprepareHeader 1
40908ms (0ms) WaveOutPrepareHeader 1
40908ms (0ms) WaveOutUnprepareHeader 0
40908ms (0ms) WaveOutUnprepareHeader 1
40908ms (33ms) WaveOutClose
40941ms (37ms) WaveOutOpen
40978ms (0ms) WaveOutPause
40978ms (0ms) WaveOutPrepareHeader 0
40978ms (0ms) WaveOutPrepareHeader 1
40978ms (72ms) WaveInReset
41050ms (0ms) WaveInUnprepareHeader 0
41050ms (0ms) WaveInUnprepareHeader 1
41050ms (3ms) WaveInClose
41053ms (0ms) WaveOutUnprepareHeader 0
41053ms (0ms) WaveOutUnprepareHeader 1
41053ms (3ms) WaveOutClose

Hier noch ein Teil des Source-Codes:

--snipp--

[edit=Phoenix]Code auf Wunsch entfernt. War zu lang und hatte Fehler.
Die korrigierte Version als Download gibt es ein paar Beiträge weiter unten.
Mfg, Phoenix[/edit]
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz