
0.5.4
- added the -b switch to the command line player yaf-mpgplay.
  This delays the audio. Maybe I get an idea to do this better.
  120 KB simulated audioBuffer worked fine for me.
- stopped working on the audio/video sync problem. A correct a/v
  sync must re-create the audio/video packets from the encoded
  packet stream. This is a bit of work, for now, I use some
  heuristics which worked for my teststreams.
- added example8. Its a basic concept for delayed audioBuffer.
  (usefull if you implement a BPMDevice)
- sync now perfect.
- more perfect
- sync even better
- FileDialog now remembers the last directory
- mmx code for 16/32 bit displays in mpeg video player.The 16 bit mxx
  code is from NIST an mpeg 2 video/DVD player.
  http://home.germany.net/100-5083/
- compiles under debian. Many thanks to Laurent Bonnaud for his patch.
- Many thanks to Jose Pedro Sousa do Amaral for his help on the 
  alpha port.
- Many thanks to Atsushi Yamagata <yamagata@plathome.co.jp> for
  his translation into Japanese


0.5.3
- new state machine for backend/frontend. This can deal with higher traffic
  than the old. (The old one could drop states)
- moved the buttons around in playlistdialog.
- ok time for test. There are still a few features, but I think
  the segfaults are gone.
- the sync problem on fast machines seems to be solved (tested
  on dual P400 and PIII 500)
- many thanks to Patrick Koppen. The Sync routine now orders the stream
  into video/audio  and calculates the a/v ratio locally instead of global.
 


0.5.2c
- updated the yaf lib READMEs
- removed an old bug in the streaming lib.Always initialize pointer with NULL!
- nice,nice. Same old trap. Emit signals in qt are _not_ delivered over 
  a global event queue.It is not possible to delete an object on a given
  signal.(user of the streaming lib should remember this)
- _GS_SIGNAL_PLAYING_READY is now a global yaf signal.


0.5.2b
- changed the names of the backend players from xyz-yaf to yaf-xyz.
  yaf-splay : mp3
  yaf-tplay : wav/au
  yaf-mpgplay : mpeg video. Use the commandline player for increased
  speed and better audio/video sync.
- removed the last features. ugh, issues in ms speech :-)
- removed Multicastdevice. But attention! You may loose statusinfos
  if you do not create the filtergraph carfully!
- further quality tests.(found a few bugs:)


0.5.2a
- new automake/configure tools. These should find "moc" everywhere.
- bug hunting. Disabled "save last song" if it was a video. This
  solves the problem that kmpg hangs if you played a cdi, but
  now have a data cd in drive.
- rewritten audio/video sync. This is very exact, but drops mercyless
  frames on slow hardware. 
- updated german translation
- --enable-esd and --enable-nas added to ./configure. 
- changed the threading model. Now the thread blocks on the ringbuffer.
  This is necessary for the small video buffer of 16KB. The old
  notify mechanism was too slow.  


0.5.2
- bugfix for new esd library.
- compiles with qt-1.40 and KDE 1.0. Mpeg video player works on Solaris.
- added "HOW TO WRITE A PLUGIN" tutorial into the source.
  Start your reading here: kmpg-0.5.2/lib/yaflib/players/README
- seek added to mpeg video. Default buffer for video is 16 KB.
  This is necessay, because otherwise the decoder looses the sync
  between video/audio (The buffersize for mp3 remains 1MB)
- added templates for every language. If you like to translate kmpg
  to your language, please read the file po/README.TRANSLATIONS


0.5.1c
- rewrite of the plugin interface. The plugin interface is now full C++.
- removed cdparanoia and mikmod (again)
- added mpeg video decoder. The mpeg video decoder is based on mpeg_play the
  Berkley sofware mpeg player.My modifications are under GPL.
- user request: The state of the menubar is now saved. This means if you
  set the menubar to "flat" mode the menu stays disabled.
- menu restructured
- added commandline option to the yaf command line decoders. Use for example
  mpgplay-yaf cdi:// to play a video cd.


0.5.1b
- fixed feature where dropped playlists are insterted in reverse order
  in the playlist dialog, if "always append" is off.
- fixed feature that the first ID3 Tag is not displayed.
- m3u files now save again absolute paths except for the path
  where the m3u file is located.(This is exactly what you want)
