[Mplayer-cvslog] CVS: main/DOCS TODO,1.23,1.24 tech-hun.txt,1.7,1.8 AUTHORS,1.33,1.34
GEREOFFY
arpi_esp at users.sourceforge.net
Thu May 24 20:33:53 CEST 2001
Update of /cvsroot/mplayer/main/DOCS
In directory usw-pr-cvs1:/tmp/cvs-serv28934
Modified Files:
TODO tech-hun.txt AUTHORS
Log Message:
some updates
Index: TODO
===================================================================
RCS file: /cvsroot/mplayer/main/DOCS/TODO,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -r1.23 -r1.24
*** TODO 2001/05/24 16:22:18 1.23
--- TODO 2001/05/24 18:33:51 1.24
***************
*** 1,21 ****
TO DO:
~~~~~~
- Urgent:
- - support for more codecs (sample .avi files and .dll needed!) - HELP!
- - make a release!
- - change to libxmm
- - audio playback rate setting [Jelmer Feenstra]
- - further optimizations
- They Have Been Around For A Long Time:
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
High Priority:
- finish ASF seeking (find next keyframe)
! - asterix.avi audio delays after 5-10 mins (bps mode only)
! - fix mp3lib to avoid segfault with some damaged .avi files (DONE!?)
Medium Priority:
- - seeking support for broken avi files without index chunk (DONE!)
- - fix x11 driver to work without SHM (for remote playing etc)
- show current frame number [Gabucino]
- seek_to_frame and seek_to_index options
--- 1,13 ----
TO DO:
~~~~~~
High Priority:
- finish ASF seeking (find next keyframe)
! - audio playback rate setting [Jelmer Feenstra]
! - asterix.avi audio delays after 5-10 mins (bps mode only) - DONE?
! - fix x11 driver to work without SHM (for remote playing etc)
! - further optimizations
Medium Priority:
- show current frame number [Gabucino]
- seek_to_frame and seek_to_index options
***************
*** 23,27 ****
Low Priority:
! - fix X4.0.x/DRI OpenGL (doesn't really work, at least mga & tdfx & nvidia)
- support for MPEG TS (transport streams) - I need sample files!
! - integrating the gui?
--- 15,19 ----
Low Priority:
! - fix X4.0.x/DRI OpenGL - DONE? mga works with 4.0.3
- support for MPEG TS (transport streams) - I need sample files!
! - integrating the gui? - DONE?
Index: tech-hun.txt
===================================================================
RCS file: /cvsroot/mplayer/main/DOCS/tech-hun.txt,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** tech-hun.txt 2001/04/20 11:56:41 1.7
--- tech-hun.txt 2001/05/24 18:33:51 1.8
***************
*** 1,15 ****
- [yes, this is hungarian. maybe someone will translate this to russian or
- something else...]
-
Nos, akkor leirom, hogyan is mûködik ez az egész.
- Az ékezetekkel majd lesz valami, nem nagyon vagyok hozzászokva az
- ékezetes gépeléshez...
-
- A program felépítése alapjaiban logikus, de eleg gányul van megirva :)
-
A fõ modulok:
! 1. streamer.c: ez az input, azaz ez olvassa a filet vagy VCD-t.
amit tudnia kell: megfelelõ sectoronkenti bufferelés, seek, skip funkciók,
byte-onkénti ill. tetszõleges méretû blockonkénti olvasás.
--- 1,7 ----
Nos, akkor leirom, hogyan is mûködik ez az egész.
A fõ modulok:
! 1. streamer.c: ez az input layer, azaz ez olvassa a filet, VCD-t vagy stdin-t.
amit tudnia kell: megfelelõ sectoronkenti bufferelés, seek, skip funkciók,
byte-onkénti ill. tetszõleges méretû blockonkénti olvasás.
***************
*** 17,21 ****
2. demuxer.c: ez végzi az input szétszedését audio és video csatornákra,
! és a kiválasztott csatornák bufferelt package-nkénti olvasását.
A demuxer.c inkább csak egy framework, ami közös minden input
formátumra, és az egyes formátumokhoz (mpeg-es,mpeg-ps, avi, avi-ni, asf)
--- 9,13 ----
2. demuxer.c: ez végzi az input szétszedését audio és video csatornákra,
! és a kiválasztott csatornák bufferelt package-enkénti olvasását.
A demuxer.c inkább csak egy framework, ami közös minden input
formátumra, és az egyes formátumokhoz (mpeg-es,mpeg-ps, avi, avi-ni, asf)
***************
*** 27,34 ****
memoriaban ezek lancolt listaban vannak, mivel kulonbozo meretuek.
! 2.b. demuxer stream, azaz ds. struct: demux_stream_t
minden egyes csatornahoz (a/v) tartozik egy ilyen.
ez tartalmazza a stream-hez tartozo packeteket (lasd. 2.a.)
! egyelore demuxer-enkent 2 ilyen lehet, egy a hanghoz es egy a kephez.
2.c. stream header. 2 fele van (egyelore): sh_audio_t es sh_video_t
--- 19,30 ----
memoriaban ezek lancolt listaban vannak, mivel kulonbozo meretuek.
! 2.b. demuxer stream, azaz ds.
! struct: demux_stream_t
minden egyes csatornahoz (a/v) tartozik egy ilyen.
ez tartalmazza a stream-hez tartozo packeteket (lasd. 2.a.)
! egyelore demuxer-enkent 3 ilyen lehet:
! - hang (d_audio)
! - kep (d_video)
! - DVD felirat (d_dvdsub)
2.c. stream header. 2 fele van (egyelore): sh_audio_t es sh_video_t
***************
*** 48,52 ****
Pelda: van egy .asf fileunk, abban 6 db stream, ebbol 1 audio es 5 video.
A header beolvasasakor letre fog jonni 6 db sh struct, 1 audio es 5 video.
! Amikor elkezdi olvasni a packeteket, az elso talalt audio es video streamet
kivalasztja, es ezekre allitja be a d_audio es d_video sh pointereit.
Igy kesobbiekben mar csak ezeket a streameket olvassa, a tobbit nem.
--- 44,49 ----
Pelda: van egy .asf fileunk, abban 6 db stream, ebbol 1 audio es 5 video.
A header beolvasasakor letre fog jonni 6 db sh struct, 1 audio es 5 video.
! Amikor elkezdi olvasni a packeteket, az elso talalt audio es video
! packethez tartozo streamet
kivalasztja, es ezekre allitja be a d_audio es d_video sh pointereit.
Igy kesobbiekben mar csak ezeket a streameket olvassa, a tobbit nem.
***************
*** 61,65 ****
(audio vagy video), mennyi byteot es hova (memoriacim) szeretnenk
beolvasni. ezt hivogatjak gyakorlatilag a codec-ek.
! - ez megenzi,hogy az adott ds bufferében van-e valami, ha igen akkor
onnan olvas amennyit kell. ha nincs/nincs eleg, akkor meghivja
a ds_fill_buffer()-t ami:
--- 58,62 ----
(audio vagy video), mennyi byteot es hova (memoriacim) szeretnenk
beolvasni. ezt hivogatjak gyakorlatilag a codec-ek.
! - ez megnezi,hogy az adott ds bufferében van-e valami, ha igen akkor
onnan olvas amennyit kell. ha nincs/nincs eleg, akkor meghivja
a ds_fill_buffer()-t ami:
***************
*** 67,73 ****
ha igen, akkor a legregebbit atrakja a bufferbe es olvas tovabb.
ha ures a lancolt lista, akkor meghivja a demux_fill_buffer()-t:
! - ez az input formatumnak megfelelo parset meghivja ami olvassa
tovabb a filet, es a talalt csomagokat rakja be a megfelelo bufferbe.
! na ha mondjuk audio csomagot szeretennk, de csak egy rakat video csomag
van, akkor jon elobb-utobb a DEMUXER: Too many (%d in %d bytes) audio
packets in the buffer... hibauzenet.
--- 64,70 ----
ha igen, akkor a legregebbit atrakja a bufferbe es olvas tovabb.
ha ures a lancolt lista, akkor meghivja a demux_fill_buffer()-t:
! - ez az input formatumnak megfelelo parser-t meghivja ami olvassa
tovabb a filet, es a talalt csomagokat rakja be a megfelelo bufferbe.
! na ha mondjuk audio csomagot szeretnenk, de csak egy rakat video csomag
van, akkor jon elobb-utobb a DEMUXER: Too many (%d in %d bytes) audio
packets in the buffer... hibauzenet.
***************
*** 80,91 ****
az idozites eleg erdekesen van megoldva, foleg azert mert minden
fileformatumnal maskepp kell/celszeru, es neha tobbfele keppen is lehet.
van egy a_frame es egy v_frame nevu float valtozo, ez tarolja az epp
lathato/hallhato a/v poziciojat masodpercben.
! akkor jelenit meg ujabb video frame-t, ha v_frame<a_frame, es akkor
! dekodol tovabb hangot ha a_frame<v_frame.
amikor lejatszik (hang/kep) akkor a lejatszott valami idotartamaval
! noveli a megfelelo valtozot. videonal ez altalaban 1.0/fps, persze
! meg kell jegyeznem hogy videonal nem igazna szamit az fps, asf-nel
! pl. nincs is olyan, ahelyett duration van es framenkent valtozhat.
mpeg2-nel pedig repeat_count van ami 1-2.5 idotartamban elnyujtja
a framet... avi-nal van talan egyedul fix fps, meg mpeg1-nel.
--- 77,104 ----
az idozites eleg erdekesen van megoldva, foleg azert mert minden
fileformatumnal maskepp kell/celszeru, es neha tobbfele keppen is lehet.
+
van egy a_frame es egy v_frame nevu float valtozo, ez tarolja az epp
lathato/hallhato a/v poziciojat masodpercben.
!
! A lejatszo ciklus felepitese:
! while(not EOF) {
! fill audio buffer (read & decode audio) + increase a_frame
! read & decode a single video frame + increase v_frame
! sleep (wait until a_frame>=v_frame)
! display the frame
! apply A-V PTS correction to a_frame
! check for keys -> pause,seek,...
! }
!
amikor lejatszik (hang/kep) akkor a lejatszott valami idotartamaval
! noveli a megfelelo valtozot:
! - audional ez a lejatszott byteok / sh_audio->o_bps
! megj: i_bps = tomoritett byteok szama egy masodpercnyi hanghoz
! o_bps = tomoritetlen byteok szama egy masodpercnyi hanghoz
! (ez utobbi == bps*samplerate*channels)
! - videonal ez altalaban az sh_video->frametime.
! Ez altalaban == 1.0/fps, persze meg kell jegyeznem hogy videonal nem
! igazan szamit az fps, asf-nel pl. nincs is olyan, ahelyett duration
! van es framenkent valtozhat.
mpeg2-nel pedig repeat_count van ami 1-2.5 idotartamban elnyujtja
a framet... avi-nal van talan egyedul fix fps, meg mpeg1-nel.
***************
*** 103,114 ****
persze ez meg nem minden szinkron ugyben, van meg nemi gaz.
pl. az hogy a hangkartya eleg rendesen kesleltet, ezt az mplayernek
! korrigalnia kell: ezert kell neki az audio buffer merete. amit a
! select()-e tud lemerni amit viszont nem tud minden kartya...
! ilyenkor kell a -abs opcioval megadni.
!
! aztan van olyan gond is, hogy pl. mpegnel nem framenkent van PTS
! hanem szektoronkent, ami tartalmazhat 10 framet is de 0.1-et is.
! hogy ez ne csessze el az idozitest, atlagoljuk 5 framenkent a
! PTS-t es ezt az atlag erteket vesszuk figyelembe korrekcional.
avi-nal sem egyszeru az elet. ott a 'hivatalos' idozitesi mod a
--- 116,133 ----
persze ez meg nem minden szinkron ugyben, van meg nemi gaz.
pl. az hogy a hangkartya eleg rendesen kesleltet, ezt az mplayernek
! korrigalnia kell! Az osszes audio kesleltetes masodpercben ezek osszege:
! - az utolso timestamp (PTS) ota beolvasott byteok:
! t1 = d_audio->pts_bytes/sh_audio->i_bps
! - Win32/ACM eseten az audio input bufferben tarolt byteok:
! t2 = a_in_buffer_len/sh_audio->i_bps
! - az audio out bufferben tarolt tomoritetlen byteok:
! t3 = a_buffer_len/sh_audio->o_bps
! - a hangkartya buffereben (vagy DMA bufferben) tarolt, meg nem
! lejatszott byteok:
! t4 = get_audio_delay()/sh_audio->o_bps
!
! Ezekbol kiszamolhato egeszen pontosan, hogy az epp hallhato hanghoz
! milyen PTS tartozik, majd ezt osszevetve a video-hoz tartozo PTS-el
! meg is kapjuk az A-V eltereset!
avi-nal sem egyszeru az elet. ott a 'hivatalos' idozitesi mod a
***************
*** 126,130 ****
nem nagyon hasznlajak :) a masik sehol nincs leirva de hasznaljak, ezt
csak merni lehet...
!
4. codecek. ezek kulonbozo lib-ek szanaszet mindenfelol.
mint pl. libac3, libmpeg2, xa/*, alaw.c, opendivx/*, loader, mp3lib.
--- 145,170 ----
nem nagyon hasznlajak :) a masik sehol nincs leirva de hasznaljak, ezt
csak merni lehet...
!
! 3.a. audio playback:
! par szo az audio lejatszasrol:
! az egeszben nem maga a lejatszas a nehez, hanem:
! 1. hogy tudjuk mikor lehet irni a bufferbe, blocking nelkul
! 2. hogy tudjuk, mennyit jatszott mar le abbol amit a bufferbe irtunk
! Az 1. az audio dekodolashoz kell, valamint hogy a buffert mindig teli
! allapotban tudjuk tartani (igy sose fog megakadni a hang).
! A 2. pedig a korrekt idoziteshez szukseges, ugyanis nemely hangkartya
! akar 3-7 masodpercet is kesleltet, ami azert nem elhanyagolhato!
! Ezek megvalositasara az OSS tobbfele lehetoseget is kinal:
! - ioctl(SNDCTL_DSP_GETODELAY): megmondja hany lejatszatlan byte
! varakozik a hangkartya bufferjeben -> idoziteshez kivallo,
! de nem minden driver tamogatja :(
! - ioctl(SNDCTL_DSP_GETOSPACE): megmondja mennyit irhatunk a kartya
! bufferebe blocking nelkul. ha a driver nem tudja a GETODELAY-t,
! akkor ezt hasznalhatjuk arra is, hogy megtudjuk a kesleltetest.
! - select(): meg kene mondja, hogy irhatunk-e a kartya bufferebe
! blocking nelkul. azt, hogy emnnyit irhatunk, nem mondja meg :(
! valamint sok driverrel egyaltalan nem, vagy rosszul mukodik :((
! csak akkor hasznalom, ha egyik fenti ioctl() sem mukodik.
!
4. codecek. ezek kulonbozo lib-ek szanaszet mindenfelol.
mint pl. libac3, libmpeg2, xa/*, alaw.c, opendivx/*, loader, mp3lib.
***************
*** 174,177 ****
--- 214,222 ----
init() - ez hivodik meg a legelso frame kirakasa elott - bufferek foglalasa
stb a celja.
+ van egy flags parameter is (regen fullscreen volt a neve):
+ 0x01 - fullscreen (-fs)
+ 0x02 - vidmode switch (-vm)
+ 0x04 - scaling enabled (-zoom)
+ 0x08 - flip image (upside-down)
draw_slice(): ez planar YV12 kepet rak ki (3 db plane, egy teljes
Index: AUTHORS
===================================================================
RCS file: /cvsroot/mplayer/main/DOCS/AUTHORS,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -r1.33 -r1.34
*** AUTHORS 2001/05/23 08:51:44 1.33
--- AUTHORS 2001/05/24 18:33:51 1.34
***************
*** 4,7 ****
--- 4,10 ----
====================== The MPlayer project: ===========================
+ NOTE: Do NOT send bugreports, help & feature requests directly to the authors!
+ ===== Read DOCS/BUGREPORTS and subscribe to mplayer-users mailing lists.
+
Árpád Gereöffy (A'rpi/ESP-team): <arpi at thot.banki.hu>
- player code (mpeg stream demultiplexer and avi/asf parser, A-V sync, seek...)
***************
*** 15,19 ****
- opendivx decoder speed optimizations (see opendivx/ChangeLog)
- OSD & SUB display code
- - everything that isn't listed elsewhere
Zoltán Ponekker (Pontscho/Fresh!): <pontscho at makacs.poliod.hu>
--- 18,21 ----
***************
*** 33,37 ****
Gábor Bérczi (Gabucino): <gabucino at k2.jozsef.kando.hu>
! - documentation maintainer, hun-eng translator
- documentation hungarian translation
- webpage maintainer
--- 35,39 ----
Gábor Bérczi (Gabucino): <gabucino at k2.jozsef.kando.hu>
! - documentation maintainer
- documentation hungarian translation
- webpage maintainer
***************
*** 40,44 ****
Szabolcs Berecz: <szabi at inf.elte.hu>
! - codecs.conf file, config file and command line parser
- mga_vid fixes, module option stc.
- fbdev support in libvo
--- 42,47 ----
Szabolcs Berecz: <szabi at inf.elte.hu>
! - codecs.conf file parser
! - config file and command line parser
- mga_vid fixes, module option stc.
- fbdev support in libvo
***************
*** 80,84 ****
- memcpy optimizations for AMD K7 and Intel Pentium III (fastmemcpy.h)
- CDROM tune info
! - further 3DNow! optimizations into mp3lib
- russian DOCS translation
--- 83,87 ----
- memcpy optimizations for AMD K7 and Intel Pentium III (fastmemcpy.h)
- CDROM tune info
! - further 3DNow! optimizations into mp3lib and libac3
- russian DOCS translation
***************
*** 124,128 ****
Mark Podlipec:
! - xanim author [I'm using its aLaw audio decoder]
Jutta Degener and Carsten Bormann:
--- 127,131 ----
Mark Podlipec:
! - xanim author [I'm using its aLaw+uLaw audio decoder]
Jutta Degener and Carsten Bormann:
_______________________________________________
Mplayer-cvslog mailing list
Mplayer-cvslog at lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/mplayer-cvslog
More information about the MPlayer-cvslog
mailing list