Commit graph

16 commits

Author SHA1 Message Date
Vladimir Menshakov
4de3ddad15 wavpackdec: Add floating point format support
This commit negotiate F32 audio format if MODE_FLOAT used in wavpack file.
Wavpack float mode is always in 32-bit IEEE format.

The following pipeline plays distorted audio if source file is encoded in float mode:
gst-launch-1.0 filesrc ... ! wavpackparse ! wavpackdec ! pulsesink

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/894>
2021-03-08 15:19:57 +02:00
Niels De Graef
4f4997a935 wavpack: Use G_DECLARE_FINAL_TYPE 2020-03-16 12:35:42 +01:00
Tim-Philipp Müller
230cf41cc9 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Mark Nauwelaerts
2f7d8f55a4 wavpackdec: port to 0.11 2012-03-05 13:44:21 +01:00
Mark Nauwelaerts
a5144cbba0 wavpackdec: adjust to audio format limitations
... which does not allow expressing arbitrary depth in a GstAudioFormat.

Also adjust unit test to modified behaviour.
2012-02-27 23:46:15 +01:00
Mark Nauwelaerts
004377b0b5 wavpackdec: port to audiodecoder 2012-02-27 23:46:03 +01:00
Sebastian Dröge
ded2cc6e39 ext/wavpack/: Add support for encoding, parsing and decoding multichannel files with up to 8 channels. This also impr...
Original commit message from CVS:
* ext/wavpack/gstwavpackcommon.c:
(gst_wavpack_get_default_channel_mask),
(gst_wavpack_set_channel_layout),
(gst_wavpack_get_default_channel_positions),
(gst_wavpack_get_channel_mask_from_positions),
(gst_wavpack_set_channel_mapping):
* ext/wavpack/gstwavpackcommon.h:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset),
(gst_wavpack_dec_sink_set_caps), (gst_wavpack_dec_chain):
* ext/wavpack/gstwavpackdec.h:
* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_reset),
(gst_wavpack_enc_init), (gst_wavpack_enc_sink_set_caps),
(gst_wavpack_enc_set_wp_config), (gst_wavpack_enc_push_block),
(gst_wavpack_enc_fix_channel_order), (gst_wavpack_enc_chain),
(gst_wavpack_enc_rewrite_first_block),
(gst_wavpack_enc_sink_event):
* ext/wavpack/gstwavpackenc.h:
* ext/wavpack/gstwavpackparse.c:
(gst_wavpack_parse_index_append_entry), (gst_wavpack_parse_reset),
(gst_wavpack_parse_scan_to_find_sample),
(gst_wavpack_parse_sink_event), (gst_wavpack_parse_create_src_pad),
(gst_wavpack_parse_push_buffer), (gst_wavpack_parse_loop):
* ext/wavpack/gstwavpackparse.h:
Add support for encoding, parsing and decoding multichannel
files with up to 8 channels. This also improves the robustness
of parsing quite a bit.
* ext/wavpack/gstwavpackstreamreader.c:
(gst_wavpack_stream_reader_read_bytes),
(gst_wavpack_stream_reader_get_pos),
(gst_wavpack_stream_reader_set_pos_abs),
(gst_wavpack_stream_reader_set_pos_rel),
(gst_wavpack_stream_reader_push_back_byte),
(gst_wavpack_stream_reader_get_length),
(gst_wavpack_stream_reader_can_seek),
(gst_wavpack_stream_reader_write_bytes):
Improve debugging.
2007-11-20 13:08:45 +00:00
Sebastian Dröge
e05417a077 ext/wavpack/: Improve discont handling by checking if the next Wavpack block has the expected, following block index.
Original commit message from CVS:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset),
(gst_wavpack_dec_chain):
* ext/wavpack/gstwavpackdec.h:
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset),
(gst_wavpack_parse_push_buffer):
* ext/wavpack/gstwavpackparse.h:
Improve discont handling by checking if the next Wavpack block has
the expected, following block index.
2007-06-09 15:33:32 +00:00
Sebastian Dröge
6d8e6c9bb0 ext/wavpack/: Don't play audioconvert. As wavpack wants/outputs all samples with width==32 and depth=[1,32] accept th...
Original commit message from CVS:
* 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.
2007-03-30 04:50:11 +00:00
Sebastian Dröge
d1c828f845 Add docs for wavpack elements (#352476).
Original commit message from CVS:
Patch by: Sebastian Dröge <slomo at circular-chaos.org>
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* docs/plugins/gst-plugins-bad-plugins.hierarchy:
* docs/plugins/inspect/plugin-wavpack.xml:
* ext/wavpack/gstwavpackdec.c:
* ext/wavpack/gstwavpackdec.h:
* ext/wavpack/gstwavpackenc.c:
* ext/wavpack/gstwavpackenc.h:
* ext/wavpack/gstwavpackparse.c:
* ext/wavpack/gstwavpackparse.h:
Add docs for wavpack elements (#352476).
2006-08-23 08:52:50 +00:00
Tim-Philipp Müller
1bcc754b02 ext/wavpack/gstwavpackdec.*: Output audio in native byte order (which is also how we get samples from wavpack); outpu...
Original commit message from CVS:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_init),
(gst_wavpack_dec_format_samples),
(gst_wavpack_dec_clip_outgoing_buffer), (gst_wavpack_dec_chain),
(gst_wavpack_dec_change_state):
* ext/wavpack/gstwavpackdec.h:
Output audio in native byte order (which is also how we get
samples from wavpack); output samples with 21-24 bit depth
with 32 bit width (makes things easier for us).
2006-07-18 16:47:25 +00:00
Tim-Philipp Müller
705d43314d ext/wavpack/gstwavpackdec.*: More clean-ups: remove most of the disfunctional correction pad stuff for now, if it eve...
Original commit message from CVS:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init),
(gst_wavpack_dec_class_init), (gst_wavpack_dec_init),
(gst_wavpack_dec_finalize), (gst_wavpack_dec_format_samples),
(gst_wavpack_dec_clip_outgoing_buffer), (gst_wavpack_dec_chain),
(gst_wavpack_dec_sink_event), (gst_wavpack_dec_change_state):
* ext/wavpack/gstwavpackdec.h:
More clean-ups: remove most of the disfunctional correction
pad stuff for now, if it ever gets implemented a lot of stuff
will have to be rewritten anyway; redo chain function, move
errors to end, error out instead of g_assert()ing. Also rename
overly long variable 'wavpackdec' to just 'dec'; miscellaneous
other small stuff.
2006-07-18 15:53:35 +00:00
Sebastian Dröge
72bc1ba4ba configure.ac: Check for wavpack version and define WAVPACK_OLD_API if necessary.
Original commit message from CVS:
Patch by: Sebastian Dröge <slomo at circular-chaos.org>
* configure.ac:
Check for wavpack version and define WAVPACK_OLD_API if
necessary.
* ext/wavpack/Makefile.am:
* ext/wavpack/gstwavpackcommon.c: (gst_wavpack_read_header),
(gst_wavpack_read_metadata):
* ext/wavpack/gstwavpackcommon.h:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init),
(gst_wavpack_dec_class_init), (gst_wavpack_dec_init),
(gst_wavpack_dec_finalize), (gst_wavpack_dec_format_samples),
(gst_wavpack_dec_clip_outgoing_buffer), (gst_wavpack_dec_chain),
(gst_wavpack_dec_sink_event), (gst_wavpack_dec_change_state),
(gst_wavpack_dec_request_new_pad), (gst_wavpack_dec_plugin_init):
* ext/wavpack/gstwavpackdec.h:
* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init),
(gst_wavpack_enc_init), (gst_wavpack_enc_finalize),
(gst_wavpack_enc_set_wp_config):
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init),
(gst_wavpack_parse_finalize), (gst_wavpack_parse_class_init),
(gst_wavpack_parse_index_get_entry_from_sample),
(gst_wavpack_parse_scan_to_find_sample),
(gst_wavpack_parse_handle_seek_event),
(gst_wavpack_parse_create_src_pad):
* ext/wavpack/gstwavpackstreamreader.c:
* ext/wavpack/gstwavpackstreamreader.h:
Port to new/official wavpack API, don't use API that was exported
in wavpack header files and in the lib but meant to be private, at
least not for recent wavpack versions; misc. 'cleanups' (#347443).
2006-07-18 14:08:06 +00:00
Stefan Kost
7174c10edf Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
Original commit message from CVS:
* ext/alsaspdif/alsaspdifsink.h:
* ext/amrwb/gstamrwbdec.h:
* ext/amrwb/gstamrwbenc.h:
* ext/amrwb/gstamrwbparse.h:
* ext/arts/gst_arts.h:
* ext/artsd/gstartsdsink.h:
* ext/audiofile/gstafparse.h:
* ext/audiofile/gstafsink.h:
* ext/audiofile/gstafsrc.h:
* ext/audioresample/gstaudioresample.h:
* ext/bz2/gstbz2dec.h:
* ext/bz2/gstbz2enc.h:
* ext/dirac/gstdiracdec.h:
* ext/directfb/dfbvideosink.h:
* ext/divx/gstdivxdec.h:
* ext/divx/gstdivxenc.h:
* ext/dts/gstdtsdec.h:
* ext/faac/gstfaac.h:
* ext/gsm/gstgsmdec.h:
* ext/gsm/gstgsmenc.h:
* ext/ivorbis/vorbisenc.h:
* ext/libfame/gstlibfame.h:
* ext/nas/nassink.h:
* ext/neon/gstneonhttpsrc.h:
* ext/polyp/polypsink.h:
* ext/sdl/sdlaudiosink.h:
* ext/sdl/sdlvideosink.h:
* ext/shout/gstshout.h:
* ext/snapshot/gstsnapshot.h:
* ext/sndfile/gstsf.h:
* ext/swfdec/gstswfdec.h:
* ext/tarkin/gsttarkindec.h:
* ext/tarkin/gsttarkinenc.h:
* ext/theora/theoradec.h:
* ext/wavpack/gstwavpackdec.h:
* ext/wavpack/gstwavpackparse.h:
* ext/xine/gstxine.h:
* ext/xvid/gstxviddec.h:
* ext/xvid/gstxvidenc.h:
* gst/cdxaparse/gstcdxaparse.h:
* gst/cdxaparse/gstcdxastrip.h:
* gst/colorspace/gstcolorspace.h:
* gst/festival/gstfestival.h:
* gst/freeze/gstfreeze.h:
* gst/gdp/gstgdpdepay.h:
* gst/gdp/gstgdppay.h:
* gst/modplug/gstmodplug.h:
* gst/mpeg1sys/gstmpeg1systemencode.h:
* gst/mpeg1videoparse/gstmp1videoparse.h:
* gst/mpeg2sub/gstmpeg2subt.h:
* gst/mpegaudioparse/gstmpegaudioparse.h:
* gst/multifilesink/gstmultifilesink.h:
* gst/overlay/gstoverlay.h:
* gst/playondemand/gstplayondemand.h:
* gst/qtdemux/qtdemux.h:
* gst/rtjpeg/gstrtjpegdec.h:
* gst/rtjpeg/gstrtjpegenc.h:
* gst/smooth/gstsmooth.h:
* gst/smoothwave/gstsmoothwave.h:
* gst/spectrum/gstspectrum.h:
* gst/speed/gstspeed.h:
* gst/stereo/gststereo.h:
* gst/switch/gstswitch.h:
* gst/tta/gstttadec.h:
* gst/tta/gstttaparse.h:
* gst/videodrop/gstvideodrop.h:
* gst/xingheader/gstxingmux.h:
* sys/directdraw/gstdirectdrawsink.h:
* sys/directsound/gstdirectsoundsink.h:
* sys/dxr3/dxr3audiosink.h:
* sys/dxr3/dxr3spusink.h:
* sys/dxr3/dxr3videosink.h:
* sys/qcam/gstqcamsrc.h:
* sys/vcd/vcdsrc.h:
Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass
2006-06-01 22:00:26 +00:00
Edgard Lima
7b85852951 Wavpack ported to 0.9. No support for correction file yet.
Original commit message from CVS:
Wavpack ported to 0.9. No support for correction file yet.
2005-11-25 19:58:19 +00:00
Thomas Vander Stichele
4fbab01946 ext/wavpack/: put back wavpack - still needs porting
Original commit message from CVS:
* ext/wavpack/gstwavpackcommon.h:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_link),
(gst_wavpack_dec_wvclink), (gst_wavpack_dec_get_type),
(gst_wavpack_dec_base_init), (gst_wavpack_dec_dispose),
(gst_wavpack_dec_class_init), (gst_wavpack_dec_src_query),
(gst_wavpack_dec_init), (gst_wavpack_dec_setup_context),
(gst_wavpack_dec_format_samples), (gst_wavpack_dec_loop),
(gst_wavpack_dec_plugin_init):
* ext/wavpack/gstwavpackdec.h:
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_get_type),
(gst_wavpack_parse_base_init), (gst_wavpack_parse_dispose),
(gst_wavpack_parse_class_init), (gst_wavpack_parse_src_query),
(gst_wavpack_parse_src_event), (find_header), (find_sample),
(gst_wavpack_parse_seek), (gst_wavpack_parse_init),
(gst_wavpack_parse_handle_event), (gst_wavpack_parse_loop),
(gst_wavpack_parse_change_state), (gst_wavpack_parse_plugin_init):
* ext/wavpack/gstwavpackparse.h:
put back wavpack - still needs porting
2005-11-25 18:15:51 +00:00