Package: gst-plugins0.8
Version: 0.8.11-2
Severity: wishlist
Hi,
please consider adding wavpack support, now that wavpack is in Debian.
Currently the wavpack has a bug on powerpc for which I'll get a fix up
asap, maybe already this evening.
The wavpack plugin also needs one patch to fix
http://bugzilla.gnome.org/show_bug.cgi?id=317774
I've attached the patch, it's from gst cvs
Thanks and bye
--- ext/wavpack/gstwavpackdec.c 2005/06/09 17:21:00 1.1.2.3
+++ ext/wavpack/gstwavpackdec.c 2005/11/11 17:23:28 1.1.2.4
@@ -117,10 +117,6 @@
gst_pad_set_explicit_caps (wavpackdec->srcpad, srccaps);
- // blocks are usually 0.5 seconds long, assume that's always the case for now
- wavpackdec->decodebuf =
- (int32_t *) g_malloc ((wavpackdec->samplerate / 2) *
- wavpackdec->channels * sizeof (int32_t));
return GST_PAD_LINK_OK;
}
@@ -236,6 +232,7 @@
gst_wavpack_dec_loop);
wavpackdec->decodebuf = NULL;
+ wavpackdec->decodebuf_size = 0;
wavpackdec->stream = (WavpackStream *) g_malloc0 (sizeof (WavpackStream));
wavpackdec->context = (WavpackContext *) g_malloc0 (sizeof (WavpackContext));
}
@@ -246,6 +243,7 @@
{
WavpackContext *context = wavpackdec->context;
WavpackStream *stream = wavpackdec->stream;
+ guint buffer_size;
memset (context, 0, sizeof (context));
@@ -267,6 +265,14 @@
context->wvc_flag = FALSE;
}
+ buffer_size =
+ stream->wphdr.block_samples * wavpackdec->channels * sizeof (int32_t);
+ if (wavpackdec->decodebuf_size < buffer_size) {
+ wavpackdec->decodebuf =
+ (int32_t *) g_realloc (wavpackdec->decodebuf, buffer_size);
+ wavpackdec->decodebuf_size = buffer_size;
+ }
+
unpack_init (context);
}
--- ext/wavpack/gstwavpackdec.h 2005/06/09 17:21:00 1.1.2.1
+++ ext/wavpack/gstwavpackdec.h 2005/11/11 17:23:28 1.1.2.2
@@ -53,6 +53,7 @@
WavpackContext *context;
int32_t *decodebuf;
+ guint decodebuf_size;
WavpackStream *stream;