GNOME Bugzilla – Bug 355611
converting audio tracks before the burning process fails on ppc
Last modified: 2006-10-11 09:22:34 UTC
Please describe the problem: during the conversion of audio files, before the burning process, on ppc fails. running rhythmbox -d an error after the construction of the pipeline is visible ... but i've a possible fix Steps to reproduce: 1. rhythmbox on ppc (not affect x86) 2. create a playlist, than right click and create audio cd 3. starting the burning process the first action is to convert the audio files Actual results: a window appear saying a conversion of audiofile is running, but neither happen Expected results: the conversion should starts Does this happen every time? yes Other information: only on ppc the gst-launch-0.10 command fails if used with the pipeline constructed by rhythmbox with: WARNING: erroneous pipeline: could not link capsfilter0 to wavenc0 probably the problem is related to byteorder differences becouse adding another "audioconvert" step in the middle of "capsfilter" and "wavenc" pipeline makes the pipeline functional also on ppc
If it fails using the gst-launch-0.10 command, then this is a gstreamer issue, Reassigning to gstreamer product. Which version of gstreamer and plugins are you using?
> only on ppc the gst-launch-0.10 command fails if used with the pipeline > constructed by rhythmbox with: WARNING: erroneous pipeline: could not link > capsfilter0 to wavenc0 > > probably the problem is related to byteorder differences becouse adding another > "audioconvert" step in the middle of "capsfilter" and "wavenc" pipeline makes > the pipeline functional also on ppc This indicates that the pipeline rhythmbox uses for conversion is wrong (wrong in the sense that it only works on little endian architectures). This is not a GStreamer bug, this is a rhythmbox bug as far as I can tell. The wavenc element requires raw audio input in little endian format on all architectures, so indeed rhythmbox will need to plug an additional audioconvert element in front of it to convert from native endianness to little endian on big endian architectures, as the reporter already described. Moving back to rhythmbox.
i'm using debian etch, gstreamer and plugins version: gosg4:~# dpkg -l | grep gst | awk '{print $2 "\t" $3}' gstreamer0.10-alsa 0.10.9-2 gstreamer0.10-esd 0.10.3-2 gstreamer0.10-gnomevfs 0.10.9-2 gstreamer0.10-plugins-bad 0.10.3-3 gstreamer0.10-plugins-base 0.10.9-2 gstreamer0.10-plugins-good 0.10.3-2 gstreamer0.10-plugins-ugly 0.10.4-1 gstreamer0.10-tools 0.10.9-1 gstreamer0.10-x 0.10.9-2 libgstreamer-plugins-base0.10-0 0.10.9-2 libgstreamer0.10-0 0.10.9-1 gosg4:~# thank you for your help :+)(In reply to comment #1)
FWIW. you could also add an endianness field to the filtercaps: filtercaps = gst_caps_new_simple ("audio/x-raw-int", ... "endianness", G_TYPE_INT, G_LITTLE_ENDIAN, NULL); That would probably require the order of the audioconvert and audioresample elements in the pipeline to be changed so that it is ... ! audioresample ! audioconvert ! capsfilter ! wavenc ! ... rather than ... ! audioconvert ! audioresample ! capsfilter ! wavenc ! ... though to make things work. This would save you one unnecessary conversion.
sorry, i was waiting for new notices... i would only know if someone at gstreamer or rhythmbox is in conclusion taking action to fix the bug and if there will be fix in the next versions thank you
The primary maintainer of rhythmbox is in the process of switching jobs, so it might be a while before he can get around to looking at all the bugs.
Created attachment 73141 [details] [review] patch I don't have a big-endian machine to test on, but this should fix it.
Created attachment 73255 [details] [review] working patch The switching-audioscale-and-audioconvert approach didn't work (even when I corrected the patch to actually do it), so I added an extra audioconvert instead. This also fixes some endianness problems in acb_wave_time(). I haven't actually burned a CD on my ppc laptop to test this, but it gets up to the point where it asks for a blank CD.
also works on x86
committed to cvs.
simply thank you :+) really :+)