- moved the ipc communication from the user home to /tmp. On
  AFS filesystems the bind call is not allowed. Many thanks
  to Marian Zurek for his bug report.
  

0.5.1a
- changed decoding of dropped files. Now songs with "#" in are played
- added mod file support (again) [executable is :mikmod-yaf]
- fixed mpeg 2.0 layer III bug. Many thanks to Christian Groth for his
  bug report.
- mono wav files were not played
- fixed vbr header detection (again)
- fixed a bug in the IPC mechanism. If you send new files over IPC
  and close kmpg it was possible that kmpg didn't terminate corretly.
  Many thanks to "J" for his bug report.


0.5.0d
- changes for correct NAS lib detection.
- cleanup in mimelinks. kmpg now installs all mimelinks under 
  x-kmpg-<type>.kdelnk where type is of mp1,mp2,mp3,m3u or wav
- compressed skins tgz, tar.gz., bz2, zip files can now be loaded
  directly. Note: XPM files are loaded very slowly by QT
- skins are only reloaded if the path has changed.
- removed flicker in winamp skin sliders


0.5.0c
- default skin changed from kde to winamp
- Network Audio Support (NAS). NAS plays sounds on all newer NCD XTerminals.
  You must install the NAS client library :
  * nas-1.2p5-3.i386.rpm
  * nas-devel-1.2p5-3.i386.rpm
  and then recompile kmpg.(Dont forget an /sbin/ldconfig)
- added configuration dialog for NAS.
- internal test release


0.5.0b
- segfault if last opened song was a directory.(fixed)
- now loads m3u/M3U mp3/MP3
- dropping of uppercase M3U
- file open dialog can now add directories
- Makefile for translations now includes all necessary directories
- german translation 
- yaflib (not kmpg!) compiles with qt2.00

0.5.0a
- new: help file for compiler errors.(*read it*)
- compile time errors on FreeBSD and SuSe fixed. Many thanks to
  Jonathan Frazier and Thomas Mueller for their bug reports.
- removed a few debug messages. 
- ./configure --disable-debug-output removes all of them
- fight with automake: kmpg should compile with automake 1.3.
  (it assumes --disable-sleep with automake 1.3)


0.5.0pre1
- beta test
- smaller bugfixes
- solaris port
- on compile time you can set:
  ./configure --disable-sleep
  This fills the buffer as fast as possible, but obviously needs
  more cpu. Use this switch if you never want skips in music.
- fixed wrong seek position in vbr files


0.4.4d
- configuration dialog for winamp skins. Drop the directoy with
  the skin (not the files in it) with kfm into the dialog.
- remaining UI elements for winamp skins
- songs in playlist can be dragged up,down
- put all pthread includes at the first position, maybe this is
  helpfull for *BSD

0.4.4c
- internal test release
- fixed mixer bug
- added wavfilewriter. Maybe we can find out more about the "clicks"
  under FreeBSD with it.
- added extension class. wav's for tplay mp3 for splay.
- more configuration added to the wavwriter.
- added (ugly) icons for layer1-3.Mimetypes for wav files.
- added config to force a special decoder. Now you can play wavs
  with the mp3 decoder. Don't worry. The GUI _never_ crashes if
  the decoder cannot handle the input.


0.4.4b
- added config dialog for audiodevice.
- audiodevice can close itself.
- finetunig in autorestart(tm).
- audioDevice config dialog. Usefull for shoutcast, when the audiodevice
  is not correctly initialised
- added openURL dialog
- started with a port of cdparanoia
- used the fix_fft code from x11amp to improve the analyser.(right click)
  Fix_fft does not look very different from the old, but now that it is 
  in the source I will let it there. For more infomation about x11amp
  look at www.x11amp.org.



0.4.4a
- streams which are opened and playing are "paused" if bufferunderruns
  occur.
- predecoding+bufferfills in paused streams.
- further stresstesting with mutilple instances.always worked without
  "clicks" in the mixer.Sometimes buffered pcm data is redirected
  to the garbagecollector. This means: If the internal buffer is
  removed but there is data buffered in the mixer, we store
  the data until the mixer frees the memory.
- the status of "playing" now means: buffer is filled with data
- stresstest with check in/out under heavy traffic. no deadlocks.

  

