2001/08/13
* Huge update in AviPlayer class - moving towards much easier runtime
  configuration - everything should be fully modifiable in runtime
  (For now you could at least switch renderer (x11 & xv) but
   note the whole replacement is usually without soundskip!)
* fixed ASF parsing (Ann Lee - Two Times.asf)
* skip to next key frame is not performed if the last one passed
* added ordering of decoders - for now its still not that easy to
  select codec - but you could do it.
* player shows the time of seek bar, as obviously user wants to know
  to which time he is seeking
* fixed couple gcc3.0 things

2001/08/08
* large set of various minor improvements in configure and autogen.sh
* much better library versioning
* ffmpeg CVS update
* renamed few programs
    qtrecompress -> avirecompress
    qtvidcap -> avicap
    benchmark -> avibench

2001/08/04
* decoding ALaw & uLaw audio tracks
* using AC3 decoding from FFMPEG 
  (seems to there are few modified ac3 libraries available - mplayer seem to
  be using different version - probably heavily optimized - but as it doesn't take
  to much CPU we stay with the current version for a moment - API seems to be differnet
* autoquality implemeneted into OpenDivX (or should I say ClosedDivX :)
  anyway this code is about 25% faster and it works with autoquality
* during cleaning bugs and improving functionality of benchmark fixed
  some bug in detection of Eof in Avi stream
* benchmark will now give also similar number as you could get from benchmarking
  mplayer (just to be sure we are still faster :) for now with -direct -yuv -
  but buffered mode seems to be slower - maybe there is something on the
  fastmemcpy...
* renderer disables mouse after 1sec of inactivity in aviplayer window
2001/08/04
* fixed problem with 0 frame numbering
  actual information about the current frame are available after ReadFrame
  (e.g. Time, Position,...)
* huge set of improvements in qtrecompress - now it really works
  (with few filters which are not available in VirtualDub :))

2001/08/03
* subtitle code update (support for SAMI - .smi)
* cleanup of various makefiles (suggest by some users)
* Debian package slightly modified

2001/07/22
* TrueType Font Rendering (using Xft extension - with the help of Lukas Hejtmanek)
* smarter DirectRendering mode - should work all the time with necessary conversions

2001/07/21
* very extensive cleanup of conversion modes of images
* cleaned some hacks in Win32 VideoDecoder class
* added some hack for correct playing of several not very used codecs
  like huffyuv, asv1, asv2, vcr2
* large speedup of C-version routines for conversion  RGB 24b->16b

2001/07/18
* fixed bug in Subviewer reader
* fixed two memory leaks discovered by mprotector
* added support for few more codecs

2001/07/17
* lots of code cleanup
* started to cleanup some types - transformation to uint32...
* some fixies in DirectShow code
* fixed several MAJOR bugs in qtrecompressor - now it even works - though
  it's still rather a toy application and I would not advice to use it for
  any serious thing yet
* ffmpeg 0.4.4
* autoconf2.50 compatible - anyone dissagree ???

2001/07/14
* another speedup of resumpling code - should be now very efficient
* -ljpeg for avimake

2001/07/11
* added libmp3lamebin plugin which as able to load libmp3lame at runtime

2001/07/10
* 4 times faster resampling - using just interger arithmetic
* scanning WIN32_PATH, /usr/lib/win32, /usr/local/lib/win32 paths for dll

2001/07/09
* able to use ffmpeg library - version 0.4.3 is now in avifile CVS 
  - original CVS seems to be now the tree of the mplayer.
  for now we could use it to play OpenDivX - it could also play DivX :-)
* minor redesing of videodecoder API - now we have Start/StopInternal 
* cleaned mjpeg_plugin
* started to clean DirectShow directory to make it C-compilable 
  (so it could be used by mplayer and others...)
* also made quite a few cleanups in other places
* fixed WIN32_PATH support
* added AVIPLUGIN_PATH shell variable
* fixed AVIPLAY_MUTE_VIDEO, AVIPLAY_MUTE_AUDIO
* few fixes for debian

2001/06/28
* another change in constants in scheduler 
* interface change! - GetHeader(void* header, size_t n)

2001/06/26
* Locker.h and VideoDPMS.h are now public
* fixed few problems in frame elimination in video decoder class

2001/06/23
* complete rewrite of players' thread - is it now FreeBSD safe ??
  - also we are no longer using avi_usleep for audio synchronization and
  instead we use timed condition which has adwantage that we have 
  immediate hangup when thread is sleeping
* added NextFrame aviplay method - usable with 'Return' key in aviplayer
* implemented initial 'hacked' support for better priority handling
  - if you set uid.gid to root.root together with 'suid' bit,
  that video thread will use -10 priority for better timing - however
  BIG WARNING is here - you are using closed-source windows binary dll 
  codecs - during their execution aviplayer is using user uid & gid 
  - however you never know what could happen!
* for this reason it looks like the best is to lower the priority if
  audio & video decoding threads so video thread gets its needed CPU when
  necessery. 

2001/06/21
* complex GUI update for configuration of aviplayer 
  (some of buttons now even works in runtime so you don't have to restart
  player - ok I know - still not perfect...)
* resampling is now more usable as it could do far more things then
  just pure 44kHz resampling - so why not making it fully usable - its even
  nice feature
* version-info - library has now number 0.0.6  (level 0  version 0.6)
* another streaming bug fixed - so we play more asf stream over the net

2001/06/20
* fixed & tuned resampling to remove clics for unsigned char audio stream 
  (but some check for the overflow would help us too)
* extended stream info added (check movie property)

2001/06/18
* some deadlocks in audio renderer - SDL_LockAudio now works somehow better
  but it is still not usable
* no longer processing keyboard events which belongs to other applications
* fixed resampling - that was really stupid bug and not that easy to fix
  but the result is very good

2001/06/18
* minor updates in network asf - it just works - but it's still crashing a lot
* staying compatible with qt2.X
* added hack for NVidia cards - autodetected by looking for NVIDIA-GLX 
  extension - could be forced on by setting
  export AVIPLAY_NVIDIA_ENABLE=1
  or off with this shell command executed before aviplayer gets started
  export AVIPLAY_NVIDIA_DISABLE=1

2001/06/16
* a lot of fixes in asf parsing code - finally we are able to detect end of 
  the file properly
* redesigned and simplified event handling in aviplayer
* a-v sync is now 100% better than it ever was
* maximize return to its previous size when switching off fullscreen
* hopefully fixed problem with mpg sound which could occasionaly get broken
* GUI updates
* added keys '[', ']' to modify a-v sync - (adds, subs 0.1 sec)
* UNIQUE frame-dropping technique - now even very slow computers could
  be used to view movies in audio-video sync !!!!

2001/06/12
* more keyboard updates
* added methods for setting getting video renderers in aviplay class
  (set is however unimplemented so far)
* reading video modes and making them available in maximize modes

2001/06/11
* improved player keyboard handling - seeking is better & faster again
* GetFrame is using Lock instead of usleep - faster reaction

2001/06/08
* redesigned whole ToggleFullscreen & Resize system - now it should work
  reliable, fast and without strange locking problems (at least I hope so)
  Pressing 'm' key is now the best thing you could do to view the move
* added support for SubRip subtitles
* l3codeca.acm - windows mp3 dll library seems to be working now!
* quick resizing with keys: 1 (0.5x), 2 (1x), 3 (2x)
* fixes in audio synchronization
* fixed YV12 drawing (swaped 2nd & 3rd plane)
* benchmark supports YV12 

2001/06/05
* hardly played with synchronization
  we can now resize window  without stopping playing!!!
  (try this with other players :)

2001/05/30
* fixed couple deadlocks in AudioRenderer
* fixed Uncompressed video decoder
* added autorepeat for SDL

2001/05/28
* slowly adding support for direct rendering
* again general rewrite of scheduler - simplier and more efficient
* of course the complex part did not dissappeared - its now
  in audio renderer - which is being constantly modified
  so OSS & Sun are currently not supported until they will be fixed
  to match complexity of SdlAudioRenderer

2001/05/19
* as some more issues have been resolved in the audio time calculation
  we could now have much more simple and precise video image scheduling
  A-V is in in milisecond range - just check (export AVIPLAY_DEBUG=1)
* reconstructing even seriously broken .avi files
  you could really split two .avi files and then join them in any order
  - you just need the correct initial header
* few changes in qtrecompress GUI
* bugfix: some codecs needs previous image to be stored in the new decoded image
* supporting more flags for benchmark utility:
  -seek, -frame, -length

2001/05/15
* played a bit with DPMS code - now it should be compilable even on older systems
* tuned Dropping algorithm

2001/05/13
* removed memorymut - replaced with two utility functions - memory_un/lock()
* aviplay.h: Set/GetSubAsync -> Set/GetSubtitlesAsync
  InitSubtitles is now public function (well not full usable at this
  moment)

2001/05/12
* New VIDEO IMAGE scheduler - its giving excelent result to me 
  - however my machine is quite powerful SMP computer so this needs
  to be test with other types of machine (btw - mplayer has made lately 
  some progress in this area too - and we have to be better :))
* reconstruction of index on broken DivX movies - now checks for KeyFrames
  (inspired by mplayer code)
* reading from avistream is now more endinadness independent - but this
  probaly has to be checked in the real small endian machine.

2001/05/08
* significant speed for large movies - memory is now
  protected when doing large memory transfers so we are
  not loosing the speed too much ion this case - was hard to
  figure out and current solution is not very nice - its rather a hach 
* changed  drawFunc - they are now replaced with list of video renderes
  yet function to add them on the fly are missing for now - will
  be resolved later - expect some interface changes in this area

2001/05/06
* timing changed more - so more ASF files are played correctly
  if anyone has something we are playing completely wrong - let me know
* VBUFSIZE is now in the class which implements IVideoDecoder and
  is quite easily changable - maybe configurable option in future...

2001/05/05
* !!IMPORTANT!! general update of several public interfaces
  (changes are not that big - but probably require simple updates,
  I wanted to make these changes before library get used by more projects)
  - unification of various method names doing same thing
  - SeekTime replaces Seek(double) - it better visible what's going on
  - GetEndPos -> GetLength
  - GetEndTime -> GetLenghtTime
  - LengthTime -> GetLenghtTime
  - Length -> GetLength
  - FormatSize -> GetFormatSize
  - FourCC -> GetFourCC
  - Prev/Next/NearestKeyFrame -> Get*
  - ToNext/PrevKetFrame -> SeekToNext/PrevKeyFrame
  - SetRealtime -> SetDecodingMode
  - config_entry -> ConfigEntry
  - GetDrop, GetQuality -> GetAvgDrop, GetAvgQuality
* new code for timing ASF files
* added QualityAuto & PreserveAspect in RegAccess  
* many changes across the whole source base because of this
* implemented Preserve Aspect Ratio
* implemented CPU Quality checkbox (still missing setting Quality after Off)
* fixed bug with killHandler destruction - caused crashes with broken videostreams
* found & fixed deadlock in Mpeg layer3 decoding 
  (now just writes: MP3 Stream reinitialized!  and reinitialize decoder)
* we are again playing Video free avi/wma/asf streams.
* fixed deadlock case in AviMediaReadStream::find

2001/05/04
* fixed playing of asf files with variable frame rate - e.g.
  when frame should stay on the screen for longer time
  current solution allows immediate seeking 
* more changes to videodecoder interface class 
  few things have been made private and I suppose more change will
  be made within this class - if you are building your own decode
  watch closely these updates.
* fixed some bugs when Videostream is not present

2001/05/01
* code cleanup 
* now progress bar shows correct info for direct show DivX 
* clenaup of members of videodecoder class
* some updates for Spark i386 architecture
* VideoDPMS is now separate class

2001/04/30
* fixed and rewrote destruction of aviplayer class (now its more clean)
* adding several methods to win32.c so huffyuv codecs almost works
* rewrote & fixed reading .SRT subtitles (takes less space)
  also this will be moved to separate class file - also
  the support for SMI subtitles will be added soon
* add few more keystrokes to aviplayer to be compatible with movie window
* fixed and repaired wrong image time reading - we were reading time
  information for the next image and also it was causing unpleasent
  effect on the image redrawing when mouse enters the window - its
  the only reasonable way to simulate expose event for this moment - now
  its almost unnoticable.
* support for DivX VKI - DIV5, DIV6 - user has to install these libraries:
  divxcvki.ax & divxcvki.dll
* implemented several new functions in win32 to make huffyuv work better
  so far RGB variant is upside-down in player and corretly in qtrecompress
  YUV variant looks OK in player and is upside-down in qtrecompress
* variuous fixes in qtrecompress - but for this moment is still pretty 
  much broken piece so I would still advice to use VirtualDub.
* many other minor bugfixes - like missing -O2 flag in configure.in,
* fixed uggly bug in videodecoder - we have to use mutex in this case
* we should be now nearly as fast as mplayer I believe

2001/04/27
* fixed compilation some inline for RedHat broken g++ compiler
* reversed wrong idea for using DIV5 & DIV6

2001/04/26
* fixed another problem with audio - it looks like its not the right thing
  to divide rate by dwSampleSize - sometimes there are weird values
  anyway for now it works - better fix will come later
* modified slightly renderer - remember data only in mutexed part -
  otherwice it might lead to possible race
* we are playing huffyuv - for now upside-done in player - but
  qtrecompress show normal image - this will be fixed
* fixed few problems with ACEL incorect initialization - it still doesn't
  work but at least its not crashing.

2001/04/25
* fixed bug in audio playing - missing division by dwSampleSize
* fixed bug with destroying AviPlayer2 object - setting m_bQuit there
* Cursor keys Up/Down means 1m forward backward in the movie
  (similar semantic to mplayer - to not confuse people)
* added few fourCC for DivX VKI we will see if this helps
* played a bit with renderer so it should refresh images better

2001/04/22
* fixed bug introduced by me for software scaling
* added few more calls to PlayerWidget - refresh, maximize
* also extended renderer class for refresh call - we are now
  finaly able to refresh/resize image in pause mode too
