HTC DriverGate – versi Audio

Ikon waktu membaca 4 menit Baca


Pembaca membantu dukungan MSpoweruser. Kami mungkin mendapat komisi jika Anda membeli melalui tautan kami. Ikon Keterangan Alat

Baca halaman pengungkapan kami untuk mengetahui bagaimana Anda dapat membantu MSPoweruser mempertahankan tim editorial Baca lebih lanjut

gerbang pengemudi

Nah, setelah satu atau dua hari Windows Mobile merasa baik, kami kembali ke beberapa masalah yang tidak perlu mengganggu perangkat kami.

Tampaknya driver sekali lagi memengaruhi perangkat HTC tertentu, termasuk semua perangkat generasi mutakhir seperti HTC Touch Diamond, Touch Pro, HD, dan Xperia. Saat suara dimainkan baik melalui headphone atau speaker secara berkala (biasanya setiap 5 menit sekali), Anda akan mendengar "skip" singkat di audio. Suara telah digambarkan sebagai lag/skip/cegukan/tik/blip. Masalahnya tampaknya jauh di dalam driver perangkat gelombang atau mungkin perangkat gelombang perangkat keras itu sendiri (Qualcomm beraksi lagi?) Masalahnya tampaknya tidak ada di A2DP.

Masalahnya terutama mempengaruhi pemain pihak ketiga, karena HTC tampaknya telah memecahkan masalah, tetapi hanya untuk diri mereka sendiri, dengan membangun driver gelombang khusus.

Tim Conduits Pocket Player telah menyelidiki masalah ini dan kembali dengan putus asa. Inilah yang telah dikatakan tentang masalah ini.

Kami telah melakukan tes ekstensif mengenai masalah melewatkan audio HTC, dan telah sampai pada kesimpulan bahwa itu bukan sesuatu yang dapat diatasi oleh Conduits. Setelah menganalisa program HTC Audio Manager, dan beberapa file lainnya (seperti HTC's DirectShow Audio Renderer HTCRenderFlt2.dll dan HTCADXRenderer4.dll), kami menemukan bahwa keduanya membuat beberapa panggilan sistem yang sangat khusus ke dalam driver WaveOut.

Berikut adalah beberapa detail teknis untuk apa yang kami temukan. Pertama, kami tidak berpikir bahwa utas atau prioritas proses ada hubungannya dengan masalah. Aplikasi audio normal menggunakan siklus 'buffer waveOut' yang menjaga output audio 'penuh' dengan data audio untuk ditarik dan diputar oleh sistem. Aplikasi menggunakan fungsi waveOutWrite standar untuk mengisi buffer ini. Dari sudut pandang Pocket Player, buffer ini selalu penuh, dan menyesuaikan prioritas tidak akan mempengaruhi ini. Salah satu cara untuk meningkatkan lompatan audio (yang telah memengaruhi HTC TyTN) adalah dengan meningkatkan prioritas utas driver WaveOut dengan mengedit nilai registri di bawah HKLM\Drivers\Builtin\WaveOut. Pendekatan ini tidak berhasil di sini. Yang cukup menarik, masalah skipping ini terjadi pada PC desktop. Di sana, masalahnya terkait dengan driver waktu nyata yang membutuhkan 'terlalu lama' dalam pemrosesannya, yang mencegah driver audio memproses kumpulan suara berikutnya. Ini terjadi di Vista dengan beberapa driver MacBook.

Pengelola Audio menggunakan mekanisme keluaran yang berbeda dari panggilan waveOut standar - ia menggunakan filter penyaji audio DirectShow, yang merupakan cara lain untuk mengirim audio. Melihat ke dalam cara kerjanya, ia menggunakan mekanisme yang sama sekali berbeda. Itu menggunakan panggilan waveOutMessage yang dipatenkan untuk membuka antrian pesan baru, yang kemudian "di-streaming" melalui audio.

Pocket Player (dan aplikasi lain) mungkin dapat menyelesaikan masalah ini dengan menggunakan HTC Audio Renderer sebagai ganti dari rutinitas waveOut mereka sendiri, tetapi kemudian kita akan kehilangan cross fading dan fitur khusus Pocket Player lainnya. Kami melakukan beberapa pengujian awal untuk membuat grafik filter DirectShow (lengkap dengan Audio Renderer-nya) tetapi masih mengalami lompatan, sehingga harus ada langkah tambahan.

Akibatnya, Conduits sekarang menganggap ini sebagai masalah khusus perangkat yang wajib diperbaiki oleh pabrikan. Sebagai alternatif, jika HTC ingin mendokumentasikan "mode streaming" khusus mereka untuk driver output audio mereka, kami dapat mencoba beradaptasi dengan model tersebut.

Jika Anda mengekstrak Wavedev.dll dari ROM, Anda akan melihat pesan debug yang tak terhitung jumlahnya mengenai “MP3 Streams†dan sejenisnya, yang menunjukkan jalur audio yang sepenuhnya terpisah untuk musik yang berasal dari perangkat lunak mereka. Jika perlu, kami akan menulis ulang plug-in keluaran WaveOut kami (rutinitas keluaran kami menggunakan arsitektur plug-in pribadi seperti jenis plug-in kami yang lain) yang menggunakan keluaran DirectShow.

HTC telah menolak untuk mendokumentasikan bagaimana mereka memecahkan masalah tersebut, dengan mengatakan bahwa mereka tidak mendukung perangkat lunak pihak ketiga.

Tentu saja XDA-Developer tidak pernah membiarkan situasi seperti ini terjadi. Thx1200 memulai hadiah untuk pengembang yang dapat menghasilkan solusi open source untuk masalah ini dan membuatnya tersedia untuk komunitas. Saat ini hadiahnya hanya $30, tapi saya yakin kami dapat menghasilkan lebih banyak donasi untuk mengatasi masalah yang menjengkelkan ini bagi siapa saja yang menggunakan perangkat lunak audio pihak ke-3.

Baca utas lengkapnya di XDA-Developers di sini, dan jangan lupa tambahkan juga janji Anda jika Anda merasa ini adalah situasi yang perlu diperbaiki.

Lebih lanjut tentang topik: driver audio, HTC

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai *