Mercurial > mplayer.hg
changeset 971:dcf8d81eed48
Gabucino oruljel :)
author | arpi_esp |
---|---|
date | Sun, 03 Jun 2001 20:53:27 +0000 |
parents | d484625a884e |
children | b49f89b3ab2e |
files | DOCS/tech/tech-hun.txt |
diffstat | 1 files changed, 42 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/DOCS/tech/tech-hun.txt Sun Jun 03 20:32:16 2001 +0000 +++ b/DOCS/tech/tech-hun.txt Sun Jun 03 20:53:27 2001 +0000 @@ -243,5 +243,47 @@ flip_page(): ez meghivodik minden frame utan, ez kell tenylegesen megjelenitse a buffert. double buffering eseten ez lesz a 'swapbuffers'. +6. libao2: ez vezerli a hang lejatszast + A libvo-hoz (lasd 5.) hasonloan itt is kulonbozo driverek vannak, amik + egy kozos API-t (interface) valositanak meg: + +static int control(int cmd,int arg); + Ez egy altalanos celu fuggveny, a driverfuggo es egyeb specialis parameterek + olvasasara/beallitasara. Egyelore nem nagyon hasznalt. +static int init(int rate,int channels,int format,int flags); + Driver initje, ilyenkor kell megnyitni a devicet, beallitani samplerate, + channels, sample format parametereket. + Sample format: altalaban AFMT_S16_LE vagy AFMT_U8, tovabbi definiciokert + lasd. dec_audio.c ill. linux/soundcard.h fileok! + +static void uninit(); + talald ki. + na jo, segitek: lezarja a devicet, kilepeskor (meg nem) hivodik meg. + +static void reset(); + reseteli a devicet. egesz pontosan a bufferek torlesere szolgal, + tehat hogy a reset() utan mar ne szoljon tovabb az amit elotte kapott. + (pause ill. seek eseten hivodik meg) + +static int get_space(); + vissza kell adja hogy hany byte irhato az audio bufferbe anelkul hogy + blockolna (varakoztatna a hivo processt). amennyiben a buffer (majdnem) + tele van, 0-t kell visszaadni! + ha sosem ad vissza 0-at akkor nem fog mukodni az MPlayer! + +static int play(void* data,int len,int flags); + lejatszik egy adag hangot, amit a data cimu memoriateruleten kap, es len + a merete. a flags meg nem hasznalt. az adatokat at kell masolnia, mert a + hivas utan felulirodhatnak! nem kell feltetlen minden byetot felhasznalni, + hanem azt kell visszaadnia mennyit hasznalt fel (masolt a bufferbe). + +static int get_delay(); + vissza kell adja hogy hany byte varakozik az audio bufferben. lehetoleg + minel pontosabban, mert ettol fugg az egesz idozites! + legrosszabb esetben adja vissza a buffer meretet. + +!!! Mivel a kep a hanghoz (hangkartyahoz) van szinkronizalva, igy nagyon +!!! fontos hogy a get-space ill. get_delay fuggvenyek korrektul legyenek megirva! +