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.
fixed the "play next on end" bug
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 README´s
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 a bit increased
speed and better audio video sync.
removed the last features. :-)
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 README´s
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.
Version 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.
Version 0.5.0d
changes for correct NAS lib detection.
cleanup in mimelinks. kmpg now installs all mimelinks under
x-kmpg-.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
Version 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
Version 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
Version 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)
Version 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
Version 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
Version 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.
Version 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
Version 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.
Version 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.
Version 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
Version 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)
Version 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
Version 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 .
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
Version 0.4.3a
bugfix: compilationproblem in playlistOperation.cpp.
Many thanks to Matthias Kilian for his patch.
examples didn't work(fixed)
Version 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.
Version 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
Version 0.4.2b
0.4.2a wasn't good.
Version 0.4.2a
Fixed a stupid bug. If you had more than one instance running
and then swich back to one player it always plays the last
microseconds of the last song. The reson is that the
cache was not cleared if exactly one kmpg instance is running.
A player instance only removes the playlist ipc handle if
it is closed and _owns_ the ips handle.(It sets it to NULL)
You now have in the ipc dialog a button "get IPC handle"
Version 0.4.2
This is a code cleanup/bugfix release.
changes in the library
removed "kmpgMixer" from the distribution
Version 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.
Version 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
all parts, but now the source is easier to understand
updated the example section
Version 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
Version 0.4.1
esd support (tested version: 0.2.4) build with:
./configure --with-sound-type=esd
Version 0.4.0c
added repeat/shuffle play
added Frequency stereo/mono SampleSpeed
Version 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)
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,...)
Version 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.
(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)
Version 0.4.0, released 8.12.1998
complete rewrite
this version uses the
eMusic
interface and the splay mp3 decoder. EMusic is a mp3
player by Isaac Richards for the enlightenment window manager
Version 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)
Version 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
Version 0.3.1, released xxxxxxxx
Files can now be dropped directly on the playlist editor ( Martin Mueller
)
Added the possibilty to run kmpg with higher priority, if installed setuid
root ( Martin Mueller )
Replaced the old-style filetype definitions with mimetype definitions now
used by kfm
Playlist files can now be dropped on the player
Version 0.3.0, released 20 Jul 1997
Decided to use mpg123 instead of maplay for the decoder. This makes the
player half as CPU demanding and also adds downsampling and downmixing
options. In addition to this mpg123 also supports MPEG2 and MPEG2.5 (partially)
which the maplay decoder doesn't. This also means that the player is now
called kmpg instead of kmaplay
Total redesign of interface, the interface is now smaller than before but
still presents a lot more information.
Changes to the preference dialog to allow the user to fiddle with all the
options of mpg123. All changes can be applied while playing a stream.
Decided to use three levels in the version numbers. 0.3.0 instead of just
0.3
Introduced a lot of bugs when integrating mpg123 with the interface :-)
Restructured the documentation into a handbook format.
Enhanced the playlist editor. Can now save/load/edit playlists.
Verison 0.2
Total rewrite of soundcard routines, now uses two processes with a shared
memory segment. The buffer is fixed at 176400 bytes (1 sec at 44.1Khz 16
bit, stereo). This means the player is less sensitive to cpu load. The
code is still pretty messy, will clean it up in the next release.
Fixed a nasty bug which caused segfaults in KMaplay::KMaplay.
Added a preferences dialog.
Added a stream information dialog.
Introduced a lot of bugs :-)
Scrapped the toolbar and use a menubar instead.
KMaplay is now almost 100% KDE compliant
Version 0.1
First release by Bjarni Ivarsson (Bjarni.Ivarsson@swipnet.se)