thomasvs / morituri

For those about to RIP - a Unix CD ripper preferring accuracy over speed
GNU General Public License v3.0
301 stars 42 forks source link

"rip offset find" does not give descriptive error message when GStreamer WAV plugin is missing #72

Open dcecile opened 10 years ago

dcecile commented 10 years ago

With only the "base" GStreamer plugins installed, rip offset find results in "No matching offset found." After running the command, the CD drive remains busy (can't eject), and all of the cdparanoia processes are left still running (presumably blocked because the device is locked), except for the first attempt (offset +6).

During the first offset attempt, there's a GStreamer error that says, "A WAV decoder plugin is required to play this stream, but not installed." Without any of GStreamer good/bad/ugly plugins installed, this kind of error is expected, but it doesn't show up without the RIP_DEBUG flag. Once the "good" plugins are installed, rip offset find is able to find the offset value.

The RIP_DEBUG=5 rip offset find > morituri.log 2>&1 output as well as the ps -ae -o pid,state,args | grep cdparanoia > ps_cdparanoia.txt output are saved in a gist tarball.

Does the README also need to be updated with the full GStreamer plugin requirements (find offset, rip lossy/lossless, image encode/verify)?

dcecile commented 10 years ago

Updated title and description to clarify the scope of the error.

JDLH commented 10 years ago

I observe the same thing. I installed gstream on Mac OS X by means of the macports module gstreamer. It turns out this is only a stub, with an obselete 0.10 release of gstreamer.

I presume this is not adequate for morituri. Yet when I ran rip offset find, I didn't not get any clear error message about dependencies unsatisfied. In Python, import gst succeeds, but gives an error message:

** Message: pygobject_register_sinkfunc is deprecated (GstObject)

To get a more current gstreamer with macports, one must install gstreamer1 and gstreamer1-gst-plugins-good (for version 1.x), or gstreamer010 and gstreamer010-gst-plugins-good (for version 0.10.x). Actually, I'm not sure which of the plugins packages morituri actually requires: "base", "good", "bad", or "ugly".

Expected behaviour: running rip offset find when the gstreamer version and plugin complement is not sufficient yields a clear error message telling me what is lacking, in enough detail that I can figure out how to correct it. And/or, a note in the README file listing dependencies.

JDLH commented 10 years ago

update: MacPorts also has a port py27-gst-python, which has Python bindings to gstreamer010 (but not gstreamer1). Installing the ports gstreamer010, gstreamer010-gst-plugins-good, and py27-gst-python were sufficient to let morituri function on my Mac OS X 10.5.8 system. It may be that for gstreamer1, the py27-gst-python port must be omitted, and some simpler introspection mechanism will provide the Python bindings. I'm not sure.