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 339786 - [typefinding] wavpack typefinding doesn't always work
[typefinding] wavpack typefinding doesn't always work
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
0.10.1
Other Linux
: Normal normal
: 0.10.7
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-04-26 08:49 UTC by Sebastian Dröge (slomo)
Modified: 2006-04-28 13:04 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
typefinding patch (4.11 KB, patch)
2006-04-26 11:35 UTC, Tim-Philipp Müller
committed Details | Review

Description Sebastian Dröge (slomo) 2006-04-26 08:49:58 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
Comment 1 Tim-Philipp Müller 2006-04-26 09:06:22 UTC
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).
Comment 2 Sebastian Dröge (slomo) 2006-04-26 09:20:04 UTC
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
Comment 3 Tim-Philipp Müller 2006-04-26 11:35:55 UTC
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.
Comment 4 Sebastian Dröge (slomo) 2006-04-26 13:54:47 UTC
Works fine here with all different types of wavpack files with and without tags with the apedemux from 0.10.5
Comment 5 Tim-Philipp Müller 2006-04-28 12:15:51 UTC
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.