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 355611 - converting audio tracks before the burning process fails on ppc
converting audio tracks before the burning process fails on ppc
Status: RESOLVED FIXED
Product: rhythmbox
Classification: Other
Component: general
0.9.5
Other All
: Normal normal
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-09-12 17:02 UTC by Giulio Fidente
Modified: 2006-10-11 09:22 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch (1.97 KB, patch)
2006-09-21 13:24 UTC, James "Doc" Livingston
none Details | Review
working patch (3.18 KB, patch)
2006-09-23 05:08 UTC, Jonathan Matthew
committed Details | Review

Description Giulio Fidente 2006-09-12 17:02:24 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
Comment 1 Alex Lancaster 2006-09-13 07:43:32 UTC
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?
Comment 2 Tim-Philipp Müller 2006-09-13 08:18:11 UTC
> 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.
Comment 3 Giulio Fidente 2006-09-13 08:29:28 UTC
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)
Comment 4 Tim-Philipp Müller 2006-09-13 08:38:14 UTC
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.
Comment 5 Giulio Fidente 2006-09-16 10:34:32 UTC
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
Comment 6 Alex Lancaster 2006-09-19 09:49:00 UTC
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.
Comment 7 James "Doc" Livingston 2006-09-21 13:24:38 UTC
Created attachment 73141 [details] [review]
patch

I don't have a big-endian machine to test on, but this should fix it.
Comment 8 Jonathan Matthew 2006-09-23 05:08:11 UTC
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.
Comment 9 Jonathan Matthew 2006-09-24 11:34:27 UTC
also works on x86
Comment 10 Jonathan Matthew 2006-10-10 11:21:02 UTC
committed to cvs.
Comment 11 Giulio Fidente 2006-10-11 09:22:34 UTC
simply thank you :+)
really :+)