0.4.4
- internal release for kjukebox
- shoutcast support added to splay.Sometimes the frequency is not
  correct, because of an invalid sync in the mp3 header(but it's rare).
  If you have trouble with this ->EMAIL
- played /usr/lib/* with splay. Sounds terrible, but did never
  crashed the GUI. Ok seems crashrecovery works very stable now.
 

0.4.3e
- ok. there was a small misunderstanding how events are passed in qt.
- added global eventqueue with a new qt eventID
- more abstraction to the event system
- chrashrecovery should now _really_ works always (my stresstest killed
  the decoder a few thousand times and it always recoverd)
- removed a few memory leaks.
- the gui should now never crash because of buggy mp3s
- many other changes in the yaf lib


0.4.3d
- localisation support added
- VBR support in GUI
- incompatible change to splay-yaf decoder. You need the newest version,
  or the decoder crashes.
- video example works again
- stresstesting:
     * removed the threaded buffer, it segfaults in some situations
     * removed fast seek because it looses the sync in some situations
- found a bug in splay.
    * enabled threaded buffer again :-)
    * stresstests with fast seek passed (only layerIII of course)


0.4.3c
- library code cleanup. Better handling of video/audio/info streams
- gui code code cleanup. kmpg now has a clean gui plugin interface
- started winamp 1.x/2.x skin support
- improved kmpg gui. (urgs, still ugly)
- second spectrum analyser algorithm added
- "play last file on open dialog"
- "seek on pause" and "play on open-switch" added for kjukebox
- VBR support in decoder



0.4.3b
- changes for FreeBSD port. Many thanks to Sebestyen Zolta for his patch.
- minor bugfixes
- wav player (experimental). The wav player is from eMusic.
  eMusic is an mp3 player by Isaac Richards <ijr@po.cwru.edu>.
  kmpg's interface originally comes from this player.  
- splay decoder now uses a threaded buffer, which makes the decoder very
  cpu friendly. (load says: 0.1%)
- "fast seek" support added (experimental).
- better handling of variable encoded mp3, but still not clean VBR handling.
- source tree restructured
  


0.4.3a
- bugfix: compilationproblem in playlistOperation.cpp.
  Many thanks to Matthias Kilian for his patch.
- examples didn't work(fixed)



0.4.3
- Dropping of directories. Many thanks to Crispin Murphy for his patch.
- Translation from Windows backslash to unix slash. Many thanks to
  Michael Vogt for his patch.
- kmpg no longer writes the complete path in the playlists.



0.4.2c
- updated automake tools
- fixed a bug: The mixer drops under some circumstances one pcm frame
- now uses kdoc for html dokumentation "make kdoc"
- significant improvements in the kmpg-doc package
- yet another change to the mixer. Someday it will work without "clicks"
  now "stop" message clear the corresponding inputcache.
- nice dialogbox if no ipc handle avaiable


0.4.2b
- 0.4.2a wasn't good.



0.4.2a
- Bugfix. kmpg plays the last few micoseconds from the previous
  song, if there were multiple instaces running. (fixed)
- A player instance only removes the playlist ipc handle if
  it is closed and _owns_ the ipc handle.(It sets it to NULL)
- You now have in the ipc dialog a button "get IPC handle"

  

0.4.2

- thi2 is a code cleanup release.
- changes in the library
- removed "kmpgMixer" from the distribution



0.4.1c
- removed the kmpgMixer. kmpg now starts instances. Mixing is turned
  on only if needed (>= 2 instances, no cpu cycles wasted)
- implementation of a garbagecollector.


0.4.1b
- bugfix for locked Memory when jumped with mixer support
- bugfix when exit() with mixer support
- workaround for byte-counting over stream. You may drop 8192 bytes
  at the end of the song. (This needs a clean solution, which is not
  trivial)
- removed metaPlayer class out of the library. The class overcomplicated
  the handling of devices. This leads to significant changes in
  al  parts, but now the source is easier to understand
- updated the example section



0.4.1a
- lightning fast new mixer(tm). This mixer is _really_ fast. When my old
  algorithm needed 60MHz to mix two stream to a poor
  quality this algorithm needs less than 15 MHz for an
  _excellent_ quality. Many thanks to Rainer Maximini for his patch.
- file lock in tag Editor removed(prevents from unmounting a cd when
  tagEditor is opened)
- after ipc the parent does not close the socket.This leaves an open
  socket for each ipc request.(fixed)
- mp3 which have a corrupted header are marked as "corrupt" in playlist
  eg: zero length. Many thanks to Crispin Murphy for his bug reports.
- added "names" to "playlist" dialog



0.4.1
- esd support (tested version: 0.2.4) build with:
  ./configure --with-sound-type=esd



0.4.0c
- added repeat/shuffle play
- added Frequency stereo/mono SampleSpeed



0.4.0b
- Alpha port. Many thanks to: Katharina Becker and Jose Pedro Sousa do Amaral
- balance support (internal changes in the yaf-stream classes, code cleanup)
- external mixer starter
- ID3 tag editor. 
  Kmpg uses parts of kmp3te the id3 tag editor by Antoine Laydier (smf@mail.dotcom.fr)
  For more information about kmp3te look at: 
  http://perso.wanadoo.fr/smf/
- songs dropped on the playlist are inserted at the mouse pointer position
- configuration dialog for the playlist Editor (access with right click on
  the songlist)
- updated the yaf-documentation a bit (more READMEs, pointers to the authors
  of used software,...)

  


0.4.0a

- remote playlist handling over IPC. (This means: child instances
  send their command line parameters to the already running parent)
- added ID3 Tags. The configuration dialog is (partially) taken from
  kmp3, another KDE mp3 player by Cajus Pollmeier and Antoine Laydier.
  For more information on kmp3 look at: 
  http://elon05.mfh-iserlohn.de/Pollmeier/kmp3
  (The dialog can be accessed with the right mouse click on the song display)
- added configuration dialog for the time device. If you ever
  wanted to get the time in hex format you can do it.
- added Buffersize device.
- mixer now can handle statusmessage. (no more blocking of stream if a single
  stream stops)


0.4.0

- this version uses the eMusic interface and the splay mp3 decoder.
  EMusic is a mp3 player by Isaac Richards for the enlightenment 
  window manager.
  For more information on eMusic look at:
  http://www.icom.net/~smelecat/emp3/index.htm


0.4.0pre3
- Makefile changes in example0-example2 (Francois-Xavier Duranceau)
- FreeBSD port (many thanks to: Memphisto)
- minor code cleanups
- memory leak fixed
- removed the last bugs from the playlist
- crash protection (tm) + autorestart (tm) for buggy mp3's (tm)


0.4.0pre2:

- Makefiles changes for Debian 2.0 port. (Michael Vogt)
- significant improvements in the eMusic interface 
- removed constants from pthread_xxx functions. This should be more
  portable.
- improved plugin support.
- removed long_options, because they are non posix



0.4.0pre1:

* yaf library
  -pause bug fixed (streamStates != threadStates)
  -added sound architecture interface (HP,IRIX,BeOs,..) only Linux tested
  -hardware volume

* kmpg
  -small playlist bug fixed
  -help dialog updated



981201:

This version is a pre beta.If there are no bug reports this
version becomes kmpg-0.4.0.


* changes in the yaf library:
  -moved infoDevice,timerDevice,statusDevice to streamInfoDevice
  -clean implementation of a GUI dependend EventQueue 
  -clean implementation of GUI to thread signals
  -many name changes and other code cleanup
  -less QT depend
  -added documentation for the frontend/* classes
   Note: The doc++ tool has bug. Sometimes it merges
         different classes into one huge .html file.
  -incompatible changes to yaf protcol.


* changes in the kmpg gui: 
  - "jump" added to gui
  - playlist
  - autoplay of given songname
  - changed the spectrum algorithmus a bit.
    Now it looks nicer, but still not like in winamp.
  - directory structure changed: Moved kmpg special source code
    to a "libkmpg" directory.  




981123 :

* full automake support (make install should work now)
* started video support.
  This is very exerimental. 
  It only works with small icons (gif,xpm) not bigger than 30 pixel.
  These icons are scrolled from right to left to simulate a video
  stream.
  If you use bigger icons your machine may crash. (tested)
  Interested
  
    cd lib/widgetlib/widgetspecial/examples/example2

* started with the work for a sequencer. (kave projekt)

  http://www.xf-de.org/kave/
  
  (they changed the name)

 
