summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog18
-rw-r--r--PKGBUILD10
-rw-r--r--README3
-rw-r--r--deadbeef.h2
-rw-r--r--main.c2
-rw-r--r--plugins/adplug/adplug-db.cpp4
-rw-r--r--plugins/mpgmad/mpgmad.c7
-rw-r--r--plugins/sndfile/sndfile.c12
-rw-r--r--web/index.html47
9 files changed, 82 insertions, 23 deletions
diff --git a/ChangeLog b/ChangeLog
index 0e51d804..95207794 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,13 +1,16 @@
version 0.3.2
all GTK+ UI code is now in plugin
+ improved main menu layout in GTK UI
numerous memory and cpu optimizations
fully editable/scriptable columns with sorting
native look and feel of playlist widget
- selection is synchronous between main window and search window
- plugins got GUI configuration
+ selection is synchronized between main window and search window
+ keyboard navigation in search window
+ plugins got basic GUI configuration
much smoother seekbar
compatible with more GTK theme engines
improved restore window geometry after minimizing to system tray
+ search window geometry is now saved and restored between sessions
flexible nowplaying querying support via command line
ALSA code moved to plugin
new "nullout" output plugin - good for testing, and as basis for new plugins
@@ -20,20 +23,15 @@ version 0.3.2
vtx plugin using libayemu
adplug plugin - cmf, rol, hsc, etc (including adlib S3Ms)
fixed cuesheet support in mp3 and ogg plugins
- fixed building for i686 architectures w/o sse2 support
- fixed sse2 code issues in ape plugin
- ported 24-bit ape support from rockbox
+ fixed sse2 issues on i686 architecture
+ added 24-bit ape support (thanks to Rockbox project)
added support for custom scrobbler url to last.fm plugin (e.g. libre.fm)
added Play Queue funtionality to playlist (context menu)
- fixed lots of bugs in command line processing
- improved main menu in GTK UI
added average/approximate bitrate display to statusbar
new "cursor follows playback" feature
new "stop after current track" feature
- keyboard navigation in search window
- search window geometry is now saved and restored between sessions
.dbpl extension is auto-added when saving playlist
- better handling of http streams
+ improved robustness in http code (handling connection problems, etc)
version 0.3.1
improved header widget drawing and gtkengines compatibility
diff --git a/PKGBUILD b/PKGBUILD
index 72e98144..cdca004c 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,18 +1,18 @@
# Maintainer: Alexey Yakovenko <waker@users.sourceforge.net>
pkgname=deadbeef
-pkgver=0.3.1
+pkgver=0.3.2
pkgrel=1
-pkgdesc="mp3/ogg/flac/ape/sid/mod/nsf music player based on GTK2"
+pkgdesc="mp3/ogg/flac/ape/sid/mod/nsf/m4a/mpc/shn music player based on GTK2"
arch=(i686 x86_64)
url="http://deadbeef.sourceforge.net"
license=('GPL2')
-makedepends=('gtk2', 'libsamplerate', 'libvorbis', 'libmad', 'flac', 'curl', 'alsa-lib', 'wavpack', 'libsndfile', 'libcdio')
+makedepends=('gtk2', 'libsamplerate', 'libvorbis', 'libmad', 'flac', 'curl', 'alsa-lib', 'wavpack', 'libsndfile', 'libcdio', 'ffmpeg')
depends=('gtk2' 'libsamplerate' 'alsa-lib')
-optdepends=('libvorbis: ogg vorbis playback', 'libmad: mp1/2/3 playback', 'flac: flac playback', 'curl: lastfm scrobbler, shoutcast, icecast, podcast support', 'wavpack: wv playback', 'libsndfile: wav playback', "libcdio: audio cd playback")
+optdepends=('libvorbis: ogg vorbis playback', 'libmad: mp1/2/3 playback', 'flac: flac playback', 'curl: lastfm scrobbler, shoutcast, icecast, podcast support', 'wavpack: wv playback', 'libsndfile: wav playback', "libcdio: audio cd playback", "ffmpeg: for aac, mpc, shn, aa3, oma, ac3, etc")
makedepends=('pkgconfig')
source=(http://downloads.sourceforge.net/project/$pkgname/$pkgname-$pkgver.tar.gz)
-md5sums=('8274c05fb20dbb244a2b59092504b6fc')
+md5sums=('85a9a63dd507dec5b3070551107aaf17')
build() {
cd $srcdir/$pkgname-$pkgver
diff --git a/README b/README
index c9cb5e7c..911ba2bd 100644
--- a/README
+++ b/README
@@ -3,7 +3,7 @@ dependencies for player core - includes support for sid, tracker music and chipt
libsamplerate
alsa-lib
-optional dependencies
+optional/build dependencies
libvorbis: for ogg vorbis plugin
libcurl >= 7.10: for last.fm and vfs_curl (shoutcast/icecast) plugins
libmad: for mpgmad plugin (mpeg1,2 layers1,2,3)
@@ -11,6 +11,7 @@ optional dependencies
wavpack: for wavpack plugin
libsndfile: for sndfile plugin
libcdio: for cd audio plugin
+ ffmpeg: for ffmpeg plugin
if you want to build from git - install autotools, and run autoreconf
diff --git a/deadbeef.h b/deadbeef.h
index 066abd35..d9c816f0 100644
--- a/deadbeef.h
+++ b/deadbeef.h
@@ -61,7 +61,7 @@ extern "C" {
// 0.1 -- deadbeef-0.2.0
#define DB_API_VERSION_MAJOR 0
-#define DB_API_VERSION_MINOR 4
+#define DB_API_VERSION_MINOR 5
#define DB_PLUGIN_SET_API_VERSION\
.plugin.api_vmajor = DB_API_VERSION_MAJOR,\
diff --git a/main.c b/main.c
index 83c150fa..d05851a6 100644
--- a/main.c
+++ b/main.c
@@ -140,7 +140,7 @@ server_exec_command_line (const char *cmdline, int len, char *sendback, int sbsi
else {
char out[2048];
playItem_t *curr = streamer_get_playing_track ();
- DB_decoder_t *dec = streamer_get_current_decoder ();
+ DB_fileinfo_t *dec = streamer_get_current_decoder ();
if (curr && dec) {
pl_format_title (curr, out, sizeof (out), -1, parg);
}
diff --git a/plugins/adplug/adplug-db.cpp b/plugins/adplug/adplug-db.cpp
index ba95739f..6d6cb35c 100644
--- a/plugins/adplug/adplug-db.cpp
+++ b/plugins/adplug/adplug-db.cpp
@@ -60,7 +60,7 @@ adplug_init (DB_playItem_t *it) {
decoder = CAdPlug::factory (it->fname, opl, CAdPlug::players);
if (!decoder) {
trace ("adplug: failed to open %s\n", it->fname);
- return NULL;
+ return -1;
}
subsong = it->tracknum;
@@ -75,7 +75,7 @@ adplug_init (DB_playItem_t *it) {
adplug_plugin.info.samplerate = samplerate;
adplug_plugin.info.readpos = 0;
-// trace ("adplug_init ok (duration=%f, totalsamples=%d)\n", deadbeef->pl_get_item_duration (it), totalsamples);
+ trace ("adplug_init ok (duration=%f, totalsamples=%d)\n", deadbeef->pl_get_item_duration (it), totalsamples);
return 0;
}
diff --git a/plugins/mpgmad/mpgmad.c b/plugins/mpgmad/mpgmad.c
index aca849a7..b954d39e 100644
--- a/plugins/mpgmad/mpgmad.c
+++ b/plugins/mpgmad/mpgmad.c
@@ -28,6 +28,9 @@
#define min(x,y) ((x)<(y)?(x):(y))
#define max(x,y) ((x)>(y)?(x):(y))
+#define likely(x) __builtin_expect((x),1)
+#define unlikely(x) __builtin_expect((x),0)
+
static DB_decoder_t plugin;
static DB_functions_t *deadbeef;
@@ -667,6 +670,10 @@ MadFixedToFloat (mad_fixed_t Fixed) {
static int
cmp3_decode_cut (mpgmad_info_t *info, int framesize) {
if (info->buffer.duration >= 0) {
+ if (unlikely (!info->buffer.channels || info->buffer.channels > 2)) {
+ trace ("mpgmad: got frame with invalid number of channels (%d)\n", info->buffer.channels);
+ return 1;
+ }
if (info->buffer.currentsample + info->buffer.readsize / (framesize * info->buffer.channels) > info->buffer.endsample) {
int sz = (info->buffer.endsample - info->buffer.currentsample + 1) * framesize * info->buffer.channels;
trace ("size truncated to %d bytes, cursample=%d, endsample=%d, totalsamples=%d\n", info->buffer.readsize, info->buffer.currentsample, info->buffer.endsample, info->buffer.totalsamples);
diff --git a/plugins/sndfile/sndfile.c b/plugins/sndfile/sndfile.c
index 72864c56..cbfbeaf8 100644
--- a/plugins/sndfile/sndfile.c
+++ b/plugins/sndfile/sndfile.c
@@ -62,7 +62,11 @@ sf_vfs_write (const void *ptr, sf_count_t count, void *user_data) {
static sf_count_t
sf_vfs_seek (sf_count_t offset, int whence, void *user_data) {
sndfilectx_t *ctx = user_data;
- return deadbeef->fseek (ctx->file, offset, whence);
+ int ret = deadbeef->fseek (ctx->file, offset, whence);
+ if (!ret) {
+ return offset;
+ }
+ return -1;
}
static sf_count_t
@@ -174,7 +178,11 @@ sndfile_read_float32 (char *bytes, int size) {
static int
sndfile_seek_sample (int sample) {
- sfctx.currentsample = sf_seek (sfctx.ctx, sample + sfctx.startsample, SEEK_SET);
+ int ret = sf_seek (sfctx.ctx, sample + sfctx.startsample, SEEK_SET);
+ if (ret < 0) {
+ return -1;
+ }
+ sfctx.currentsample = ret;
plugin.info.readpos = (float)(sfctx.currentsample - sfctx.startsample) / plugin.info.samplerate;
return 0;
}
diff --git a/web/index.html b/web/index.html
index 2863a8ee..50c63a61 100644
--- a/web/index.html
+++ b/web/index.html
@@ -49,6 +49,48 @@
<h1 id="news">News</h1>
+<h2>release 0.3.2 is out</h2>
+<div class="post">
+ <p class="date">2010/01/12</p>
+ <p><a href="#download">get it!</a></p>
+ <p>Changelog since 0.3.1</p>
+ <ul>
+ <li>all GTK+ UI code is now in plugin</li>
+ <li>improved main menu layout in GTK UI</li>
+ <li>numerous memory and cpu optimizations</li>
+ <li>fully editable/scriptable columns with sorting</li>
+ <li>native look and feel of playlist widget</li>
+ <li>selection is synchronized between main window and search window</li>
+ <li>keyboard navigation in search window</li>
+ <li>plugins got basic GUI configuration</li>
+ <li>much smoother seekbar</li>
+ <li>compatible with more GTK theme engines</li>
+ <li>improved restore window geometry after minimizing to system tray</li>
+ <li>search window geometry is now saved and restored between sessions</li>
+ <li>flexible nowplaying querying support via command line</li>
+ <li>ALSA code moved to plugin</li>
+ <li>new "nullout" output plugin - good for testing, and as basis for new plugins</li>
+ <li>added template .c file (with comments) for making new decoder plugins</li>
+ <li>updated id3v2 and apev2 parsers to support more metadata types</li>
+ <li>id3v2.2 parser now supports unsynchronization</li>
+ <li>metadata viewer accessible from context menu</li>
+ <li>flac plugin now plays "oga" files (flac in ogg container)</li>
+ <li>ffmpeg plugin, adds formats: m4a (aac,alac), mpc/mp+/mpp, wma, shn, oma, ac3, vqf</li>
+ <li>vtx plugin using libayemu</li>
+ <li>adplug plugin - cmf, rol, hsc, etc (including adlib S3Ms)</li>
+ <li>fixed cuesheet support in mp3 and ogg plugins</li>
+ <li>fixed sse2 issues on i686 architecture</li>
+ <li>added 24-bit ape support (thanks to Rockbox project)</li>
+ <li>added support for custom scrobbler url to last.fm plugin (e.g. libre.fm)</li>
+ <li>added Play Queue funtionality to playlist (context menu)</li>
+ <li>added average/approximate bitrate display to statusbar</li>
+ <li>new "cursor follows playback" feature</li>
+ <li>new "stop after current track" feature</li>
+ <li>.dbpl extension is auto-added when saving playlist</li>
+ <li>improved robustness in http code (handling connection problems, etc)</li>
+ </ul>
+</div>
+
<h2>release 0.3.1 is out</h2>
<div class="post">
<p class="date">2009/11/29</p>
@@ -346,9 +388,12 @@ implemented basic session management, window size/position, volume, playmode are
</pre>
<h1 id="download">Download</h1>
-<h2>Latest version 0.3.1:</h2>
+<h2>Latest version 0.3.2:</h2>
<p>official Arch Linux PKGBUILD: <a href="http://aur.archlinux.org/packages.php?ID=29497">here</a></p>
<p>if you have yaourt, you can simply do yaourt -S deadbeef</p>
+<p>source code for version 0.3.2 <a href="http://sourceforge.net/projects/deadbeef/files/deadbeef-0.3.2.tar.gz/download">deadbeef-0.3.2.tar.gz</a></p>
+<p>or <a href="http://sourceforge.net/projects/deadbeef/files/">browse all files</a></p>
+<h2>version 0.3.1:</h2>
<p>source code for version 0.3.1 <a href="http://sourceforge.net/projects/deadbeef/files/deadbeef-0.3.1.tar.gz/download">deadbeef-0.3.1.tar.gz</a></p>
<p>or <a href="http://sourceforge.net/projects/deadbeef/files/">browse all files</a></p>
<p><b>unsupported</b> live gentoo ebuild from <a href="mailto:tonn.post@gmail.com">tonn</a>: <a href="http://sourceforge.net/projects/deadbeef/files/deadbeef-9999.ebuild/download">deadbeef-9999.ebuild</a></p>