Posted By: medvidek (Blazni umiraji nadvakrat) on 'CZprogram'
Title:     Waveout, SB Live! a bruceni
Date:      Tue Aug 23 15:08:27 2005

Hola,

lamu si tu uz par dni hlavu s takovym zajimavym problemem. Mam win32 aplikaci, 
ktera pres WaveOut device prehrava audio pomoci win32 API 
(waveOutOpen, waveOutUnprepareHeader, waveOutWrite atd). Audio jsou kratke, 
obvykle nekolikasekundove klipy, ktere se radi do fronty a prehravaji. 

Aplikaci testuju na WinXP. Vse funguje jak ma, pokud neni zvukovka 
SoundBlaster Live! Se SB live! mi to obcas udela to, ze po prehrani posledniho 
klipu to prida jako "bonus" jeste tak 300ms brumu. Zaboha nemuzu prijit na to, 
cim to je. Upgrade ovladacu jsem zkusil, tvrdi, ze mam posledni, na jinem HW 
se SB Live! to dela taky.

Celkem jiste muzu vyloucit to, ze bych poslal na prehravani buffer s nejakym 
smetim, stejny efekt nastane i kdyz prehravam data, za kterymi je v pameti 
nekolik kB nul.

Zjistil jsem nasledujici skutecnosti:
- ne kazdy klip to dela, nektere se prehraji ciste. Mam ale jeden klip 
(pipnuti pouzivane pred zacatkem nahravani), ktery je k tomu obzvlast nachylny.
- stava se to jenom u posledni polozky ve fronte, pokud to pipnuti dam 
prehrat vickrat po sobe, tak zabruci jenom to posledni
- V nekterych pripadech ani to pipnuti jako posledni polozka ve fronte 
nezabruci, ale nemuzu prijit na to, kdy (ale zalezi na tom, co se dela ve 
zbytku aplikace - to, co popisuju, je soucast mnohem vetsi aplikace, jsem si 
ale jisty, ze nic dalsiho s audiem nepracuje) 
- no a perlicka na zaver - zkousel jsem dat si breakpoint do callbacku, ktery 
se mi vola, kdyz se dokonci prehravani jednoho klipu. Dal jsem prehravat 2x to 
pipnuti a kdyz se to zastavilo na tom breakpointu po prehrani prvniho klipu, 
tak to zabrucelo!

Uz fakt nevim, co s tim, budu vdecny za kazdy rozumny napad, co otestovat.


                 medvidek

--
There are 4 boxes to use in the defense of liberty:
soap, ballot, jury, ammo.
Use in that order.

Search the boards