* slightly modified maximize - it goes to fullscreen mode automagicaly
  yet it might look slightly weird when the window has to be resized first
  as it first switch to fullscreen for the current size,
  that it resizes to the new size and finaly switches to this
  new screen mode - weird I know, but quite stable for X11
* news keys - 'f' - fullscreen, 'm' - maximize, 'space' - pause
* left mouse click - pause

2001/04/20
* changed video decoder interface to separate caching code from
  actual decoding. Now nearly all caching code is situated in 
  lib/common/impl_video.cpp ( useful for writing new video decoder
  plugins, also more logical ).
* fixed a bug in asf parser code which prevented local .asf files
  from playing.
* removed arts plugin & software motion jpeg decoder from distribution
  ( they are unusable anyway ). Fixed a few small linking problems.
  
2001/04/16
* complete rewrite of Cache.cpp - now should be quite efficient
  (should be almost zero wasted time now)
* fixed couple of fast scrolling problems - now should no longer
  scroller switch frames by itself - actually I've tried hard
  to get this to the perfection - does anyone notice any problems
  with aviplayer scroller ?? please let me know
  (similar scrolling will be backported to recompressor later)
* fixed most of problems when doing pause - audio should now continue
  at the point it has stopped
* fixed detection of audio stream - also buffered time is now included
  into calculation so the audio is not being stopped several seconds
  before the actual end of video
* made couple changes to be more gcc3.0 compatible - however
  this compiler seems to be seriously broken these days and
  needs way to much memory to compile classes with member values
  which are classes again (pointers are OK)
  also for some weird reason std::string as a member value is also
  some kind of brake barrier for this compiler

2001/04/07
* another set of gcc3.0 compatibility patches (by Dirk Mueller)
* started to support /dev/misc/mga_vid (not yet finished)

2001/04/07
* continued with cleaning of audio classes
* added few more locks into video renderer
* fixed problem with opening menu in fullscreen window
* using smaller amount of precached images (15) 
  (rewritten some part of videodecoders)
* popup menu for midle mouse button and about menu is created only once
* fixed bug in ReadString - def_string has not been copied
* fixed couple bugs in qtrecompres - should not by cycling and should
  be showing some images at least
* played a bit with qtvidcap - modified some parts of the gui to be
  fully resizable

2001/03/31
* heavy cleaning in many files - creating a lot of new files during this process
* fixed problems which has prevented compilation with optimized of Win32 loader
* fixed loop bug in qtrecompress
* mpeg decoder has to be compiled with optimalization because of inlines!
* started to add more types - like fourcc_t
* modified IVideoDecoder - m_bh is now just pointer to memory which
  is copy if format - this way we support longer BITMAPINFOHEADER structures
  yet few problems still remains
* some modification to configure.in
* possibly fixed problem with asynchronous sound (not so sure for now however)
  but this problem problem has to be checked more deeply
  for now I've just checked SDL Audio renderer
* changes some mimetype for artsc (to fix debian bugreport)

2001/03/26
* Quality progress bar should give some meaningful status for DivX movies
* another change in time scheduler
* fixed couple destructors so we are getting less coredumps on program exit
* tried to add huffyuv codec - still doesn't work
* fixed few problems with configure.in - should be able to build without SDL
* few more updates for gcc3.0 compatibility

2001/03/21
* few changes to make compilation of avifile on RedHat with broken gcc 
  more comfortable (so it doesn't take hours to compile one .cpp file)

2001/03/19

* quality setting from command line stays across movie change
* cleanup of huge amount of gcc -pendantic warnings (mainly in lib)
* slightly changed behavior of slider - when paused you should see the image
  with slider movement
* added working Xv render - but it has few reason for segfaults so
  it currently available only by code editing
* played heavily with the solution for image flickering
  nice solution seems to be my new modified version of mga_vid
  device taken from mplayer - but we use only code for interrupts
  and we rather use this device as interrupt generator - which is clean
  and its highly possible that this will hit mainstream kernel sometimes
  in the future
  currently mga_vid driver is provided with the avifile package - user
  has to recompile device itself
* few more fixes in the behaviour of GUI (switching between image size)
* fixed some problems with subtitles (but they should be reworked later)
* fixed and added some noticing messages were some problems with resize appears
* unified volume_func (using quadratic steps for now)
* applied patch for SUN audio on solaris by Juergen Keil <jk@tools.de>

2001/03/12

* started to use unsigned long in most seek commands (4GB compatibility)
  this is a big change in the interface and probably few bugs
  are still left in the code
  also writing code was not yet modified!
* cleaned some interface header files
* added volume slider and mute button
* added quality progres bar (its not yet fully operational - 
  support for auto quality selection is not finished)
* YV12 doen's work - FIXME
* SDL double buffer doesn't work - FIXME

2001/03/12 created file <kabi@i.am>
