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 ++ Makefile | 82 + TOOLS/GL-test/compile.sh | 2 + TOOLS/GL-test/gltest.c | 189 ++ TOOLS/asfinfo.c | 255 +++ TOOLS/c | 1 + TOOLS/movinfo.c | 124 ++ TVout/Mon-640x400 | 3 + TVout/Mon-640x480 | 3 + TVout/TV-640x512 | 2 + TVout/TV-640x528 | 3 + TVout/TV-704x528 | 3 + TVout/TV-704x576 | 3 + TVout/TV-720x576 | 3 + TVout/clean.sh | 13 + TVout/cloning | 14 + TVout/compile.sh | 15 + TVout/con2fb/con2fb.c | 79 + TVout/fbset.db | 34 + TVout/fbset/INSTALL | 20 + TVout/fbset/Makefile | 41 + TVout/fbset/fb.h | 497 ++++++ TVout/fbset/fb.modes.5 | 228 +++ TVout/fbset/fbset.8 | 242 +++ TVout/fbset/fbset.c | 1054 +++++++++++ TVout/fbset/fbset.h | 82 + TVout/fbset/modeline2fb | 150 ++ TVout/fbset/modes.l | 136 ++ TVout/fbset/modes.y | 175 ++ TVout/independ | 16 + TVout/matroxset/Makefile | 10 + TVout/matroxset/fb.h | 502 ++++++ TVout/matroxset/matroxfb.h | 32 + TVout/matroxset/matroxset.c | 162 ++ TVout/matroxset/normal | 12 + TVout/matroxset/swapit | 5 + TVout/matroxset/swapped | 12 + TVout/modules | 8 + alaw.c | 29 + asfheader.c | 183 ++ aviheader.c | 89 + aviparse.c | 336 ++++ aviprint.c | 88 + aviwrite.c | 161 ++ codecctrl.c | 198 +++ codecs.c | 150 ++ config.h | 70 + config.mak | 14 + configure | 783 +++++++++ demux_asf.c | 268 +++ demux_avi.c | 276 +++ demux_mpg.c | 228 +++ demuxer.c | 285 +++ dll_init.c | 164 ++ drivers/3dfx.h | 154 ++ drivers/Makefile | 22 + drivers/README | 40 + drivers/mga_vid.c | 877 +++++++++ drivers/mga_vid.h | 48 + drivers/mga_vid_test.c | 221 +++ drivers/sis_vid.c | 645 +++++++ drivers/sis_vid.h | 37 + help_avp.h | 32 + help_mp.h | 44 + liba52/srfftp.h | 303 ++++ libmpeg2/Makefile | 35 + libmpeg2/attributes.h | 31 + libmpeg2/decode.c | 319 ++++ libmpeg2/header.c | 273 +++ libmpeg2/idct.c | 289 +++ libmpeg2/idct_mlib.c | 47 + libmpeg2/idct_mmx.c | 706 ++++++++ libmpeg2/mm_accel.h | 30 + libmpeg2/mmx.h | 255 +++ libmpeg2/motion_comp.c | 125 ++ libmpeg2/motion_comp_mlib.c | 180 ++ libmpeg2/motion_comp_mmx.c | 1025 +++++++++++ libmpeg2/mpeg2.h | 57 + libmpeg2/mpeg2_internal.h | 220 +++ libmpeg2/slice.c | 1797 +++++++++++++++++++ libmpeg2/sse.h | 256 +++ libmpeg2/stats.c | 316 ++++ libmpeg2/vlc.h | 425 +++++ libvo/Attic/SHIT/video_out_gl.c.V3-sux | 538 ++++++ libvo/Attic/SHIT/video_out_gl.c.diff | 64 + libvo/Attic/SHIT/video_out_odivx.c.OLD | 183 ++ libvo/Attic/SHIT/video_out_sdl.c-1.1.4 | 574 ++++++ libvo/Attic/SHIT/video_out_x11.c.OLD | 518 ++++++ libvo/Attic/SHIT/video_out_x11.c.thread | 466 +++++ libvo/Makefile | 37 + libvo/config.mak | 6 + libvo/mga_common.c | 220 +++ libvo/mmx.h | 706 ++++++++ libvo/rgb15to16mmx.c | 42 + libvo/video_out.c | 201 +++ libvo/video_out.h | 195 ++ libvo/video_out_internal.h | 43 + libvo/vo_3dfx.c | 478 +++++ libvo/vo_gl.c | 515 ++++++ libvo/vo_md5.c | 106 ++ libvo/vo_mga.c | 127 ++ libvo/vo_null.c | 85 + libvo/vo_odivx.c | 234 +++ libvo/vo_pgm.c | 115 ++ libvo/vo_sdl.c | 607 +++++++ libvo/vo_syncfb.c | 446 +++++ libvo/vo_syncfb.c.OLD | 434 +++++ libvo/vo_x11.c | 476 +++++ libvo/vo_xmga.c | 319 ++++ libvo/vo_xv.c | 457 +++++ libvo/wskeys.h | 103 ++ libvo/yuv2rgb.c | 414 +++++ libvo/yuv2rgb.h | 43 + libvo/yuv2rgb_mlib.c | 87 + libvo/yuv2rgb_mmx.c | 419 +++++ linux/getch2.c | 215 +++ linux/getch2.h | 20 + linux/keycodes.h | 36 + linux/shmem.c | 83 + linux/shmem.h | 4 + linux/timer-lx.c | 49 + linux/timer.h | 6 + lirc_mp.c | 143 ++ lirc_mp.h | 23 + loader/Makefile | 30 + loader/afl.c | 763 ++++++++ loader/com.h | 66 + loader/config.h | 74 + loader/driver.c | 223 +++ loader/elfdll.c | 305 ++++ loader/ext.c | 565 ++++++ loader/loader.h | 286 +++ loader/module.c | 618 +++++++ loader/pe_image.c | 936 ++++++++++ loader/pe_resource.c | 391 +++++ loader/registry.c | 421 +++++ loader/registry.h | 24 + loader/resource.c | 478 +++++ loader/stubs.s | 36 + loader/vfl.c | 330 ++++ loader/win32.c | 1706 ++++++++++++++++++ loader/win32.h | 1 + loader/wine/avifmt.h | 246 +++ loader/wine/basetsd.h | 145 ++ loader/wine/config.h | 442 +++++ loader/wine/debugtools.h | 93 + loader/wine/driver.h | 112 ++ loader/wine/elfdll.h | 14 + loader/wine/heap.h | 56 + loader/wine/ldt.h | 98 ++ loader/wine/mmreg.h | 104 ++ loader/wine/module.h | 198 +++ loader/wine/msacm.h | 942 ++++++++++ loader/wine/msacmdrv.h | 203 +++ loader/wine/ntdef.h | 101 ++ loader/wine/pe_image.h | 81 + loader/wine/poppack.h | 15 + loader/wine/pshpack1.h | 13 + loader/wine/pshpack2.h | 12 + loader/wine/pshpack4.h | 15 + loader/wine/pshpack8.h | 12 + loader/wine/vfw.h | 654 +++++++ loader/wine/winbase.h | 1791 +++++++++++++++++++ loader/wine/windef.h | 656 +++++++ loader/wine/windows.h | 38 + loader/wine/winerror.h | 1658 +++++++++++++++++ loader/wine/winestring.h | 13 + loader/wine/winnt.h | 2665 ++++++++++++++++++++++++++++ loader/wine/winreg.h | 57 + loader/wine/winuser.h | 2929 +++++++++++++++++++++++++++++++ loader/wineacm.h | 55 + mp3lib/Makefile | 34 + mp3lib/config.mak | 6 + mp3lib/d_cpu.h | 17 + mp3lib/d_cpu.s | 94 + mp3lib/dct12.c | 139 ++ mp3lib/dct36.c | 264 +++ mp3lib/dct36_3dnow.s | 499 ++++++ mp3lib/dct64.c | 313 ++++ mp3lib/dct64_3dnow.s | 706 ++++++++ mp3lib/dct64_i386.c | 314 ++++ mp3lib/decod386.c | 194 ++ mp3lib/decode_3dnow.s | 265 +++ mp3lib/decode_i586.s | 321 ++++ mp3lib/equalizer.c | 79 + mp3lib/huffman.h | 332 ++++ mp3lib/l2tables.h | 154 ++ mp3lib/layer2.c | 295 ++++ mp3lib/layer3.c | 1703 ++++++++++++++++++ mp3lib/mp3.h | 31 + mp3lib/mpg123.h | 125 ++ mp3lib/sr1.c | 489 ++++++ mp3lib/tabinit.c | 89 + mplayer.c | 1957 +++++++++++++++++++++ parse_es.c | 106 ++ stream.c | 203 +++ tvision.c | 152 ++ vcd_read.h | 122 ++ version.h | 1 + videodev.h | 283 +++ xa/xa_gsm.c | 988 +++++++++++ xa/xa_gsm.h | 6 + xa/xa_gsm_int.h | 114 ++ 216 files changed, 58871 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 create mode 100644 Makefile create mode 100755 TOOLS/GL-test/compile.sh create mode 100644 TOOLS/GL-test/gltest.c create mode 100644 TOOLS/asfinfo.c create mode 100755 TOOLS/c create mode 100644 TOOLS/movinfo.c create mode 100755 TVout/Mon-640x400 create mode 100755 TVout/Mon-640x480 create mode 100755 TVout/TV-640x512 create mode 100755 TVout/TV-640x528 create mode 100755 TVout/TV-704x528 create mode 100755 TVout/TV-704x576 create mode 100755 TVout/TV-720x576 create mode 100755 TVout/clean.sh create mode 100755 TVout/cloning create mode 100755 TVout/compile.sh create mode 100644 TVout/con2fb/con2fb.c create mode 100644 TVout/fbset.db create mode 100644 TVout/fbset/INSTALL create mode 100644 TVout/fbset/Makefile create mode 100644 TVout/fbset/fb.h create mode 100644 TVout/fbset/fb.modes.5 create mode 100644 TVout/fbset/fbset.8 create mode 100644 TVout/fbset/fbset.c create mode 100644 TVout/fbset/fbset.h create mode 100755 TVout/fbset/modeline2fb create mode 100644 TVout/fbset/modes.l create mode 100644 TVout/fbset/modes.y create mode 100755 TVout/independ create mode 100644 TVout/matroxset/Makefile create mode 100644 TVout/matroxset/fb.h create mode 100644 TVout/matroxset/matroxfb.h create mode 100644 TVout/matroxset/matroxset.c create mode 100755 TVout/matroxset/normal create mode 100755 TVout/matroxset/swapit create mode 100755 TVout/matroxset/swapped create mode 100755 TVout/modules create mode 100644 alaw.c create mode 100644 asfheader.c create mode 100644 aviheader.c create mode 100644 aviparse.c create mode 100644 aviprint.c create mode 100644 aviwrite.c create mode 100644 codecctrl.c create mode 100644 codecs.c create mode 100644 config.h create mode 100644 config.mak create mode 100755 configure create mode 100644 demux_asf.c create mode 100644 demux_avi.c create mode 100644 demux_mpg.c create mode 100644 demuxer.c create mode 100644 dll_init.c create mode 100644 drivers/3dfx.h create mode 100644 drivers/Makefile create mode 100644 drivers/README create mode 100644 drivers/mga_vid.c create mode 100644 drivers/mga_vid.h create mode 100644 drivers/mga_vid_test.c create mode 100644 drivers/sis_vid.c create mode 100644 drivers/sis_vid.h create mode 100644 help_avp.h create mode 100644 help_mp.h create mode 100644 liba52/srfftp.h create mode 100644 libmpeg2/Makefile create mode 100644 libmpeg2/attributes.h create mode 100644 libmpeg2/decode.c create mode 100644 libmpeg2/header.c create mode 100644 libmpeg2/idct.c create mode 100644 libmpeg2/idct_mlib.c create mode 100644 libmpeg2/idct_mmx.c create mode 100644 libmpeg2/mm_accel.h create mode 100644 libmpeg2/mmx.h create mode 100644 libmpeg2/motion_comp.c create mode 100644 libmpeg2/motion_comp_mlib.c create mode 100644 libmpeg2/motion_comp_mmx.c create mode 100644 libmpeg2/mpeg2.h create mode 100644 libmpeg2/mpeg2_internal.h create mode 100644 libmpeg2/slice.c create mode 100644 libmpeg2/sse.h create mode 100644 libmpeg2/stats.c create mode 100644 libmpeg2/vlc.h create mode 100644 libvo/Attic/SHIT/video_out_gl.c.V3-sux create mode 100644 libvo/Attic/SHIT/video_out_gl.c.diff create mode 100644 libvo/Attic/SHIT/video_out_odivx.c.OLD create mode 100644 libvo/Attic/SHIT/video_out_sdl.c-1.1.4 create mode 100644 libvo/Attic/SHIT/video_out_x11.c.OLD create mode 100644 libvo/Attic/SHIT/video_out_x11.c.thread create mode 100644 libvo/Makefile create mode 100644 libvo/config.mak create mode 100644 libvo/mga_common.c create mode 100644 libvo/mmx.h create mode 100644 libvo/rgb15to16mmx.c create mode 100644 libvo/video_out.c create mode 100644 libvo/video_out.h create mode 100644 libvo/video_out_internal.h create mode 100644 libvo/vo_3dfx.c create mode 100644 libvo/vo_gl.c create mode 100644 libvo/vo_md5.c create mode 100644 libvo/vo_mga.c create mode 100644 libvo/vo_null.c create mode 100644 libvo/vo_odivx.c create mode 100644 libvo/vo_pgm.c create mode 100644 libvo/vo_sdl.c create mode 100644 libvo/vo_syncfb.c create mode 100644 libvo/vo_syncfb.c.OLD create mode 100644 libvo/vo_x11.c create mode 100644 libvo/vo_xmga.c create mode 100644 libvo/vo_xv.c create mode 100644 libvo/wskeys.h create mode 100644 libvo/yuv2rgb.c create mode 100644 libvo/yuv2rgb.h create mode 100644 libvo/yuv2rgb_mlib.c create mode 100644 libvo/yuv2rgb_mmx.c create mode 100644 linux/getch2.c create mode 100644 linux/getch2.h create mode 100644 linux/keycodes.h create mode 100644 linux/shmem.c create mode 100644 linux/shmem.h create mode 100644 linux/timer-lx.c create mode 100644 linux/timer.h create mode 100644 lirc_mp.c create mode 100644 lirc_mp.h create mode 100644 loader/Makefile create mode 100644 loader/afl.c create mode 100644 loader/com.h create mode 100644 loader/config.h create mode 100644 loader/driver.c create mode 100644 loader/elfdll.c create mode 100644 loader/ext.c create mode 100644 loader/loader.h create mode 100644 loader/module.c create mode 100644 loader/pe_image.c create mode 100644 loader/pe_resource.c create mode 100644 loader/registry.c create mode 100644 loader/registry.h create mode 100644 loader/resource.c create mode 100644 loader/stubs.s create mode 100644 loader/vfl.c create mode 100644 loader/win32.c create mode 100644 loader/win32.h create mode 100644 loader/wine/avifmt.h create mode 100644 loader/wine/basetsd.h create mode 100644 loader/wine/config.h create mode 100644 loader/wine/debugtools.h create mode 100644 loader/wine/driver.h create mode 100644 loader/wine/elfdll.h create mode 100644 loader/wine/heap.h create mode 100644 loader/wine/ldt.h create mode 100644 loader/wine/mmreg.h create mode 100644 loader/wine/module.h create mode 100644 loader/wine/msacm.h create mode 100644 loader/wine/msacmdrv.h create mode 100644 loader/wine/ntdef.h create mode 100644 loader/wine/pe_image.h create mode 100644 loader/wine/poppack.h create mode 100644 loader/wine/pshpack1.h create mode 100644 loader/wine/pshpack2.h create mode 100644 loader/wine/pshpack4.h create mode 100644 loader/wine/pshpack8.h create mode 100644 loader/wine/vfw.h create mode 100644 loader/wine/winbase.h create mode 100644 loader/wine/windef.h create mode 100644 loader/wine/windows.h create mode 100644 loader/wine/winerror.h create mode 100644 loader/wine/winestring.h create mode 100644 loader/wine/winnt.h create mode 100644 loader/wine/winreg.h create mode 100644 loader/wine/winuser.h create mode 100644 loader/wineacm.h create mode 100644 mp3lib/Makefile create mode 100644 mp3lib/config.mak create mode 100644 mp3lib/d_cpu.h create mode 100644 mp3lib/d_cpu.s create mode 100644 mp3lib/dct12.c create mode 100644 mp3lib/dct36.c create mode 100644 mp3lib/dct36_3dnow.s create mode 100644 mp3lib/dct64.c create mode 100644 mp3lib/dct64_3dnow.s create mode 100644 mp3lib/dct64_i386.c create mode 100644 mp3lib/decod386.c create mode 100644 mp3lib/decode_3dnow.s create mode 100644 mp3lib/decode_i586.s create mode 100644 mp3lib/equalizer.c create mode 100644 mp3lib/huffman.h create mode 100644 mp3lib/l2tables.h create mode 100644 mp3lib/layer2.c create mode 100644 mp3lib/layer3.c create mode 100644 mp3lib/mp3.h create mode 100644 mp3lib/mpg123.h create mode 100644 mp3lib/sr1.c create mode 100644 mp3lib/tabinit.c create mode 100644 mplayer.c create mode 100644 parse_es.c create mode 100644 stream.c create mode 100644 tvision.c create mode 100644 vcd_read.h create mode 100644 version.h create mode 100644 videodev.h create mode 100644 xa/xa_gsm.c create mode 100644 xa/xa_gsm.h create mode 100644 xa/xa_gsm_int.h 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