HTC DriverGate – Audio verzija

Ikona vremena čitanja 4 min. čitati


Čitatelji pomažu pri podršci MSpoweruser. Možda ćemo dobiti proviziju ako kupujete putem naših veza. Ikona opisa alata

Pročitajte našu stranicu za otkrivanje kako biste saznali kako možete pomoći MSPoweruseru da održi urednički tim Čitaj više

vozačka vrata

Pa, nakon dan-dva kada se Windows Mobile osjeća dobro, vraćamo se na neke probleme koji nepotrebno muče naše uređaje.

Čini se da upravljački program ponovno utječe na odabrane HTC uređaje, uključujući sve vrhunske uređaje trenutne generacije kao što su HTC Touch Diamond, Touch Pro, HD i Xperia. Kada se zvuk povremeno reproducira putem slušalica ili zvučnika (obično svakih 5 minuta), čut ćete kratko "preskakanje" u zvuku. Zvuk je opisan kao kašnjenje/preskakanje/štucanje/tikanje/bljesak. Čini se da je problem duboko u upravljačkom programu valovnog uređaja ili možda u samom hardverskom valovnom uređaju (Qualcomm ponovno u akciji?) Čini se da problem nije prisutan u A2DP-u.

Problem uglavnom pogađa igrače trećih strana, jer se čini da je HTC riješio problem, ali samo za sebe, izgradnjom prilagođenog pokretačkog programa za valove.

Tim Conduits Pocket Player istraživao je problem i vratio se obeshrabren. To je ono što su imali za reći na tu temu.

Proveli smo opsežna ispitivanja u vezi s problemom preskakanja HTC zvuka i došli do zaključka da to nije nešto što Conduits može riješiti. Nakon analize programa HTC Audio Manager i nekoliko drugih datoteka (kao što je HTC-ov DirectShow Audio Renderer HTCRenderFlt2.dll i HTCADXRenderer4.dll), otkrili smo da oba upućuju vrlo posebne sistemske pozive u WaveOut driver.

Evo nekih tehničkih detalja za ono što smo pronašli. Prvo, ne mislimo da prioritet niti ili procesa ima ikakve veze s problemom. Normalna audio aplikacija koristi ciklus 'waveOut međuspremnika' koji održavaju audio izlaz 'punim' sa audio podacima iz kojih sustav može povući i reproducirati. Aplikacije koriste standardne funkcije waveOutWrite za popunjavanje tih međuspremnika. Sa stajališta Pocket Playera, ti međuspremnici su uvijek puni, a podešavanje prioriteta neće utjecati na to. Jedan od načina poboljšanja preskakanja zvuka (koji je utjecao na HTC TyTN) bio je povećanje prioriteta niti WaveOut drajvera uređivanjem vrijednosti registra pod HKLM\Drivers\Builtin\WaveOut. Ovaj pristup ovdje nije uspio. Zanimljivo je da se ovi problemi s preskakanjem javljaju na stolnim računalima. Tu se problem odnosi na upravljačke programe u stvarnom vremenu čija obrada traje "predugo", što sprječava audio upravljački program u obradi sljedeće serije zvuka. To se događa u Visti s nekim drajverima za MacBook.

Audio Manager koristi drugačiji izlazni mehanizam od standardnih WaveOut poziva – koristi DirectShow audio renderer filter, što je još jedan način za slanje zvuka. Gledajući iznutra kako radi, koristi potpuno drugačiji mehanizam. Koristi vlasnički poziv waveOutMessage za otvaranje novog reda poruka, kroz koji se zvuk zatim "streama".

Pocket Player (i druge aplikacije) bi možda mogli riješiti ovaj problem korištenjem HTC Audio Renderera umjesto vlastitih WaveOut rutina, ali tada bismo izgubili unakrsno blijeđenje i druge značajke specifične za Pocket Player. Napravili smo neke početne testove stvaranja DirectShow filtarskog grafikona (zajedno s njihovim Audio Rendererom), ali ipak smo iskusili preskakanje, tako da moraju postojati dodatni koraci.

Kao rezultat toga, Conduits sada ovo smatra problemom specifičnim za uređaj koji je proizvođač dužan riješiti. Alternativno, ako HTC želi dokumentirati svoj poseban "streaming mode" za svoj audio izlazni upravljački program, mogli bismo razmotriti prilagodbu tom modelu.

Ako ekstrahirate Wavedev.dll iz ROM-a, vidjet ćete bezbrojne poruke o ispravljanju pogrešaka u vezi s "MP3 Streams" i slično, ukazujući na potpuno odvojeni audio put za glazbu koja dolazi iz njihovog softvera. Ako bude potrebno, prepisat ćemo naš izlazni dodatak WaveOut (naše izlazne rutine koriste privatnu arhitekturu dodataka baš kao i naše druge vrste dodataka) koji koristi izlaz DirectShow.

HTC je odbio dokumentirati kako su riješili problem, rekavši da ne podržavaju softver treće strane.

Naravno, XDA-Developeri nikada nisu oni koji bi dopustili da ovakva situacija bude lažna. Thx1200 pokreće nagradu za programere koji mogu proizvesti rješenje otvorenog koda za ovaj problem i učiniti ga dostupnim zajednici. Trenutačno je nagrada samo malih 30 dolara, ali siguran sam da možemo generirati mnogo više donacija za rješavanje ovog mučnog problema za svakoga tko koristi audio softver treće strane.

Pročitajte cijelu temu na XDA-Developers ovdje, i ne zaboravite dodati svoje obećanje također ako smatrate da je ovo situacija koju treba ispraviti.

Više o temama: audio upravljački programi, HTC