Sziasztok!
Van egy kis problémám... egy hanglejátszó programocskát készítek, mely - ebben a pillanatban még csak - beolvas egy wav file-t, beállítja a /dev/dsp-t ioctl segítségével, majd rálöki a nyers hangot.
Ezzel nincs semmi problémám, a gondom a hangkártya buffer beállításánál van, ugyanis a hangkari kb 3 mp-nyi hanganyagot elbufferel, ami azt jelenti, hogy a lejátszás után még 3 mp-ig zenél a drága...
Tud abban nekem valaki segíteni, hogy c alatt hogyan lehet beállítani egy file bufferelését?
Előre is köszi
S81
- 1500 megtekintés
Hozzászólások
Van valami indokod hogy OSS-t hasznalj? (kb. 2004 ota obsolate a Linuxban)
amugy a bufferre lehetsz hatassal pl. a SNDCTL_DSP_SETFRAGMENT-el.
A nativ OSS 64k DMA buffert hasznal amugy, de te valoszinuleg az ALSA OSS emulaciojat hasznalod. Ott pedig nagy valoszinuseg szerint nem nagyon szolhatsz bele errol az oldalrol az buffer meretbe :-(...
Zsiraf
p.s.: nem sok koze van a file buffereleshez :-)
p.s.: www.alsa-project.org
- A hozzászóláshoz be kell jelentkezni
Köszi a válaszod, befutó vagy ;-) ... Én az SNDCTL_DSP_SETBLKSIZE -ra gyanakodtam, ezek szerint rosszul :-)
Natív oss-t használok, mert nem szeretném, ha a lejátszó programomon kívűl más is tudná használni a hangkarit ;-)
Tényleg köszi
Stage81
- A hozzászóláshoz be kell jelentkezni
Én az SNDCTL_DSP_SETBLKSIZE -ra gyanakodtam, ezek szerint rosszul :-)
Hat, mivel nem letezik... :-(
Zsiraf
- A hozzászóláshoz be kell jelentkezni
Most csak ezt talaltam hirtelen, de talan tudod hasznalni...
http://manuals.opensound.com/developer/SNDCTL_DSP_SETFRAGMENT.html
Zsiraf
- A hozzászóláshoz be kell jelentkezni
> Van valami indokod hogy OSS-t hasznalj? (kb. 2004 ota obsolate a Linuxban)
Esetleg azert jo, mert igy egy normalisan megirt program meg elmukodik jo nehany egyeb oprendszer alatt is. Az ALSA pedig gyakorlatilag Linux-only (viszont az altalad is emlegetett OSS-emulacioval 2 legyet ut egy csapasra.)
- A hozzászóláshoz be kell jelentkezni
... beállítja a /dev/dsp-t ioctl segítségével, ...
Mely "oprendszeren" lehet /dev/dsp-t beallitani a Linux-on kivul?
Zsiraf
- A hozzászóláshoz be kell jelentkezni
No...
Köszi a linkeket, már megoldotta szaszq a problémám :-) SETBLKSIZE valóban nincs, csak gugli dobott fel nekem néhány nem létező megoldást, néztem is nagyokat...
A progi csak linuxra készül ;-)
Üdv mindenkinek
Stage81
- A hozzászóláshoz be kell jelentkezni
Hát OSS (kompatibilis?) van Solarisra, *BSD-re. És akár az is elképzelhető, hogy pl. aki kompatibilitásra is ad, az akár az IOCTL-eket is implementálja. Speciel mintha FreeBSD-n lenne jó pár IOCTL az OSS-hez.
(Ha már - miért is ennyire _fontos_, hogy Linuxra legyen? Miért baj az, ha megy máson is?)
- A hozzászóláshoz be kell jelentkezni