From d34041569e71fc9bd772354e94dc9d16061072a5 Mon Sep 17 00:00:00 2001 From: arpi_esp Date: Sat, 24 Feb 2001 20:28:24 +0000 Subject: Initial revision git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2 b3059339-0415-0410-9bf9-f77b7e298cf2 --- DOCS/AUTHORS | 78 +++++++++ DOCS/ChangeLog | 479 ++++++++++++++++++++++++++++++++++++++++++++++++++++ DOCS/ChangeLog.mpeg | 232 +++++++++++++++++++++++++ DOCS/INSTALL | 29 ++++ DOCS/LIRC | 54 ++++++ DOCS/MPlayer-FAQ | 120 +++++++++++++ DOCS/MTRR | 38 +++++ DOCS/OpenDivX | 30 ++++ DOCS/README | 271 +++++++++++++++++++++++++++++ DOCS/SOUNDCARDS | 21 +++ DOCS/SPEED | 40 +++++ DOCS/TODO | 30 ++++ DOCS/inttypes.h | 13 ++ DOCS/mplayer.1 | 190 +++++++++++++++++++++ 14 files changed, 1625 insertions(+) create mode 100644 DOCS/AUTHORS create mode 100644 DOCS/ChangeLog create mode 100644 DOCS/ChangeLog.mpeg create mode 100644 DOCS/INSTALL create mode 100644 DOCS/LIRC create mode 100644 DOCS/MPlayer-FAQ create mode 100644 DOCS/MTRR create mode 100644 DOCS/OpenDivX create mode 100644 DOCS/README create mode 100644 DOCS/SOUNDCARDS create mode 100644 DOCS/SPEED create mode 100644 DOCS/TODO create mode 100644 DOCS/inttypes.h create mode 100644 DOCS/mplayer.1 (limited to 'DOCS') diff --git a/DOCS/AUTHORS b/DOCS/AUTHORS new file mode 100644 index 0000000000..d1ae5a9737 --- /dev/null +++ b/DOCS/AUTHORS @@ -0,0 +1,78 @@ + AUTHORS: + ~~~~~~~~ + +====================== The MPlayer project: =========================== + +Arpád Gereöffy (A'rpi/ESP-team): +- player code (mpeg stream demultiplexer and avi/asf parser, A-V sync, seek...) +- mp3lib, based on mpg123 sources [MP3 audio decoder] +- getch2 [keyboard handler] +- some changes in libmpeg2 code (progressive frames, bitrate & fps support) +- libvo improvements: adding OpenGL support, bugfix in mga driver... +- YUY2 support into mga_vid driver (for DivX/MPEG4) +- YUY2, RGB/BGR 15/16/24/32 support into libvo drivers (for AVI codecs) +- scripts in the TVout directory (allows using TVout on Matrox G400 DH on fb) +- hacking DivX/Mpeg4 VfW codecs to get YUV output +- opendivx decoder speed optimizations (see opendivx/ChangeLog) + +Zoltán Ponekker (Pontscho/Fresh!): +- configure script and Makefiles for easy compile +- GUI system (coming soon!) +- 3DNow! support into mp3lib +- various X11 driver changes (keyboard handling, fullscreen, bpp detect, etc) +- libvo: adding xmga driver (similar to Xv but works under X3.3.x) + +Gábor Lénárt (LGB): +- testing and some improvements in mpeg player's user interface (options) +- ./configure script improvements + +Gabucino: +- web design, docs improvements/updating +- testing, (Open)DivX encoding, picture quality comparsions + +Dariusz Pietrzak: +- mailing lists hosting (see README for details) + +Main testers: + Gabucino + Balazs Tibor (Tibcu) + Sasi Peter (SaPe) + Christoph H. Lampert + +========================== The Codecs: =================================== + +Aaron Holtzman: +- ac3dec (and libac3) author [AC3 audio decoder] +- mga_vid driver [Matrox G200/G400 YUV Back-end Scaler] +- mpeg2dec [Fast MPEG1/MPEG2 video decoder, currently used in player] + +Michel Lespinasse: +- did large libmpeg2 changes for better speed and mpeg conformance + +Eugene Kuznetsov: +- avifile author [AVI player library for linux, using Win32 VfW/ACM codecs] +- technical help about AVI and ASF formats, and how to get YUV using VfW... + +Project Mayo: [http://www.projectmayo.com] +- the OpenDivX codec authors + +Michael Hipp: +- mpg123 author [free mpeg audio player, isn't used directly but in mp3lib] + +Mark Podlipec: +- xanim author [i'm using its aLaw audio decoder] + +Jutta Degener and Carsten Bormann: +- xa_gsm.c authors [MS-GSM audio codec] + +Their code is not used in current player version, but I've got some ideas or +other technical help from: + +John F. McGowan http://www.jmcgowan.com/ +- AVI FAQ author/collector. [site with many useful docs on codecs and avi fmt] + +Dirk Farin: +- dvdview author [MPEG1/MPEG2 video decoder, used in v0.5-v0.8] + +Adam Williams: +- libmpeg3 (and xmovie) author [MPEG1/MPEG2 video decoder, used in v0.1-v0.4] diff --git a/DOCS/ChangeLog b/DOCS/ChangeLog new file mode 100644 index 0000000000..3daeaea322 --- /dev/null +++ b/DOCS/ChangeLog @@ -0,0 +1,479 @@ +ChangeLog: +~~~~~~~~~~ + +v0.12-pre1: [ not yet released ] + - ffmpeg included into source tree + +=========================================================================== +Note: If you've sent patches not applied in pre22, please send them again! +/|\ (I've got tons of mails last weeks, and can't re-read all of them) +/~\ Please include in the Subject: MPLAYER-PATCH +=========================================================================== + +*** 0.11 release is coming SOON!!! *** + +v0.11-pre25: small fixes again :( + - DOCS updated (email address changed from arpi@* -> maillist) + - LIRC fix, mplayer_lirc changed back to mplayer [Andreas Ackermann] + - stream.c: unsigned int fixes, required for some strange .asf files + - asfheader.c: using w=h=b=1 for audio_concealment_none + - VCD-related stuff moved from stream.c to vcd_read.c + +v0.11-pre24: small fixes again :( + - DOCS/LIRC changed: users *must* enable lirc support manually, it is + not autodetected yet. (./configure --enable-lirc) + - the {prefix} bug fixed by Gabucino + - added manpage by Gabucino + - manpage -vo fixes by A'rpi + +v0.11-pre23: lirc support, text updates, mailinglists + - added "-ni" option to force usage of the non-interleaved AVI parser + - DOCS/* updated by Gabucino + - new homepage by Gabucino + - mplayer users & announce mailing lists by Dariusz Pietrzak (see README) + - LIRC support by Andreas Ackermann (see DOCS/LIRC) + enable with ./configure --enable-lirc + TODO: ./configure should detect LIRC installed and better Makefile handling + - added AVI_NINI parser for broken (no index) non-interleaved files + +v0.11-pre22: last fixes, release is coming soon! + - non-interleaved avi EOF bug fixed [thanks to DC-1 for help] + - "You" strings in Makefile after make dep bug fixed... [thx to DC-1] + - SDL disabled by default. You have to ./configure --enable-sdl to enable. + - homepage updated by Gabucino + - homepage updated by A'rpi + - FAQ updated by A'rpi + +fork() -> 0.12pre1 + +v0.11-pre21: mpeg1 pp, stereo fix + - "Skip chunk xxxx" messages moved from -v to -v -v -v debug level... + [thanks to Christoph H. Lampert] + - divx postprocess filter works for mpeg1 files too! (-divxq 1/3/7/31) + - mpeg layer-2 audio fixed - it's stereo again!!! + - audio select() detection: if detected audio buffer size == 0, then + exit with message "recompile mplayer with #undef HAVE_AUDIO_SELECT"... + - syncfb driver added to the source tree, under drivers/ + (it's very similar to mga_vid, but has syncronization to screen and + de-interlace features) + - draw_slice in syncfb finished for G400 cards (plays mpeg 1/2, opendivx) + (de-interlacing has been disabled, because it's buggy now) + +v0.11-pre20: NI-AVI support, small fixes & patches... + - asf parser: flag 0x40 (explicit packet size) implemented [Marvin] + - new option to select DSP device: -dsp (default: /dev/dsp) [Pontscho] + - option -o changed to -vo + - ./configure: applied patches [LGB,Ian Kumlien,Magnus Pfeffer] + - avi chunk_id->ds mapper moved to demux_avi_select_stream() + - added non-interleaved .AVI parser + - added non-interleaved .AVI detection (if a_pos-v_pos distance > 1MB) + +v0.11-pre19: small fixes... + - vo_xmga.c: G200 draw_slice fixed + xmga + mga: common part (draw_frame & draw_slice) moved to mga_common.c + - some independent code (asfinfo.c and GL-test) moved to the new TOOLS subdir + - movinfo.c added to TOOLS (small util to dump .mov file structure) + - AVI & ASF stream id detection changed: now using IDs from the header + (but still can be overriden by -aid or -vid) [Christoph H. Lampert] + - native MS-GSM audio codec ported from avifile source (-afm 6) + [thanks for the testfile to Christoph H. Lampert] + - README updated (input & codec lists) + - implemented .asf audio descrambling [Dirk Vornheder & Einon] + -> that weird_al_yankovic asf is not so weird now :) + - AUTHORS file changed + +v0.11-pre18: patch release :) + - skip broken .asf fragments (for better seeking) + - seeking code cleanup in sources (now it's in a switch(){}) + - opendivx encoding bitrate option changed from -divxq to -br + (for the divx -> divx re-encoding) + - TO DO section moved to file TODO + - applied ./configure and Makefile changes patch from LGB + - libvo function changes by Pontscho: x11 (with -fs), xmga (bugfixed!) + - libvo: driver sources renamed from video_out_*.c -> vo_*.c + - libvo: added uninit() function to drivers + - libvo: fork()'ed X11 eventhandler for x11 and xmga drivers [me & Pontscho] + (gl and xv version is coming soon!) + - libvo: sdl driver now closes SDL at QUIT... + - small english fixes (docs & messages) [Balazs Tibor] + +v0.11-pre17: fixes + - asf "missing video stream" fixed (stream id & 0x7F) [Christoph H. Lampert] + - added GL-test directory, it contains source and compiler script of a + very simple open-gl texture updating (glTexSubImage) test program. + if it runs well, then mplayer -o gl should work too. + it works on G400+Utah-GLX, but segfaults in the G400 driver of X 4.0.2/DRI. + try it with different cards/drivers, and please report me the results. + - benchmarking in gltest.c: calculate fps and process times + - .asf seeking v0.01-pre0.1 :) + +v0.11-pre16: ACM fixed + - Win32/ACM audio codec fixed (most important for asf with divx audio): + There was an output buffer size problem with the Win32/ACM audio codec + at low bitrates (usually used for .asf files with divx audio) + Input and output buffer sizes are now queryed, problem solved :) + - SDL support compiling hint by Michael Durller added to the FAQ + - opendivx support in .asf files [Gérard Lantau] + - ./configure & Makefiles patch by Aaron Hope applied. + (adds --with-win32libdir and fixes --with-x11libdir) + - ./configure fixed, now it defaults to /usr/lib/win32 if detection failed + +v0.11-pre15: asf sync fixed + - asf parser: now supports other than 0x5D segments [Dirk Vornheder] + - new asf PTS reading: sync works now, including fps... + (-fps no longer required!) [thanks again to Eugene Kuznetsov for docs!] + +v0.11-pre14: small fixes, asf sync v0.1 :) + - version number incremented :))) + - libvo / Xv driver swapped Red-Blue fixed + - asf timestamps implemented - now asf A-V should be in sync if you + specify the correct fps at commandline (-fps), +-1 fps allowed... + [i haven't yet found method to get fps out from asf headers :(((] + - some error and consistency checking into demux_asf + if you see many warning! messages playing an .asf file, then contact + me and upload the file (first 1MB is enough if it represents the problem) + Don't forget: there is no public doc about the .asf file format, so + everything we know is suspected and can be wrong... without your help + we never will have working .asf player... + - asf fragment offset checks disabled for grouping... + +v0.11-pre13: libvo changes, mpeg bitrate, vcd fix, asf grouping + - libvo: draw_slice() interface changed, now it has src stride[3] and + destination rect dimension (w,h,x,y) + It's able to blit whole frames, not only 16-pixel slices... + - libmpeg2 and opendivx codec changed to use new draw_slice() + -> opendivx extra 64-pixel width band at right disappeared! + - mpeg bitrate fix: if picture->bitrate==0x3FFFF (means "unspecified" ?) + then using standard VCD bitrate (75*2324 bytes/sec) + -> fixed seeking for those mpegs with "16MBit/s" bitrate... + - drivers/sis_vid: video4linux interface disabled + - broken VCD playing fixed: stream_reset shouldn't seek to 0x0... + [bugreport: Kang Sun] + - asf_parser: grouping implemented! [test file provided by Gabucino :))] + +v0.11-pre12: ./configure fixes, improved odivx-encoding, streaming fixes + - ./configure: using /tmp/main$$.c instead /tmp.main.c, and + remove file after tests [SaPe] + - ./configure: trying the gcc optimize options and fallback to 'pentium' + if fails (useful for people with old gcc and new cpu :)) + - removed -fomit-frame-pointer from OPTFLAGS at config.mak + - version number incremented [Gabucino] + - odivx encoder fix: allow long (longer than xxxx.avi) destination filenames + (sizeof() changed to strlen()...) [Gabucino] + - avi writer - overwrite disabled (exits with error message if destination + file already exists...) [Gabucino] + - use -divxq to set encoding bitrate (in bits (no kbits!) default: 780000) + - no audio decoding if -encode option is used + - audio streaming disabled if -nosound specified (setting audio_id to -2) + - fast Mpeg-ES detection (doesn't read the whole Mpeg-PS file) + - compile-time option to disable using soundcard driver's select() + (requires for some people with buggy/pre-alpha/etc sound driver...) + +v0.11-pre11: streaming fixes, asf support pre, indeo5 fix + - asf/asfinfo.c improved: now it dumps streams to files - need testing! + (it's ready to be converted to asf demuxer and intergated into MPlayer) + - stream.c / stream_reset() fix: now it really seek back to 0 position! + - .asf file format detection added (no .asf reading yet!!!) + - .asf demultiplexer added, changes in demuxer.c to handle fragmented packets + > it plays .asf video well, but still has problems with divx/wma audio. :((( + - indeo 5 playing fixed (removed ICDECOMPRESS_UPDATE from flags) + - xmga resizing problems with some window managers, so default order is + changed xmga,xma... to mga,xmga,... + - found gcc bug: compiling MPlayer with flags + OPTFLAGS=-O -g -march=i686 -mcpu=i686 -pipe -fomit-frame-pointer -ffast-math + cause image sizes negating -> mga_vid kernel driver Oops... :((( + - runaway.bride.sample.avi seeking segfault discovered: AC3 resync fails :( + - improved signal handling: module name is now printed. audio_resync added. + - RGB opendivx encoding implemented, now AVI->opendivx is possible. + +v0.11-pre10: OpenDivX encoding, streaming fixes, avi seek fixes + - new libvo driver: odivx (OpenDivX File Writer) + - AVI file writting support, new option: -encode filename + to encode an mpeg/vob/vcd to opendivx: + mplayer file1.mpg -encode file2.avi -o odivx -nosound + (sound encoding/copy is not yet supported) + - libvo: default driver priority changed to: xmga,mga,syncfb,3dfx,xv,x11,gl + - avi writer: index support + - small fixes in avi writer to be compliant (adjusted chunk/list lengths) + - demuxer.c: stream buffering fixes: + - missing {} in mplayer.c occuring audio reads when has_audio=0 + - reordered packet reader and pack count checks -> no more unwanted EOF + - added 4MB buffer memory usage limit to demuxed streams + - CPU flags in ./configure changed: + k7 -> k6 (current stable gcc doesn't supports k7) + 386,486 -> i386,i486 [Balazs Tibor] + - demux_avi: index check now accepts (raw.len+1)==idx.len [Balazs Tibor] + - FAQ added + + ** Now we are ready with planned features & urgent fixes, ** + ** it's time to final testing and then the 0.11 release!! ** + +v0.11-pre9: OpenDivX fixes,speedup + - solved OpenDivX width problem (stride=width+(Quality?0:64)) + now -divxq 0 works, and 0 is the default + - libvo call moved out from my_convert_yuv() so it can be measured (cpu %) + - IDCT code ported from libmpeg2 -> much faster OpenDivX decoding + +v0.11-pre8: SDL fixes, OpenDivX support + - added -I/usr/X11R6/include to libvo CFLAGS + - (removed later: applied libvo SDL driver fixes by Jeffrey Boser) + - OpenDivX support, initial hack, maybe not work for you... + (I need testfiles, I have just only one) + use -divxq option to adjust quality (1..29 works), 1=default + +v0.11-pre7: SDL support + - ported SDL driver from mpeg2dec/libvo (currect CVS) + (it's slower than internal X11 driver, but supports software scaling!) + - fixed SDL driver to support -fs and pass keyboard events + - SDL driver changed to support YV12 and YUY2 formats instead of IYUV + (now works with DivX files too) + - 'q' (Quit) disabled in SDL fullscreen mode (because it's impossible + to restore screen before exiting so it gets unusable state now) + +v0.11-pre6: audio fix + - fixed video_out_xv.c compiling problems [bugreport: Kalle Mellerup] + - modified audio playing: always keep buffer (both internal and card's) + filled using select() -> -alsa audio delays should be fixed. + - updated DOCS/AUTHORS and DOCS/README + +v0.11-pre5: xmmp audio support, applied Pontscho's libvo patch + - xmmp audio driver support by Arthur Kleer + - new video_out driver by Pontscho: xmga (Matrox G200/G400 only!) + It does same under X 3.3.x what Xv extension does under X 4.0.x! + (you will have a moveable/resizeable window but see an YUV video + overlay in it using color keying) + - added keyboard event support in X11 windows [Pontscho] + (using mplayer_[put|get]_key() in codecctrl.c) + +v0.11-pre4: x11 driver fixes, 15/16bpp support + - version in version.h fixed :))) [Pontscho] + - inttypes.h moved to DOCS/ (copy back to the root if you need it) + - depth calculation in vo_init() changed (Pontscho's version couldn't + make difference between 15 and 16bpp) + - x11 driver now uses vo_init() instead of get_depth() + - yuv2mmx: 15bpp not really supported -> removed from list, now + conversion is done (well) by the C code -> MPEG play in 15bpp works! + - avi playing support added in 15bpp (memcpy) + - avi playing support added in 16bpp (C 15->16 converter by me) + - avi playing support added in 16bpp (MMX 15->16 converter by Strepto) + - libvo/x11: yuv2rgb used MMX code on non-MMX CPUs too!!! fixed... + - all x11 modes tested (and mpeg/24bpp byteorder fixed): + MPEG: AVI/VfW: + 15bpp C convert memcpy + 16bpp MMX/C convert MMX/C convert + 24bpp C convert memcpy + 32bpp MMX/C convert memcpy / C conv. + => now all the movie types are viewable using the -o x11 driver! + +v0.11-pre3: mpeg fixes, fullscreen support + - vertical.mpg serious libvo (x11,gl) segfaults fixed: + yuv2rgb_mmx requires one more lines that vertical image size... + fixed (allocating memory for width*(height+1)). [bugreport: Gabucino] + - Pontscho's fullscreen patch applied! + Using option -fs will maximize window size (for all resizeable drivers + including mga!) and disable window decorations (x11,Xv,gl only) + - simple inttypes.h included for libc5 (and glibc2.0 too?) users + - homepage updates (links changed ftp->http) + +v0.11-pre2: better user messages, mp3 codec selection, demuxer changes + - w32codec.zip restored at the FTP site (somehow it damaged...) + - added version.h, and used its content everywhere + - 'premature end-of-file' problem fixed: freeing audio buffers and + setting d_audio->id=-2 if has_audio==0 [bugreport by Dmitri Pogosyan] + - some more messages added if verbose>=1 + - demuxer.c: error message printed if A or V chunk buffer is full + 'mplayer test.avi -aid -2' still not works without option '-nosound' + - adding new config.h option to set default MP3 audio codec (mpg123/l3codeca) + ./configure selects mp3lib only if you have 3Dnow [idea: Gabucino] + - automatic fallback to mp3lib/mpg123 if l3codeca.acm can't be loaded/inited + +v0.11-pre1: AVI sync fixes + - AVI audio seeking improvements: now using nBlockAlign value to seek + inside the chunk, so divx audio works without big delays!!! + - AVI PTS calculation modified: counting video PTS when skip_video_frames>0 + so new audio PTS values will be correct. Solved many sync probs! + - A-V sync with AVI files fixed! + Now only the Desperado-trailer has 1.0 sec delay after seeking. + - fixed AVI sync in -bps mode too! :) (perfect except that Desperado avi) + +v0.10: The new year release! + - testing + - docs changed + - it's time to release and remove the old buggy 0.09 version... + - release!!! + +v0.10-pre8: libvo/x11 changes + - libvo: x11/xv driver separated to x11 and xv drivers + - libvo: DUMMY_VO_FUNC removed from driver sources + - libvo: default driver order changed, because some users with software-only + opengl though that this 'slow' player can only play at 1-3fps :) + +v0.10-pre7: libmpeg2 interface changes, display size/area changes, AVI fixes + - libmpeg2/decode.c modified: + - removed unused OMS and mpeg2dec stuff + - decode_data rewritten, now works like parse_es.c + => doesn't copy any data -> faster and less memory usage + - mplayer.c sends code 0x1FF after every frame, so libmpeg2 knows + when has to display it + - mplayer.c: in_frame flag fixes, didn't work well with mpeg2 streams + (because there is a 0x1B2 chunk between 0x100 and 0x101) + - 'picture' changed from static to shmem-allocated + -> better picture after codec restart (tested with JapAd.mpg) + -> keep information of the header changes (after init) + - mpeg image size changed, now only the real part of frame is displayed + (no more green strip at the bottom) + - picture struct: new fields: display_picture_width/height + - image buffer allocation (shmem) is done by decode.c instead of libvo + - new option: -xy (resize both x/y direction) + if value<=8 -> x_scale = y_scale = value + else -> x_size=value y_size=aspectratio*x_size + - mplayer.c: video output moved out from avi/mpg init sections and + now it's common code (added movie_size_x/y variables and out_fmt global) + - new keys: + ESC => quit + + and - => adjust audio delay +- 0.1 second + k => kill/restart the mpeg codec process (for testing) + - codec control interface changed: wait for syncword after (re)start + to avoid receiving old frames => it's stable again! + - removed (now unused) allocate/free image buffer code from libvo + - mplayer: new internal variable for video format: has_video + 0 = none (unused yet) + 1 = mpeg 1/2 video + 2 = win32/VfW video codec + - config.h has defaults for bps-based AVI sync and ALSA timer code options: + #undef AVI_SYNC_BPS => now it's disabled by default!!! use -bps to enable + #define ALSA_TIMER => now it's enabled by default!!! use -noalsa to dis. + - help updated + - prints max compressed framesize at exit (both avi & mpeg) + - AVI audio seeking fixed: some ACM codecs (divx audio and ms-adpcm) + can't seek inside a chunk, they are only able to play whole chunks. + Current audio seeking has changed to seek inside the chunk only if the + codec supports it (only internal codecs and ACM/mp3 allows it). + - AVI: audio delay correction if can't seek inside the chunk + +v0.10-pre6: mpeg signal & EOF fixes + - ./configure: k6_mtrr (2.4.test11+) added [Pontscho] + - `term destroys if mplayer (mpg) called from mc.ext` bug fixed: + added sighandler to the 3rd process (mpeg codec) to avoid sig. recursion + - better output at exit (handled now by exit_player()) + - mpeg EOF problem (codec restart) fixed: added EOF detection to parse_es.c + - internal flag 'current_module' added to get more info at segfaults + (contains module number where the segfault occured) + - audio detection changed: using afm=4 (Win32/ACM) for MP3 audio (AVI files) + (you MUST have l3codeca.acm at /usr/lib/win32, or you have to use '-afm 1') + +v0.10-pre5: flipping fixed + - AVI image flipping reworked: + - new flag: avi_header.flipped, TRUE if upside-down + - image flipping code removed/disabled from libvo modules + - duplicate flip_page() calls removed (overload with x11 and mga) + - aLaw audio codec (AVI id 0x06) added (uses code from xanim source) + +v0.10-pre4: test release, small fixes + - video_out driver <-> codec incompatibility message changed + - fixed the config.format bug in drivers/mga_vid_test, so it works again! + [thanks to David Whysong] + - libmpeg2 upgraded + +v0.10-pre3: test release, verbose mode, new docs + - new option: -v = increment verbose level + (debug printf's changed to verbose level-dependent) + - default level: 0, only some informal output + - init debug: 1, some basic debug infos, avi header, function values + - player debug: 2, print avi indexes, chunk inputs, more debug infos + - parser debug: 3, prints everything related to input parsers + to increment verbose level, use multiple -v options (-v -v -v for level-3) + - bitrate calculation for AVI files + - README rewritten, added Troubleshooting and Bugreports sections + - TVout directory added (only the scripts) + +v0.10-pre2: bugfix test release, bps-sync enabled + - avi: supporting both 0-based and movi-based index types (autodetect) + - avi: tested with VBR audio: plays well with -mc 0 option, seek doesn't + work yet [thanks to Alan Chen for testfile] + - avi: A-V sync to avg. byte/sec implemented (again) and enabled by default + (disable with -nobps if you want) + - ./configire: 3rd name ('kni') of the P3 added. Where is the compatibility? + - useless '\' removed from libac3/Makefile [Otvos Ferenc] + +v0.10-pre1: test release, players merged!!! + - avip and mpegp has been merged to a single binary called 'mplayer' + - file type detection (AVI/MPEG-PS/MPEG-ES/Other) + - no redundant code (common code for common jobs) + - big format-dependent codes moved to functions (separated files) + - better error messages, removed some debug stuff, code cleanups + - old libmpeg2 version removed from source tree + - help texts merged (help_avi+help_mpg -> help_mp) + - new options: -x -y = scale image (if selected driver supports) + if value<=8 then image size will be multiplied by value, otherwise + image size will be scaled to pixels. + For example: + 2x ZOOM: mplayer -x 2 -y 2 test.mpg + 800x600: mplayer -x 800 -y 600 test.mpg + [default values are still configurable at compile-time, see config.h] + - TV project (not finished) codebase added (see tvision.c, or: make tvision) + +v0.09: Beta release [same as 0.09-pre3] + - version changed in the files + - docs updated + +v0.09-pre3: bugfix test-release, X11 support testing + - fixed the if [ -z $pparam ] bug in ./configure [Christian Birchinger] + - many changes in AVI seek code, resulting near-perfect seeking now! + current method calc absolute audio position, so with VBR audio it + doesn't work yet... + - avip: Xv support (YUY2 image format) + - avip: X11 support (24 & 32 bpp only, BGR format) + I need a very fast 15->16bpp converter for 16bpp support... anyone helps? + +v0.09-pre2: bugfix test-release + - removed unnecessary code from libmpeg2/header.c + Walken told me that standard mpg/vob streams must NOT use framerate + and bitrate extension... and the ext. id check is done by the caller. + - CRC support to mp3lib's mpeg audio layer-2 decoder + thanks for bugreport & testfile to Samson + +v0.09-pre1: bugfix test-release + - imported new libmpeg2 files (under testing...) + - GL renderer flickering bug fixed (MMX missing emms() between yuv2rgb and + glTexSubImage(), bug triggered by new Utah-GLX code) + [thanks for Christian Birchinger] + +v0.08: Index support, avi seeking, DLL loader fix, compilation fixes + - Added support for chunk index usage (disable with -noidx option) + - Removed code optimization flags from loader/Makefile because + it segfaults if compile optimized code (it does some hacks with + pointers, maybe the reordered code confuses it) + - added new tool called aviparse (read and check avi file structure) + - indexed and raw chunk info comparing, bad chunks dropped + - termcap usage is optional (for those debian users without termcap) + - #if HAVE_* fixed (to #ifdef HAVE_*) + - ./configure supports new /proc/cpuinfo (2.4.0-test11) + - sse is called 'sse' again + - 'flags' field renamed to 'features' + - Xv benchmark results added to DOCS/SPEED + - avi seeking (and other goodies, pause etc) implemented + no PTS resync after seek yet. + - default video_out driver changed from 'mga' to the first available driver + new driver priority: mga_vid, opengl, x11 + +v0.07: Easier compile + - Added Pontscho's ./configure script (it's modified a lot) + - Updated makefiles, and tested a lot :) + - Updated DOCS/INSTALL + +v0.06: Better codec selection + - avi audio&video codec selection moved to new codecs.c file, + loader/driver.c and loader/afl.c modified for this + - yuv support fixed, codecs.c setup flags to handle yuv properly + yuv works fine with divx, mpeg4, cvid, and upside-down iv50 + - DOCS/INSTALL updated + - DOCS/SPEED updated, DivX benchmarks added + +v0.05: Merged with MPEGplayer 0.90pre6, first public release of AVI player + - code merged with mpegplayer, new Makefile, some small modifications + - docs updated and moved to DOCS + +v0.04: YUV support, some code cleanup, preview-release + +v0.01: first version based on new MPEGplayer's codebase. diff --git a/DOCS/ChangeLog.mpeg b/DOCS/ChangeLog.mpeg new file mode 100644 index 0000000000..265a57c16b --- /dev/null +++ b/DOCS/ChangeLog.mpeg @@ -0,0 +1,232 @@ +ChangeLog: +~~~~~~~~~~ +v0.2: [first public release] +- parser: add support for VOB files (audio format still has problems...) +- libmpeg3: improvements in file-type detector, supporting mpegs with RIFF hdr +- libmpeg3: improvements on mpeg3_read_program() to handle damaged files better +- libmpeg3: new functions for separated PTS access: mpeg3_audio_pts() and + mpeg3_video_pts(), they return timestamp in seconds, format: double +- play: new audio-video sync method, using timestamps from streams. + much better, even on very damaged files! +- play: measuring of audio buffer size instead constant hard-wired value +- libmpeg3: more improvements to handle better strange files... +- play: drop timestamp correction if > 2 seconds (good for concatenated files) + +v0.3: +- much better audio-video sync, using limited timestamp correction +- TVout directory added, with tools & scripts to setup TVout on Matrox cards + (it is able to play mpegs fullscreen on TV without using X) + +v0.5: +- integrating dvdview for video decoding + (still using libmpeg3 for system stream parsing and audio decoding) + -> not works... some variable randomly changes (uninitialized pointers + in dvdview??? c++/c mixing problem?) + +v0.6: +- new player from scratch, using my mp3lib for audio, parser.c for demuxing. + integrated dvdview is still buggy... + +v0.7: [second edition] +- dvdview as separated process, using FIFOs for communication. +- some fixes in dvdview/system/sysdec1.cc, improved re-syncing on reset +- double-buffering support into dvdview's mga_vid class (and some + changes in the mga_vid kernel module too!) +- EOF problem solved +- background playing option (using MGA Color-Keying and xsetroot) +- rebuild README, added Standard Disclaimer section + +v0.71: +- better missing-stream detection (counting only the real packets) +- check for file and missing streams before fork() +- fixed ugly byteorder bug when reading header dword +- new system stream sync method (doesn't requires SYSTEM_HEADER_START_CODE) +- seeking (byte or second pos), works *only* with streams with immediate + SYSTEM_HEADER frames. + +v0.8: [seeking works] +- implementing own video packet reader -> disabling the whole streaming part + of dvdview. +- saving system headers, and re-sent after starting dvdview (seeking/resync) + -> allow seeking in single-header mpeg files (contact2.mpg) +- advanced resync and seek_sec method, using video-packet type-checks +- fix read() problem, when not enough bytes available in fifo (see man 2 read) +- removed unused objects (postproc,options,streaming) from dvdview's Makefile + (smaller executable, faster compile) +- sec. and bytepos seek fixed, works well now. +- simple console gui, using my getch2 (from mailer3 source) for keyboard. + allows seek,pause,quit functions (for testing only) + it's time to begin develop some nice GUI with skins, plugins etc :) +- improved runtime seeking, added force_redraw variable, and PTS audio + correction after every seek. + +v0.81: +- fps fixed (other than 25fps supported again) +- EOF handling fixed again +- nosound support (currently only system streams supported, not video-only) + also see -nosound commandline option +- mga_vid: changed mmap() to allow double buffering in 704x528 +- mga_vid: double buffering is optional from now (dvdview option -db ) +* it successfully plays .VOB files (without sound) +- PTS/DTS support in mpeg-2 system streams (.vob files) +- PCM audio (48kHz stereo, unsigned, swapped byteorder) playing implemented +* it "plays" .VOB files with PCM sound, but it's too sloooooow :((( +- some optimization of dvdview's bitstream handler (see FillBits & GetBitsFast) + +v0.82: [VOB support] +- updated dvdview from current CVS version (1.2.0-pre) -> about 25% faster!!! +* it's now fast enough for VOB playback +- AC3 audio support (using Aaron Holtzman's libac3 from ac3dec package) +- new, simpler Makefile for libac3 +- re-organized text files (README splitted to ChangeLog and AUTHORS) + +v0.83: [ALSA support] +- some timing code to fix audio syncing with ALSA drivers (test it! I can't) + use -alsa cmdline option to enable this experimental code! +- cmdline option (-abs) for overriding audio buffer size (default: measured) + why is it needed? some audio drivers has bad implementaion of select(), + so measuring buffer size gives false result. + if you hear sound before picture window appears, then you should use this! + +v0.84: +- multiple DVD audio channels/streams support (use -aid option to select chn.) +- cmdline option for maximum PTS time correction (-mc ) +- PTS sync code moved to frame display loop -> more precise timing + now it sync audio after every 5 decoded frames +- cmdline option for override frame rate (-fps ) + some .VOB files has bad frame rate value in headers (why? any ideas?) +- ac3 audio seeking works (some hack in libac3's parse.c) + +v0.85: [first non-experimental release] +- directory structure changed +- better documentation, added new INSTALL +- every Makefile uses OPTFLAGS environment variable, see INSTALL +- help (run mpg12play without any parameters or with -h/--help) +- fixed byte seeking (-sb) +- allow selecting mpeg audio channel, see -aid (streams 0x1C0-1DF) +- allow selecting video channel, see -vid (0x1E0-1EF) +- allow audio format override, see -afm +- new streaming system (with 4k buffering) +- initial VCD (Video CD) support, use -vcd to select track, and give + device name as filename (e.g.: mpg12play -vcd 2 /dev/cdrom) + Problems with dual streaming, it's very slow! reads every sectors twice... +- VCD cache system... -> solved dual (A+V) streaming slowdown + +v0.86: [cleanup] +- last_frame_* thing removed + control fifo read() fixed -> better and + linear (no seek-back) resync if dvdview dies +- better nosound timing (uses -alsa timer), seeking works +- resync_to_pts eliminated (using new max_pts_correction) +- cleanups, error checks, small fixes in the whole player.c +- removed some unused old code +- exit code moved to exit_player(), removed redundancy, fixed kill order + +v0.87: +- i've found the reason of bad fps value with some vob files... + the fps is correct, but the dvdview doesn't decode all the frames + (reads repeat_first_field flag but don't rely on it) +- new demuxer code: read & demux input stream only at once, and uses two + memory FIFO-s for packages. also new reader code, everyting named ds_*() + The new demuxer can autodetect video and audio stream ids, if not + specified with -aid / -vid option, and better implementation of -afm +- vcd cache is optional (and disabled by default), because unneccesary with + new demux/streaming code + +v0.90pre: +- new codec added: mpeg2dec by Aaron Holtzman + after doing some fixes (see at bottom), it's able to play mpeg1/mpeg2 video +- FIFO API changed: after frame_complete command (0x0) the codec must + send the fps*10000 and the length*100 value. length is 1.00 for a simple + frame, and >=1 for mpeg2 fields (eliminates the fps problem) + Now, using mpeg2dec we are able to play .vob files with correct fps timing! +- better AC3 resync after seek (new func. in libac3: ac3_bitstream_reset()) + using ac3_decode_frame() instead ds_fill_buffer() when syncing PTS + +v0.90pre2: +- mpeg2dec integrated into player binary +- using pipe() instead of named pipes +- using shared memory (mmap(...MAP_ANON...)) for packet transfer to codec +- stream_select() thing removed +- some optimization in demuxer code +- measuring codec CPU usage (relative to video time!!!, so it can be >100% + on a slow system) This value must be <=100% for continous video playback. + +v0.90pre3: +- ugly bug fixed causing packet loss at codec restarting + (i wrote control_fifo instead of control_fifo2 into codec controller) +- video init part moved to the player +- using shared memory for image buffers to avoid green flashes when + codec restarted... +- new shared memory allocation code (the mmap() thing worked only with + kernel 2.4.x). thanx to LGB for the info and help... see linux/shmem.[ch] +- config.h moved, Makefiles changed a bit (added libvo path, thanx to LGB) + you may select CPU extensions (3Dnow/MMX/SSE) *only* at config.h +- meaningfull error messages if video stream cannot be synced + (many user asked about "missing video stream" error...) + +v0.90pre4: +- included new mpeg2dec source (with SSE idct code) + +v0.90pre5: +- libvo: OpenGL video renderer code by me +- included new mpeg2dec and ac3dec from today CVS snapshot +- new docs: SPEED and MTRR +- seq. head processing and video init code moved into player.c, just + before fork()'ing, so the child inherits all this info! +- removed all sequenceheader[] code, it's unneeded now +- source cleanup, removed some debug printf()'s, old comments +- EOF problem seems to be solved (maybe at the cleanup???) +- implemented bitrate (and free framerate) reading into mpeg2dec/header.c +- seeking skip times are better, based on bitrate + + +Changed in libac3 source: +~~~~~~~~~~~~~~~~~~~~~~~~~ +- ac3.h replaced with the old version from v0.6.0 +- decode.c modified to fit my interface +- stats.h: use stats_* functions only if DEBUG defined + +Changed in libmpeg2 source: +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- header.c: implemented repeat_first_field thing (see picture.repeat_count) +- HACK_MODE set to 1 (default is 0, which works only with mpeg2 streams) +- decode.c: some changes added, active only if MPG12PLAY #defined +- header.c: implemented bitrate (and free framerate) reading + +Changed in libvo source: +~~~~~~~~~~~~~~~~~~~~~~~~ +- fixed bug in mga_vid vo module: used dest_width/height instead src_* + (dst is important only for the card, we need (for memory, etc) the src size!) +- added OpenGL video renderer (based on x11 rendere and Pontscho's opengl code) + +Changed in DVDview source: +~~~~~~~~~~~~~~~~~~~~~~~~~~ +main.cc: replaced with my code +Makefile: removed unneccesary objects, added optimization flags +output/out_mgavid.cc & .hh: added double-buffering and color-keying support +system/userpack.cc & .hh: new code, by me (interface to my packet reader) +video12/vdecoder.hh: added GetSeqHeader() function (for accessing FPS value) +video12/vdecoder.cc: commented out calls to PrintDataBin() (debug info only) + +TODO: +~~~~~ +- multiple video packets (whole frame) transfer to codec - DONE +- B-frame skipping (DVD for slow systems) +- VCD support - DONE +- DVD Audio downsampling (for 44kHz cards) +- SEEKing in VOB files with AC3 sound (some hack needed in libac3) - DONE +- own AC3 frame reader -> better resync after seek - DONE +- player source is really ugly now... it's time to some cleanup - DONE? +- seek/resync without immediate SYSTEM_HEADER frames. - DONE +- end of file detecion !!! - DONE - NOT done (see matrix.vob!) - DONE +- other than 25fps movies - DONE +- test with mono sound - DONE (currently playing as stereo) +- nosound (no audio card or no audio stream) - DONE +- .vob support (non-crypted DVD/mpeg2 stream) - DONE +- AC3 and PCM audio support - DONE +- audio-only and video-only file support +- nice GUI (something new written in gtk or modify xmovie's gui) +- Xv support - DONE (libvo has it) +- easier compile, maybe new ./configure and makefiles - DONE? +- decss support (encrypted dvd) +- test speed with pgcc (does it worth?) diff --git a/DOCS/INSTALL b/DOCS/INSTALL new file mode 100644 index 0000000000..c81b5abda3 --- /dev/null +++ b/DOCS/INSTALL @@ -0,0 +1,29 @@ + ======================================================================= + * HOW TO COMPILE MOVIE PLAYER COMPONENTS * (C) 2000. A'rpi/ESP-team * + ======================================================================= + +Pontscho/Fresh! did some script and makefiles so compiling is much +easier now. If you find a bug in that, please contact us: + pontscho@makacs.poliod.hu + arpi@esp-team.scene.hu + +1. The Player: (mplayer) +~~~~~~~~~~~~~~ + ./configure +[* check config.h and config.mak files! *] + make dep + make + make install + +2. Drivers: (mga_vid.o) +~~~~~~~~~~~~~~~~~~~~~~~ + cd drivers + make + mknod /dev/mga_vid c 178 0 + chmod go+rw /dev/mga_vid + +3. Matrox G400 DH TV-out tools: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + cd TVout + ./compile.sh + diff --git a/DOCS/LIRC b/DOCS/LIRC new file mode 100644 index 0000000000..831ede3c66 --- /dev/null +++ b/DOCS/LIRC @@ -0,0 +1,54 @@ + +LIRC support for MPlayer + written by Andreas Ackermann in 2/2001 + contact: acki@acki-netz.de + +o What is LIRC? + + Linux Infrared Remote Control - use an easy to build home-brewn IR-receiver, + an (almost) arbitrary remote control and control your linux box with it! + More about it at www.lirc.org. + +o MPlayer and LIRC + + If you have installed the lirc-package, you can compile MPlayer with LIRC + support using ./configure --enable-lirc + You should do 'make distclean' before re-compile with 'make dep;make' + + If everything went fine, MPlayer will print a message like + LIRC init was successful. + on startup. If an error occurs it will tell you. If it doens't tell you + anything about LIRC there's no support compiled in. That's it :-) + + The application name for MPlayer is - oh wonder - mplayer. + It understands the following commands: + + PAUSE - pause playing. Any other keystroke will continue replay. + QUIT - exit mplayer + RWND - 10 secs back + FRWND - 60 secs back + FWD - skip 10 secs + FFWD - skip 60 secs + + Don't forget to enable the repeat flag for RWND/FWD in .lircrc. Here's an + excerpt from my .lircrc: + + begin + remote = CU-SX070 + prog = mplayer + button = Tape_Play + repeat = 1 + config = FFWD + end + + begin + remote = CU-SX070 + prog = mplayer + button = Tape_Stop + config = QUIT + end + + Enjoy + + -Andreas + diff --git a/DOCS/MPlayer-FAQ b/DOCS/MPlayer-FAQ new file mode 100644 index 0000000000..40d3ae414d --- /dev/null +++ b/DOCS/MPlayer-FAQ @@ -0,0 +1,120 @@ +Yes, this is the MPlayer FAQ. +============================= + +About: +~~~~~~ +Many people asked same questions so I decided to write this stuff. +I know that people will never read this but at least i try to +pull down number of these mails. +And from now i can say that "read the fuckin' FAQ!" :-) + +Let's ask! +~~~~~~~~~~ +Q: SDL output doesn't work or compile. Problem is .... +A: It works only with SDL v1.1.7 (and maybe newer) + It does NOT work with 1.1.6, 1.1.5 1.1.4 1.1.3 1.0.4 etc, don't ask. + +Q: I am still having trouble compiling with SDL support. gcc says something + about "undefined reference to `SDL_EnableKeyRepeat'" What's now? +A: Where did you install the SDL library? If you installed in /usr/local + (the default) then edit the top level config.mak and add + "-L/usr/local/lib " after "X_LIBS=" Now type make. You're done! + +Q: I have problem ... with the SDL driver. +A: It's very experimental & buggy code, and it's UNSUPPORTED by us. + Please do NOT report bugs or ask features relating to SDL. + But you can improve it, and send us patches! + +Q: It doesn't compile, and it misses uint64_t inttypes.h and similar things... +A: copy DOCS/inttypes.h to MPlayer directory (cp DOCS/inttypes.h .) + try again... if fail, contact me + +Q: I have Pentium III but ./configure doesn't detect SSE +A: Only kernel versions 2.4.x supports SSE + +Q: fullscreen option (-fs) and/or -xy doesn't work with x11 driver (-vo x11) +A: x11 driver doesn't support scaling, and it can't change screen resolution. + Yes, I know that it should be but I have no time to write software + scaling routines and experiencing with XVidMode extension... + You can do it yourself, just press ALT,CTRL,- or ALT,CTRL,+ simultaneously, + see X-server docs for details. + +Q: audio goes out of sync playing .avi file +A: try with -bps or -nobps option + if still bad, send me (upload to ftp) that file, I'll check. + +Q: what is the meaning of numbers in the status line? +A: see: + A: 2.1 V: 2.2 A-V: -0.167 ct: 0.042 57 41% 0% 2.6% 0 + - A: audio position in seconds + - V: video position in seconds + - A-V: audio-video difference in seconds (delay) + - ct: total A-V sync correction done + - frames played (counting from last seek) + - video codec cpu usage in percent (for mpeg it includes video_out too!) + - video_out cpu usage for avi, 0 for mpg (see above) + - audio codec cpu usage in percent + - dropped bad frames (mpg only) + Most of them are for debug purposes, and will be removed soon. + +Q: Why is video_out cpu usage zero (0%) for mpeg files? +A: It's not zero, but it's built in into codec, so can't be measured separated. + You should try to play the file using -vo null and then -vo ... and check + the difference to see video_out speed... + +Q: OpenGL (-vo gl) output doesn't work (hangup/black window/X11 errors) +A: your opengl driver doesn't support dynamic texture chanegs (glTexSubImage) + it's known not to work with X 4.0.x DRI drivers and nVidia's binary shit. + it's known to work with Utah-GLX and Matrox G400 card. + it will not work with 3DFX cards because the 256x256 texture size limit. + +Q: I have g200/g400, how to compile/use mga_vid driver? +A: read INSTALL and README... + +Q: What's XMMP? (it's XMMS or XMPS but mispelled?) +A: It's a new project, see www.frozenproductions.com for details + +Q: There are error messages about file not found /usr/lib/win32/.... +A: Download & install w32codec.zip from *our* FTP + (avifile's codec package has different DLL set) + +Q: It wants to load l3codeca.acm, but I don't have such file. +A: You should use w32codec.zip from MPlayer FTP, instead of avifile's pack! + +Q: ...... works with avifile/aviplay while doesn't with MPlayer +A: MPlayer != avifile + The only common thing between these players is the Win32 DLL loader. + The codecs (dll) sets, syncronization, demultiplexing etc is totaly + different and shouldn't be compared. + If something works with aviplay it doesn't mean that MPlayer should do + it and vice versa. You should contact me, I'll fix the bug!!! + +Q: Indeo 3.x/4.x movies are viewed upside-down!!!? +A: It's a known bug (really it's a bug/limitation of the DLL codec) + +Q: Indeo 3.x,4.x video doesn't work at 32bpp resolutions (16,24 bpp are ok) +A: It's a known bug (really it's a bug/limitation of the DLL codec) + +Q: I've got 'MPlayer interrupted by signal 11' in module audio_setup or + decode_audio. +A: It's a damaged file with bad mp3 audio stream. Try it with -afm 4 + +Q: It aborts with signal 11 playing a file with IMA-ADPCM audio. +A: This codec isn't yet supported! + +Q: Why do you enjoy making that much pre-releases? +A: Download one and you'll know! + +Q: Are there rpm/deb/... packages of MPlayer? +A: Not yet. + +Q: Are there any mailing lists on MPlayer? +A: Yes! See README on how to subscribe them! + +Q: I've found a nasty bug when I tried to play my favourite video!! + Who should I inform? +A: Inform the MPlayer-users mailing list about your problem. *ALWAYS* + read the README about what information we NEED to identify your problem. + Use the developers addresses (specified in AUTHORS) only if you want to + flame, or want to ask for a date. ;) + diff --git a/DOCS/MTRR b/DOCS/MTRR new file mode 100644 index 0000000000..2a4d383462 --- /dev/null +++ b/DOCS/MTRR @@ -0,0 +1,38 @@ +Setting up MTRR for X11 or mga_vid: +=================================== + +1. find the base address +~~~~~~~~~~~~~~~~~~~~~~~~ +You have 3 cases to find it: + +- from X11 startup messages, for example: +(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000 +(--) SVGA: Linear framebuffer at 0xD8000000 + +- from /proc/pci (use lspci -v command): +01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525 + Memory at d8000000 (32-bit, prefetchable) + +- from mga_vid kernel driver messages (use dmesg): +mga_mem_base = d8000000 + +2. find memory size +~~~~~~~~~~~~~~~~~~~ +This is much easier, just convert video ram size to hexadecimal, or +use this table: + 1 MB 0x100000 + 2 MB 0x200000 + 4 MB 0x400000 + 8 MB 0x800000 + 16 MB 0x1000000 + 32 MB 0x2000000 + +3. setting up mtrr +~~~~~~~~~~~~~~~~~~ +You know base address and memory size, let's setup mtrr registers! + + For example, for the matrox card above (base=0xd8000000) with 32MB + ram (size=0x2000000) just execute: +echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr + +(older K6-2's [around 266Mhz, stepping 0] may not support MTRR.) diff --git a/DOCS/OpenDivX b/DOCS/OpenDivX new file mode 100644 index 0000000000..e7494b80a0 --- /dev/null +++ b/DOCS/OpenDivX @@ -0,0 +1,30 @@ + +OpenDivX support in MPlayer +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +See http://www.projectmayo.com for details on Open DivX codecs. +It's an opensource DivX-like video codec written for windows. +I did a fast hack to get it compile under linux (it has some +dependency on windows header files and some visualc extensions). + +Decoder: +~~~~~~~~ +Now it's used for AVI files with fourcc 'dvx1' +You can adjust Quality level using the -divxq option. Valid values: + + postprcc_level = 0 ----> no post processing (fastest) + postproc_level = 1 ~ 9 ----> horizontal Y deblocking only + postproc_level = 10 ~ 19 ----> hor. + ver. Y deblocking + postproc_level = 20 ~ 29 ----> hor. + ver. Y and hor. C deblocking + postproc_level = 30 ~ 39 ----> hor. + ver. Y and hor.+ver. C deblocking + postproc_level = 40 ~ 49 ----> h+v Y, h+v C deblock and Y deringing + postproc_level = 50 ~ 59 ----> h+v Y, h+v C deblock and Y+C deringing + +Note: last level (Chroma deringing) sometimes crashes. + +Encoder: +~~~~~~~~ +There is a very alpha hack to convert mpeg video into OpenDivX .avi files. +You should disable audio, and select 'odivx' video device as output: + mplayer input.mpg -nosound -vo odivx -encode output.avi +Yes, I know that it's unusable now, it's only for testing purposes. diff --git a/DOCS/README b/DOCS/README new file mode 100644 index 0000000000..cfc9671cd6 --- /dev/null +++ b/DOCS/README @@ -0,0 +1,271 @@ +MoviePlayer v0.11 (C) 2000-2001. by Arpad Gereoffy (A'rpi/ESP-team) +================= * See the file AUTHORS for the complete list! * + +About: +~~~~~~ +Yes. Yet another movie player for linux. +What is the special with this? It works, at least for me :) +I've tried lots of players under linux (mtv,xmps,dvdview,livid/oms,VideoLAN, +xine,xanim,avifile,xmmp) but they all have some problem. Mostly with +special files or with audio/video sync. Most of them is unable to play +both mpeg1, mpeg2 and avi (DivX) files. Many players have image quality +or speed problems too. So I've decided to write/modify one... + +Short history: +- mpg12play v0.1 has born, using libmpeg3 from www.heroinewarrior.com +- mpg12play 2nd generation (v0.5-), using dvdview by Dirk Farin +- mpg12play 3nd generation (v0.9-), using libmpeg2 (mpeg2dec) by Aaron Holtzman +- mplayer has born, containing mpg12play 0.90pre5 and a new simple avi player +- mplayer 0.10, mpeg and avi player in a single binary +- mplayer 0.11: added .asf file support, and OpenDivX en/decoding + +As you see, I didn't write any codecs, just some players. But I spent +a lot of time finding the best way to parse bad damaged input files +(both mpg and avi) and to do perfect A-V sync with seeking ability. +My player is rock solid playing damaged mpeg files (useful for some VCDs), +and it plays bad AVI files which are unplayable with the famous +windows media player. Even AVI files without index chunk are playable! +As you see, stability and quality are the most important things for me, +speed has lower priority, but is still very important. + +What about the GUI? +I'm not a GUI programmer. I hate GUIs, I like the pure black 80x25 console. +So the player has only keyboard control from the controlling console/xterm now. +But there is a GUI development for the player, coordinated by Pontscho/Fresh! +It's still under development, but it will be merged and released soon. +BTW he needs some nice skins, if you are a good graphician, contact him!!! + +Win32 codecs? +Yes, we are using Win32 (Video for Windows) codecs for AVI/ASF decoding. +They must be installed to the /usr/lib/win32/ directory, with all lower case. +You can grab the codecs package from + ftp://thot.banki.hu/esp-team/linux/MPlayer/w32codec.zip +or can be found in your C:\WINDOWS\SYSTEM\ dir, see codecs.c for filenames. +Some people asked why don't we use ActiveMovie/DirectShow codecs. The reason is +simple: we'd have to emulate the whole DirectX architecture and implement the +(patented!) COM interface to be able to use them. BTW the old VfW DivX codec +is faster than the new .AX version, but it has no quality/CPU setting +option (this is an improper name, since it doesn't affect the decoder. If +it's set to 1 or higher, it applies a filter which decreases blockiness and +eats away CPU cycles). + +Supported input formats: +~~~~~~~~~~~~~~~~~~~~~~~~ +- VCD (Video CD) directly from CD-ROM or from CDRwin's .bin image file +- MPEG 1/2 System Stream (PS/VOB) and Elementary Stream (ES) file formats +- RIFF AVI file format +- ASF 1.0 file format + +Supported audio codecs: +~~~~~~~~~~~~~~~~~~~~~~~ +- PCM (uncompressed) audio (8/16 bit, mono/stereo) +- MPEG layer 2/3 audio (using mp3lib, based on mpg123) +- AC3 audio (using ac3dec/libac3) +- Win32 ACM audio codecs (the *.ACM files) [Only in the AVI player] + tested with: DivX audio, MS-ADPCM +- aLaw audio (using code from xanim) +- MS-GSM audio (using modified xa_gsm.c from avifile) + +Supported video codecs: +~~~~~~~~~~~~~~~~~~~~~~~ +- MPEG 1 and MPEG 2 video decoder (using mpeg2dec/libmpeg2, supports + 3DNow! and MMX) +- Win32 ICM (VfW) video codecs (for example DivX using DIVXC32.DLL) +- OpenDivX encore & decore (see ProjectMayo) + +Supported video output devices: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- mga: Matrox G200/G400 hardware YUV overlay via the mga_vid device + (Some people reported that G200 is broken :( if you are a programmer + and you have a G200, please check it and fix if you can!) +- xmga: Matrox G200/G400 overlay (mga_vid) in X11 window + (Xv emulation on X 3.3.x !) +- x11: X11 optionally with SHM extension +- xv: X11 using overlays with the Xvideo extension (hardware YUV & scaling) +- gl: OpenGL renderer, requires Utah-GLX or DRI or nVidia's new driver +- syncfb: Matrox G400 YUV support on framebuffer (not tested, maybe broken) +- 3dfx: Voodoo2/3 hardware YUV (/dev/3dfx) support (not yet tested, maybe broken) +- sdl: SDL v1.1.7 driver (slower than 'x11', but supports software scaling) +- null: Null output (for speed tests/benchmarking) +- pgm: PGM file output (for testing purposes) +- md5: MD5sum output (for mpeg conformance tests) +NOTE: not all are available for AVI files + +Supported audio output devices: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- OSS driver +- ALSA driver with OSS emulation +- ESD with the esddsp utility + +Speed: +~~~~~~ +Most of time-critical parts are optimized for MMX/SSE/3DNow!. +You can improve rendering speed by setting up MTRR registers, see doc in MTRR. +Some benchmark results can be found in the doc file SPEED. + +Usage: +~~~~~~ + mplayer [options] [-vo driver] [path/]filename + + Options: + see mplayer -h for options + see mplayer -vo help for available output drivers + + Keys: + <- or -> seek backward/forward 10 seconds + up or down seek backward/forward 1 minute + p or SPACE pause movie (press any key to continue) + q or ^C stop playing and quit program + + Examples: + mplayer -vo x11 /mnt/Films/Contact/contact2.mpg + mplayer -afm 3 /mnt/DVDtrailers/alien4.vob + mplayer -vcd 2 /dev/cdrom + mplayer -alsa -abs 65536 -delay -0.4 -nobps ~/movies/test.avi + + Note: for using Matrox YUV driver (-vo mga or xmga), you have to first + load the driver: insmod drivers/mga_vid.o + +License: +~~~~~~~~ +Since MPlayer incorporates a lot of code from other projects, this isn't +decided yet. +We're going for GPL (will be pretty hard, though). + +TV output: +~~~~~~~~~~ +If you have a Matrox G400 Dual-Head card, you can watch movies on TV, +using TV-out feature of the second head. You must have matroxfb support +enabled in your kernel (2.4.x kernels). You don't need X11 for this! +Tested only with PAL TV! + + cd TVout + ./modules + ./cloning or ./independ + ./TV-704x528 (or another TV* script) + +Sending bugreports: +~~~~~~~~~~~~~~~~~~~ +First please read all the docs in this package, most of the problems are +described somewhere. At least read the Troubleshooting section! +We don't like answering questions which are already answered in this +readme or other docs. +You should try the latest test (pre) release version too, maybe your bug +is already fixed, but the new version hasn't been released. +If you couldn't solve the problem, then send a quality bugreport +via E-Mail to the MPlayer-users list : mplayer@alan.umcs.lublin.pl + +*NEVER* send attached AVIs, MPEGs, or any big files to this list!!! +Upload them to ftp://thot.banki.hu/incoming , and inform the list about +your upload. + +Please include these: +- your kernel version number ('uname -a') +- linux distribution and glibc version (example: Slackware 7.1 + glibc 2.1.3) +- gcc and binutils version ('gcc -v' and 'as --version') +- your X11 version (example: X 4.0.2 + DRI snapshot2001jan12) +- video card vendor/model (example: Matrox G400 MAX AGP) +- CPU vendor and type (example: Intel Celeron2-566 at 850MHz) + +Also include the required logs (as attachment, may be compressed zip/gz/bz2) +depending the problem type (see bellow at Troubleshooting section). + +To log output to a file, use the &> shell operator. For example: + ./configure &>configure.log + mplayer -v test.avi &>play.log + +If we ask you for the file, then you have two choices: +- upload the file to ftp://thot.banki.hu/incoming (at least a few megabytes) +- send the exact URL of the file, and we'll download it soon. + +Please do not ask for features already listed in the TODO! + +Troubleshooting: +~~~~~~~~~~~~~~~~ +1. Please read the docs first... + +2. If you have compiling problems: + - if you are an experienced programmer, please try to fix it, and send + us the patch + - if gcc reports problems around inttypes.h, try to copy DOCS/inttypes.h + to the directory where the error occured. (or upgrade glibc to 2.1/newer) + - if gcc reports problems around video_out_gl.c, try disabling OpenGL + support: ./configure --disable-gl (you have broken OpenGL headers/libs) + - if you are a user, send us a bugreport (see above), including these: + - output of ./configure + - output of make dep and make + - config.h and all of config.mak files + Note: many users reported that SSE was not detected while running on P3. + Current stable 2.2.x kernels does NOT support SSE, so you can't use it + without patches or using the 2.4.x series. + +3. If you have a problem with the player, please run it with -v option, and + send the output of it, with a detailed description of the problem. + - can't play AVI files: check that codec .DLL and .ACM files are installed to + /usr/lib/win32/ and are all lowercase (divxc32.dll instead of DivXc32.DLL) + +4. If you have a file-specific problem (can't play a special file, + crashes with it or similar) then please run with -v -v -v (debug level 3). + Send us the output and the problem description via email bugreport. + We may ask you to upload the file. + - if it segfaults with an AVI file with MP3 audio, try with -afm 1 or -afm 4 + - if it's still bad, try with -nosound + +5. If you have problem with display driver, please first check the list above, + many of them isn't yet capable to AVI playing, and some of them are + untested and/or unfinished. + +6. If you have speed problems (too slow playing), then please first check that: + - you don't use OpenGL driver while have software-only opengl (DRI disabled, + or not yet installed, conflicting libs installed, or your hardware not + supported etc...) + - you have set up MTRR registers properly (many new cards are really + slow without setting up MTRR registers. it's NOT done by X 3.3.x! Also, + there are older K6-2's, which lack MTRR support /stepping=0/). + - you have a fast machine (don't report that your 386 can't play DivX) + - try with Null output (-vo null) and check CPU usage (first % value) + +7. sound-related problems: + - maybe your card doesn't support 48kHz playback and the movie requires it. + - try player with the -noalsa option + - delayed audio with some AVI files: try with -bps or -nobps option! + - if you experienced delayed audio, try to compensate with -delay or -abs. + you can specify audio card's buffer size in bytes with -abs option, or + specify audio delay in seconds (positive/negative float) with -delay + for example: mplayer -alsa -delay -0.75 test.avi + mplayer -abs 65536 -delay 0.3 test.mpg + - to play AVI files with VBR MP3 audio use the -mc 0 option! + - no sound at all: check that you have working OSS driver (/dev/dsp), + and it isn't used by another program (for example esd, xmms etc.) + +8. unsupported codecs (AVI files): + We may add support for your movie, but we need the following things: + - the codec DLL file: find it in your WINDOWS directory. In the SYSTEM.INI + there will be a listing of the installed codecs (vids.=DLLfile) + - a sample file encoded with that codec. + + +Download: +~~~~~~~~~ +Download: ftp://thot.banki.hu/esp-team/linux/MPlayer/ + or: http://thot.banki.hu/esp-ftp/linux/MPlayer/ +Homepage: http://thot.banki.hu/esp-team/MPlayer.html + +Mailing lists: +~~~~~~~~~~~~~~ +There are two public mailing lists on MPlayer. Subscribing can be achieved by +writing to the following addresses, and specifying "subscribe" in the Subject, +or message body. + +- MPlayer-users + Write an e-mail to mplayer-request@alan.umcs.lublin.pl +- MPlayer-announce + Write an e-mail to mplayer-announce-request@alan.umcs.lublin.pl + +Special thanks to Dariusz Pietrzak for the list hosting! + +Standard Disclaimer: +~~~~~~~~~~~~~~~~~~~~ +Use only at your own risk! There may be errors and inaccuracies that could +be damaging to your system or your eye. Proceed with caution, and although +this is highly unlikely, I don't take any responsibility for that! diff --git a/DOCS/SOUNDCARDS b/DOCS/SOUNDCARDS new file mode 100644 index 0000000000..8c396c32f5 --- /dev/null +++ b/DOCS/SOUNDCARDS @@ -0,0 +1,21 @@ +Recommended options for better sound sync: +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +(first try without these, maybe it works well without 'hacking' defaults) + +A