ChangeLog: ~~~~~~~~~~ v0.18 "BugCounter" : - all known bugs fixed - thousands of changes, updates, code cleanups, features etc. v0.17a "IdegCounter++" : - first 0.17 release failed - buggy files outdated docs etc :( it's (hopefully) fixed now. v0.17 "IdegCounter" : - thousands of changes, updates, code cleanups, features etc. * jumped to 0.17 * v0.11-pre27-CVS: - updated libmpeg2 source to libmpeg2-0.2.1-CVS version - updated OpenDivX encore/decore to 4.0 alpha48 - cmdline/configfile handler by szabi - added DirectShow support (now DivX-only) - bugfix: stream.c/stream_new() uninitialized variables v0.11-pre26-CVS: - updated libmpeg2 source to libmpeg2-0.2.0 version - small fixes v0.11-pre25-CVS: yeah, we moved to SourceForge CVS! - 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 - added DGA driver by Andreas Ackermann - added debian/ subdir for the debian package makers... see DOCS/DEBIAN - new Makefile/dependency system - added check_events() to libvo, x11 stuff moved to x11_common.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.