From 576fca21aa4d1dd1a87fa68c61066173633f1459 Mon Sep 17 00:00:00 2001 From: arpi_esp Date: Sun, 11 Mar 2001 19:44:15 +0000 Subject: how does mplayer works - hungarian doc git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@87 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/tech/tech-hun.txt | 156 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 DOCS/tech/tech-hun.txt (limited to 'DOCS/tech') diff --git a/DOCS/tech/tech-hun.txt b/DOCS/tech/tech-hun.txt new file mode 100644 index 0000000000..6a27b6a4d3 --- /dev/null +++ b/DOCS/tech/tech-hun.txt @@ -0,0 +1,156 @@ +[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ő bufferelés, seek, skip funkciók, + byte-onkénti ill. tetszőleges méretű blockonkénti olvasás. + Egy stream (input device/file) leírására a stream_t struktura szolgál. + +2. demuxer.c: ez végzi az input szétszedését audio és video csatornákra, + és a kiválasztott scatorná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) + külön parser van, ezek a demux_*.c fileokban vannak. + A hozza tartozo struktura a demuxer_t. osszesen egy demuxer van. + +2.a. demuxer stream, azaz ds. struct: demux_stream_t + minden egyes csatornahoz (a/v) tartozik egy ilyen. + egyelore demuxer-enkent 2 ilyen lehet, egy a hanghoz es egy a kephez. + +2.b. demux_packet_t, azaz dp. + ez egy darab chunk-ot (avi) vagy packet-et (asf,mpg) tartalmaz. + memoriaban ezek lancolt listaban vannak, mivel kulonbozo meretuek. + + hogy is muxik ez a beolvasosdi? + - meghivodik a demuxer.c/demux_read_data(), megkapja melyik ds-bol + (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: + - megnezi hogy az adott ds-ben vannak-e bufferelve csomagok (dp-k) + 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. + +Eddig kb tiszta ugy, ezt akarom majd atrakni kulon lib-be. + +na nezzuk tovabb: + +3. mplayer.c - igen, o a fonok :) + 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