Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset),
(gst_wavpack_parse_src_query), (gst_wavpack_parse_create_src_pad):
Use G_GINT64_CONSTANT, this fixes the duration query on files without
known length.
Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c:
(gst_wavpack_parse_index_entry_free):
Always use GSlice as we actually depend on GLib 2.12 already.
Original commit message from CVS:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init):
* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_base_init):
* ext/wavpack/gstwavpackparse.c:
(gst_wavpack_parse_index_entry_new),
(gst_wavpack_parse_index_entry_free),
(gst_wavpack_parse_base_init),
(gst_wavpack_parse_index_append_entry), (gst_wavpack_parse_reset):
Use GSlice for allocating index entries and use
gst_element_class_set_details_simple().
Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_src_query),
(gst_wavpack_parse_create_src_pad):
* ext/wavpack/gstwavpackparse.h:
Always report the duration if we know it in push mode and don't
return 0 just to make totem believe we can't seek in push mode.
Newer totem version use the SEEKING query which properly reports
if we can seek or not.
Original commit message from CVS:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain):
* ext/wavpack/gstwavpackparse.c:
(gst_wavpack_parse_create_src_pad):
Workaround the non-existance of WavpackGetChannelMask in Wavpack
versions below 4.40.0.
Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c:
(gst_wavpack_parse_index_get_last_entry),
(gst_wavpack_parse_index_get_entry_from_sample),
(gst_wavpack_parse_index_append_entry), (gst_wavpack_parse_reset),
(gst_wavpack_parse_scan_to_find_sample):
* ext/wavpack/gstwavpackparse.h:
Use a GSList for the GArray that is used like a list anyway.
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.
Original commit message from CVS:
* ext/wavpack/gstwavpack.c: (plugin_init):
Call bindtextdomain() to get localized strings.
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain):
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset),
(gst_wavpack_parse_handle_seek_event),
(gst_wavpack_parse_push_buffer), (gst_wavpack_parse_chain):
* ext/wavpack/gstwavpackparse.h:
Handle DISCONT buffers by correctly setting the DISCONT flag
on outgoing buffers when necessary.
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_handle_seek_event)
Send newsegment from the streaming thread.
Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c:
(gst_wavpack_parse_handle_seek_event):
Remove old workaround that was needed when seeking after the last
sample. With the fixed error handling this works now as expected
without pushing the last sample although it wasn't requested.
Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c:
(gst_wavpack_parse_handle_seek_event):
Handle segment seeks in the seek event handler, correctly work with
stop position == -1 and instead of stopping the task on seek just
pause it.
Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_pull_buffer),
(gst_wavpack_parse_create_src_pad),
(gst_wavpack_parse_resync_loop), (gst_wavpack_parse_loop),
(gst_wavpack_parse_chain):
Correctly handle errors, especially in the loop function. Before it
was easy to get the task paused but no error being posted on the bus.
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.
Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_plugin_init):
Revert last commit, preventing infinite plugging loops with ranks
is no clean solution and in general there's no reason why one wants
to parse framed wavpack data again.
Original commit message from CVS:
* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_push_block):
Send the new segment event in time format instead of bytes. This
allows "wavpackenc ! wavpackdec ! someaudiosink" pipelines.
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_plugin_init):
Accept framed and non-framed input, wavpackparse doesn't care. To
prevent "wavpackparse ! wavpackparse ! ..." pipelines lower the
rank of wavpackparse by one. This allows "wavpackenc ! wavpackparse !
..." pipelines.
Original commit message from CVS:
* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init),
(gst_wavpack_enc_init), (gst_wavpack_enc_chain),
(gst_wavpack_enc_rewrite_first_block):
* ext/wavpack/gstwavpackenc.h:
Put the write helpers into the GstWavpackEnc struct directly and not
as a pointer to save two small, but useless mallocs. This also makes
it possible to drop the finalize method.
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_push_buffer):
For consistency reasons also set GST_BUFFER_OFFSET_END on the outgoing
buffers the same way wavpackenc does it.
Original commit message from CVS:
* ext/wavpack/gstwavpack.c: (plugin_init):
* ext/wavpack/gstwavpackcommon.c:
Use a general wavpack debug category for common code.
* ext/wavpack/gstwavpackstreamreader.c:
(gst_wavpack_stream_reader_set_pos_abs),
(gst_wavpack_stream_reader_set_pos_rel),
(gst_wavpack_stream_reader_write_bytes):
Use the general wavpack debug category here too and add debug
output to the functions that should not be called at all by
the wavpack library.
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_plugin_init):
* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_plugin_init):
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_plugin_init):
Change debugging category names to conform to the conventions.
Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_src_query),
(gst_wavpack_parse_handle_seek_event),
(gst_wavpack_parse_create_src_pad):
Fix a off by one that leads to the duration reported as one
sample less than it is
Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_src_query):
Fix the SEEKING query. We can seek if we are in pull mode, not the
other way around. Also set the correct format in the seeking query and
handle the case where the headers are not read yet and we can't say
anything about our seeking capabilities.
Original commit message from CVS:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init):
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init):
Fix spelling in 2 places: It's called Wavpack, not WavePack.
Original commit message from CVS:
Patch by: Sebastian Dröge <slomo@circular-chaos.org>
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset),
(gst_wavpack_dec_init), (gst_wavpack_dec_change_state):
* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_base_init),
(gst_wavpack_enc_class_init), (gst_wavpack_enc_reset),
(gst_wavpack_enc_init), (gst_wavpack_enc_set_wp_config),
(gst_wavpack_enc_change_state):
* ext/wavpack/gstwavpackparse.c:
Some small clean-ups: use enums instead of hard-coded numbers,
const-ify element details, re-factor some code into _reset()
functions (#352605).
Original commit message from CVS:
* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_set_wp_config):
* ext/wavpack/gstwavpackparse.c:
(gst_wavpack_parse_create_src_pad):
* gst/nuvdemux/gstnuvdemux.c: (gst_nuv_demux_create_pads):
* tests/check/elements/wavpackparse.c: (wavpackparse_found_pad):
Activate pads before adding them to running element.
Original commit message from CVS:
Patch by: Sebastian Dröge <slomo at circular-chaos.org>
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_post_tags),
(gst_wavpack_dec_chain):
Post audio codec and average bitrate tags on bus (#344472).
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init),
(gst_wavpack_parse_src_query):
Forward queries in other formats (BYTE format in particular)
upstream; add Sebastian to authors.
Original commit message from CVS:
* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_push_block):
Fix mem leak, send newsegment event on correction pad
as well (#352476).
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init):
Restore original author (on Sebastian's request).
* tests/check/Makefile.am:
* tests/check/gst-plugins-bad.supp:
Add (so far empty) suppression file for -bad. Remove
wavpackenc test from VALGRIND_TO_FIX now that the leak
is fixed.
Original commit message from CVS:
* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_init),
(gst_wavpack_enc_finalize), (gst_wavpack_enc_sink_set_caps),
(gst_wavpack_enc_set_wp_config), (gst_wavpack_enc_format_samples),
(gst_wavpack_enc_push_block), (gst_wavpack_enc_chain),
(gst_wavpack_enc_rewrite_first_block),
(gst_wavpack_enc_sink_event), (gst_wavpack_enc_change_state),
(gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property):
* ext/wavpack/gstwavpackenc.h:
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset),
(gst_wavpack_parse_src_query), (gst_wavpack_parse_src_event),
(gst_wavpack_parse_init), (gst_wavpack_parse_get_upstream_length),
(gst_wavpack_parse_loop):
More clean-ups: use shorter variable names to make code easier to
read; prefix structures we define with 'Gst' to make it clearer
where they come from.
Original commit message from CVS:
Based on patch by: Sebastian Dröge <slomo at circular-chaos.org>
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_sink_event),
(gst_wavpack_parse_get_upstream_length),
(gst_wavpack_parse_find_marker), (gst_wavpack_parse_resync_loop),
(gst_wavpack_parse_loop), (gst_wavpack_parse_resync_adapter):
Fix resyncing in push mode not stopping re-syncing at embedded
zeroes; skip garbage between frames in pull mode as well if
necessary; use gst_pad_query_peer_duration(); push EOS and
NEWSEGMENT event in right direction (#351659).
Original commit message from CVS:
Patch by: Sebastian Dröge <slomo at circular-chaos.org>
* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init):
* ext/wavpack/gstwavpackparse.c:
(gst_wavpack_parse_resync_adapter), (gst_wavpack_parse_chain):
In push mode, re-sync to next wavpack header if sync is lost
(#351557). Also use hyphens instead of underscores in
GObject property names.
Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_class_init),
(gst_wavpack_parse_reset), (gst_wavpack_parse_get_src_query_types),
(gst_wavpack_parse_src_query),
(gst_wavpack_parse_handle_seek_event),
(gst_wavpack_parse_sink_event), (gst_wavpack_parse_init),
(gst_wavpack_parse_create_src_pad),
(gst_wavpack_parse_push_buffer), (gst_wavpack_parse_loop),
(gst_wavpack_parse_chain), (gst_wavpack_parse_sink_activate),
(gst_wavpack_parse_sink_activate_pull):
* ext/wavpack/gstwavpackparse.h:
Patch by: Sebastian Dröge <slomo at circular-chaos.org>
Make wavpackparse also work in push-mode (not seekable yet though);
some small clean-ups along the way; add support for SEEKING query
and query types function. (#351495).
Original commit message from CVS:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain):
Fix caps after previous change to byte order endianness.
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset),
(gst_wavpack_parse_sink_event), (gst_wavpack_parse_init),
(gst_wavpack_parse_loop):
* ext/wavpack/gstwavpackparse.h:
Queue incoming events if there's no source pad yet and
send them downstream later when the pad is there.
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).
Original commit message from CVS:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_link):
* ext/wavpack/gstwavpackparse.c:
Wavpack supports samplerates from 6-192kHz, fix pad template
caps (fixes#322973; patch by: gcocatre@gmail.com). Also
remove buffer-frames from caps, they are gone in 0.10.
Original commit message from CVS:
* ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_loop):
* ext/libmms/gstmms.c: (gst_mms_src_query), (gst_mms_create):
* ext/musepack/gstmusepackdec.c: (gst_musepackdec_src_query),
(gst_musepackdec_loop):
* ext/swfdec/gstswfdec.c: (gst_swfdec_video_link),
(gst_swfdec_src_query):
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_src_query):
GstObjects must be unref'ed with gst_object_unref() instead of
g_object_unref(), otherwise things break for GLib-2.6 users.