[gstreamer-bugs] [Bug 614317] New: OSS plugin does not handle endian well
bugzilla at gnome.org
Mon Mar 29 20:59:49 PDT 2010
GStreamer | gst-plugins-bad | unspecified
Summary: OSS plugin does not handle endian well
AssignedTo: gstreamer-bugs at lists.sourceforge.net
ReportedBy: brian.cameron at oracle.com
QAContact: gstreamer-bugs at lists.sourceforge.net
GNOME target: ---
GNOME version: ---
Created an attachment (id=157442)
patch fixing problem
Jan Schmidt did the following analysis about this bug:
I did some investigating. What I discovered is:
* audiotestsrc and audioresample operate on native-endian samples only -
ie big-endian on SPARC.
* audioconvert supports both big endian and little endian samples
* oss4sink on this machine supports *only* 16-bit little-endian samples.
This means that the pipeline cannot work, because audioresample and
oss4sink support no common format - one is big endian, and the other is
little. In that case, negotiation (correctly) fails.
The pipeline 'audiotestsrc ! audioconvert ! audioresample !
audioconvert ! oss4sink' does work fine, because the extra audioconvert
provides the big-endian to little-endian sample conversion.
I'm not sure what the best solution is here. Options include:
* Enhance audioresample to also be able to operate on
non-native-endianness sample formats. This probably doesn't help
playbin, because it's also inserting a 'volume' element - which also
only supports native-endianness.
* Extend OSSv4 to support sample format conversion internally.
* Add an extra audioconvert into pipelines like the one playbin builds
to ensure negotiation can happen.
The attached patch fixes the problem by enhancing the OSS plugin to handle
endian conversion internally.
More information is here:
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the Gstreamer-bugs