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 352605 - [PLUGIN-MOVE] move wavpack to -good
[PLUGIN-MOVE] move wavpack to -good
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal blocker
: 0.10.5
Assigned To: Thomas Vander Stichele
GStreamer Maintainers
ready-to-move
Depends on:
Blocks:
 
 
Reported: 2006-08-23 21:50 UTC by Sebastian Dröge (slomo)
Modified: 2007-06-12 19:26 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
wavpack.diff (12.97 KB, patch)
2006-11-07 17:45 UTC, Sebastian Dröge (slomo)
committed Details | Review

Description Sebastian Dröge (slomo) 2006-08-23 21:50:28 UTC
Hi,
please move the wavpack plugin from -bad to -good. All the requirements from docs/random/moving-plugins should be fulfilled, only a sponsor and reviewer is needed (and it would be nice to have the patch to bug #344472 committed before).

Wavpack can go to -good as it is to Wavpack's author's and my best knowledge not patent-encumbered.

Below is what the author of Wavpack told me regarding patents some months ago.

Bye

-------------
This is a little more difficult question! You are right to say that just
about everything is patented, and so it's difficult to to much without
breaking some obscure, over-broad patent that could never be enforced.

I can say that I have intentionally avoided everything that I know to be
patented, like arithmetic coding or LWZ (although I just noticed that this
patent has expired). The techniques I use are simple variations on linear
prediction and Rice coding, which are certainly considered patent-free. I
obviously cannot guarantee that some patent will not someday be discovered
that WavPack violates, but I can say that no suggestion has ever been made
to me that WavPack violates any patent (which interestingly is not true of
FLAC's technique, but I haven't heard anything of this lately).
        
Is that good enough?
        
Thanks,
David
Comment 1 Sebastian Dröge (slomo) 2006-08-27 17:56:40 UTC
Additionally the following paragraph was added to www.wavpack.com (but doesn't contain much more information than the stuff above):

WavPack employs only well known, public domain techniques (i.e., linear prediction with LMS adaptation, Elias and Golomb codes) in its implementation. Methods and algorithms that have ever been patented (e.g., arithmetic coding, LZW compression) are specifically avoided. This ensures that WavPack encoders and decoders will remain open and royalty-free.
Comment 2 Stefan Sauer (gstreamer, gtkdoc dev) 2006-11-07 07:55:54 UTC
code looks very clean.

one minor cosmetic change for all:
Code from gstwavpackdec.c::gst_wavpack_dec_init() and gst_wavpack_dec_change_state() can be factored out into gst_wavpack_dec_reset().
Same for encoder and parse.

In encoder:
* in gst_wavpack_enc_base_init make ElementDetails const
* in gst_wavpack_enc_sink_set_caps() move error handing to the end
* can you add enums for enc_mode, enc_correction_mode, joint_stereo_mode then you can use them instread on 0,1,2,3,... in gst_wavpack_enc_mode_get_type(), gst_wavpack_enc_correction_mode_get_type(), gst_wavpack_enc_joint_stereo_mode_get_type() and in e.g. gst_wavpack_enc_set_wp_config()
* wouldn't it make sense to add a gboolean return to gst_wavpack_enc_rewrite_first_block() ?

<superminornictpick>
in the doc sections you write 'wavpackdec', but 'Wavpackenc' and 'Wavpackparse'. What about 'WavPackDec' or 'WavpackDec' (and likewise for the others).
</superminornictpick>
Comment 3 Stefan Sauer (gstreamer, gtkdoc dev) 2006-11-07 07:57:59 UTC
one more thing, you can add docbook-xml to the docblobs, what about an ulink to the wavpack.com site?
Comment 4 Sebastian Dröge (slomo) 2006-11-07 17:45:47 UTC
Created attachment 76157 [details] [review]
wavpack.diff

patch that does all this except letting gst_wavpack_enc_rewrite_first_block return a boolean because it wouldn't make much sense as discussed on IRC ;)
Comment 5 Tim-Philipp Müller 2006-11-15 12:36:08 UTC
Thanks, committed:

  2006-11-15  Tim-Philipp Müller  <tim at centricular dot net>

        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).
Comment 6 Thomas Vander Stichele 2007-01-23 17:47:54 UTC
assigning to myself to see the docs actually get built and move it
Comment 7 Tim-Philipp Müller 2007-01-28 17:18:20 UTC
> assigning to myself to see the docs actually get built and move it

Not sure if it matters, just pointing it out, but maybe it's better to wait with the move until after the next -good release?

Thing is that we need to release the upcoming core/base/good at the same time (Andy's new pull_range stuff required changes in id3demux and apedemux); and since we should probably also release good/bad at the same time when we move stuff, it might be better to do core/base/good first, and then do a good/bad with the moved plugins afterwards, IMHO.
Comment 8 Sebastian Dröge (slomo) 2007-01-30 15:02:32 UTC
Sounds like a sane plan, Tim. Would be a bit hard to release all modules at once for the one making the release ;)
Comment 9 Sebastian Dröge (slomo) 2007-02-26 14:22:43 UTC
Ok, as core/base can now be released without a new good what about moving this now for the next good release already? :) Any objections?
Comment 10 Sebastian Dröge (slomo) 2007-05-05 14:32:12 UTC
Can this please be moved before the next -good release? There's nothing blocking the move
Comment 11 Tim-Philipp Müller 2007-05-06 08:40:13 UTC
Agreed, this one is ready to move IMHO as well.
Comment 12 Stefan Sauer (gstreamer, gtkdoc dev) 2007-05-06 08:55:56 UTC
+1 from my side too.

@thomas: you got to move it, move it - let's move it!
Comment 13 Thomas Vander Stichele 2007-05-20 15:37:39 UTC
Some notes from looking over wavpackenc:

- the examples do not work.  Tim tells me this is because wavpackenc was changed to only accept 32 bit.  An audioconvert should be added to all examples.  I would also appreciate a note explaining why that audioconvert is needed.

- Why is the bitrate property a double and not an int like for all other encoders ?

- Some of these properties are described vaguely:
  - correction-mode - I assume it creates a file.  Which file will it create ? How does it decide the name ? What is it for ?
  - extra-processing - is this some secret option that just uses more CPU without any purpose ? Does it have lots of empty while loops ?
  - 
Comment 14 Thomas Vander Stichele 2007-05-20 15:38:55 UTC
Since this was the first of the three wavpack elements I looked at, I stopped here.  It is possible the other two have similar problems with the examples or properties.
Comment 15 Sebastian Dröge (slomo) 2007-05-21 11:19:10 UTC
Should be fine now with the commit below...

2007-05-21  Sebastian Dröge  <slomo@circular-chaos.org>

	* ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init),
	(gst_wavpack_enc_init), (gst_wavpack_enc_set_wp_config),
	(gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property):
	* ext/wavpack/gstwavpackenc.h:
	Fixup docs, make the bitrate property an int as it should be and
	allow to set the different extra processing modes instead of only
	allowing none and the default one.
Comment 16 Christian Fredrik Kalager Schaller 2007-06-07 16:39:46 UTC
Making this a 0.10.5 blocker
Comment 17 Thomas Vander Stichele 2007-06-08 20:21:50 UTC
done.