GNOME Bugzilla – Bug 339786
[typefinding] wavpack typefinding doesn't always work
Last modified: 2006-04-28 13:04:04 UTC
Hi, when playing a wavpack file encoded with -h that contains an APE tag with playbin one gets: LC_ALL=C gst-launch-0.10 playbin uri="file:///home/slomo/temp/tests/test.wv" Setting pipeline to PAUSED ... (gst-launch-0.10:7637): GStreamer-CRITICAL **: gst_pad_activate_pull: assertion `old == GST_ACTIVATE_NONE' failed Pipeline is PREROLLING ... ERROR: from element /playbin0/decoder/apedemux0: Could not determine type of stream. Additional debug info: gsttagdemux.c(1074): gst_tag_demux_sink_activate (): /playbin0/decoder/apedemux0ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... FREEING pipeline ... Playing the same file with "filesrc location="test.wv" ! wavpackparse ! wavpackdec ! alsasink" as pipeline works fine and playing the same file without APE tags too. And playing a file with or without APE tags that is encoded without the -h switch works fine too in playbin and with the above pipeline So maybe this is only a bug in apedemux. You can easily create files that break with wavpack -h -w "Title=foo" test.wav Ubuntu Bug: https://launchpad.net/distros/ubuntu/+source/gst-plugins-bad0.10/+bug/40500
This is a typefinding problem. It might be fixed already in gst-plugins-good CVS, where apedemux does typefinding pull-based whenever possible (as with local files). Push-based typefinding seems to fail occasionally with wavpack files because wavpack blocks can be larger than the max. limit for typefinding (the limit has been set higher in -good CVS though).
A broken file can be created by calling wavpack -h -w "Title=foo" test.wav the test file must be longer than ~3 minutes... and probably must contain nothing easily compressable
Created attachment 64310 [details] [review] typefinding patch Proposed patch. Seems to work fine with apedemux from 0.10.2 as well, but haven't tested it too much with that.
Works fine here with all different types of wavpack files with and without tags with the apedemux from 0.10.5
Committed: 2006-04-28 Tim-Philipp Müller <tim at centricular dot net> * gst/typefind/gsttypefindfunctions.c: (wavpack_type_find): Fix wavpack typefinding to work in more cases (don't peek for chunks of multiple hundred kBs at once, but process things step-by-step in smaller units). Fixes #339786.