How to fix broken OSS4 gstreamer plugin on Ubuntu 12.04 LTS

OSS specific Linux discussion (x86/amd64)

Moderators: hannu, dev, cesium

igorzwx
Known Member
Posts: 1262
Joined: Sun Jun 28, 2009 9:31 pm

How to fix broken OSS4 gstreamer plugin on Ubuntu 12.04 LTS

Postby igorzwx » Tue Apr 02, 2013 2:50 pm

Totem, Banshee, and other gstreamer apps do not work with OSS4 on Ubuntu 12.04 LTS and Linux Mint 13 LTS simply because the OSS4 gstreamer plugin (libgstoss4audio.so) is broken. In the Ubuntu/LinuxMint-Swahili-speak, "LTS" seems to mean "Long-Term unSupported crap".

To fix the problem, you have to replace the broken crap with something else.

NOTE: On Linux Mint 14, gstreamer seems to work "out of the box" with OSS4 (if it is correctly installed). Although, of course, it might be broken with the next "update".

To configure gstreamer, you may use the magic script:
http://www.4front-tech.com/wiki/index.p ... #gstreamer
http://www.4front-tech.com/forum/download/file.php?id=2

Gstreamer manual: http://gstreamer.freedesktop.org/data/d ... using.html

Code: Select all

$ gst-inspect-0.10 oss4sink
Factory Details:
  Long name:   OSS v4 Audio Sink
  Class:   Sink/Audio
  Description:   Output to a sound card via OSS version 4
  Author(s):   Tim-Philipp Müller <tim centricular net>
  Rank:      secondary + 1 (129)

Plugin Details:
  Name:         oss4
  Description:      Open Sound System (OSS) version 4 support for GStreamer
  Filename:      /usr/lib/i386-linux-gnu/gstreamer-0.10/libgstoss4audio.so
  Version:      0.10.31
  License:      LGPL
  Source module:   gst-plugins-good
  Source release date:   2012-02-20
  Binary package:   GStreamer Good Plugins (Ubuntu)
  Origin URL:      https://launchpad.net/distros/ubuntu/+source/gst-plugins-good0.10


Code: Select all

$ gst-launch-0.10 audiotestsrc ! audioconvert ! audioresample ! oss4sink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstOss4Sink:oss4sink0: Could not get/set settings from/on resource.
Additional debug info:
oss4-audio.c(632): gst_oss4_audio_set_format (): /GstPipeline:pipeline0/GstOss4Sink:oss4sink0:
Format actually configured wasn't the one we requested. This is probably either a bug in the driver or in the format probing code.
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...


Totem produces the same ERROR message with OSS4.

Step 1: Install gstreamer1.0 plugins and tools from PPA https://launchpad.net/~gstreamer-develo ... rchive/ppa

Code: Select all

$ sudo add-apt-repository ppa:gstreamer-developers/ppa
$ sudo apt-get update
$ apt-cache search gstreamer1.0
$ sudo apt-get install gstreamer1.0-plugins-good gstreamer1.0-tools


Code: Select all

$ gst-inspect-1.0 oss4sink
Factory Details:
  Rank:      secondary + 1 (129)
  Long-name:      OSS v4 Audio Sink
  Klass:      Sink/Audio
  Description:      Output to a sound card via OSS version 4
  Author:      Tim-Philipp Müller <tim centricular net>

Plugin Details:
  Name:         oss4
  Description:      Open Sound System (OSS) version 4 support for GStreamer
  Filename:      /usr/lib/i386-linux-gnu/gstreamer-1.0/libgstoss4audio.so
  Version:      1.0.5
  License:      LGPL
  Source module:   gst-plugins-good
  Source release date:   2013-01-08
  Binary package:   GStreamer Good Plugins (Ubuntu)
  Origin URL:      https://launchpad.net/distros/ubuntu/+source/gst-plugins-good1.0


It seems to works:

Code: Select all

$ gst-launch-1.0 audiotestsrc ! audioconvert ! audioresample ! oss4sink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock


Step 2: Replace the broken thing with a new one.

Code: Select all

$ cd /usr/lib/i386-linux-gnu/gstreamer-0.10
$ ls | grep libgstoss4audio.so
$ sudo mv libgstoss4audio.so libgstoss4audio.so-copy
$ cd /usr/lib/i386-linux-gnu/gstreamer-1.0
$ sudo cp libgstoss4audio.so /usr/lib/i386-linux-gnu/gstreamer-0.10/


Code: Select all

$ cd /usr/lib/i386-linux-gnu/gstreamer-0.10
$ ls | grep libgstoss4audio.so
libgstoss4audio.so
libgstoss4audio.so-copy


Now "gst-launch-0.10" seems to be broken:

Code: Select all

$ gst-launch-0.10 audiotestsrc ! audioconvert ! audioresample ! oss4sink
WARNING: erroneous pipeline: no element "oss4sink"

$ gst-inspect-0.10 oss4sink
No such element or plugin 'oss4sink'


It is not a problem, because Totem and Banshee now work with OSS4!
Although, of course, this buggy crap may sometimes collapse with "Segmentation fault (core dumped)".

To undo the hack, execute these commands:

Code: Select all

$ cd /usr/lib/i386-linux-gnu/gstreamer-0.10
$ sudo mv libgstoss4audio.so-copy libgstoss4audio.so


There are many alternatives to buggy gstreamer apps: DeadBeef player (PPA), Audacious (PPA), Mplayer2 + SMplayer2 (PPA), and other sorts of "open-source crap".
See also: viewtopic.php?f=3&t=5206

Return to “Linux”

Who is online

Users browsing this forum: No registered users and 3 guests