After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 421598 - [wavpack] Add support for non-8*n depths and don't play audioconvert
[wavpack] Add support for non-8*n depths and don't play audioconvert
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: 0.10.5
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-03-22 19:31 UTC by Sebastian Dröge (slomo)
Modified: 2007-03-30 04:51 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
wavpack-depths.diff (28.93 KB, patch)
2007-03-22 19:32 UTC, Sebastian Dröge (slomo)
committed Details | Review

Description Sebastian Dröge (slomo) 2007-03-22 19:31:42 UTC
Hi,
the attached patch removes the audioconvert functionality from the wavpack elements. Now all samples that are pushed in/out have width=32. As a side effect this allows support for non-8*n depths which is now also added.

Unfortunately this more or less depends on bug #421543 as now for example alsasink gets width==32 samples pushed in although it doesn't support those and wavpackenc can get width!=32 samples pushed in.

Bye
Comment 1 Sebastian Dröge (slomo) 2007-03-22 19:32:05 UTC
Created attachment 85130 [details] [review]
wavpack-depths.diff
Comment 2 Sebastian Dröge (slomo) 2007-03-30 04:51:25 UTC
Ok, committed with a workaround for bug #421543...

2007-03-30  Sebastian Dröge  <slomo@circular-chaos.org>

	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset),
	(gst_wavpack_dec_init), (gst_wavpack_dec_sink_set_caps),
	(gst_wavpack_dec_clip_outgoing_buffer),
	(gst_wavpack_dec_post_tags), (gst_wavpack_dec_chain):
	* ext/wavpack/gstwavpackdec.h:
	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_reset),
	(gst_wavpack_enc_sink_set_caps), (gst_wavpack_enc_set_wp_config),
	(gst_wavpack_enc_chain):
	* ext/wavpack/gstwavpackenc.h:
	* ext/wavpack/gstwavpackparse.c:
	Don't play audioconvert. As wavpack wants/outputs all samples with
	width==32 and depth=[1,32] accept this and let audioconvert convert
	to accepted formats instead of doing it in the element for n*8 depths.
	This also adds support for non-n*8 depths and prevents some useless
	memory allocations. Fixes #421598
	Also add a workaround for bug #421542 in wavpackenc for now...
	* tests/check/elements/wavpackdec.c: (GST_START_TEST):
	* tests/check/elements/wavpackenc.c: (GST_START_TEST):
	* tests/check/elements/wavpackparse.c: (GST_START_TEST):
	Consider the change above in the unit tests and test if the correct
	caps are accepted and set. Also check for GST_BUFFER_OFFSET_END in
	the wavpackparse unit test.

	* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_init),
	(gst_wavpack_dec_sink_set_caps):
	Set caps on the src pad as soon as possible.

	* ext/wavpack/gstwavpackdec.h:
	* ext/wavpack/gstwavpackcommon.h:
	* ext/wavpack/gstwavpackenc.h:
	* ext/wavpack/gstwavpackparse.h:
	Fix indention. gst-indent is now called by cicl.