Bug#585931: gstreamer0.10-plugins-good: vorbisenc forces mono if channel positions specified on stereo stream

Mark Wooding mdw at distorted.org.uk
Mon Jun 14 23:16:19 UTC 2010

Package: gstreamer0.10-plugins-good
Version: 0.10.22-1
Severity: minor

If an element upstream of vorbisenc offers a stereo audio stream with
channel-position specifiers in its caps, then vorbisenc seems to refuse
this, and the stream downgrades to mono.

This is particularly apparent when you're transcoding A52 audio: the a52
element provides channel locations for stereo streams.

I've A52-encoded a shortish audio file[1].  If you run the pipeline

gst-launch \
  filesrc location=test.ac3 ! \
  a52dec ! \
  wavenc ! \
  filesink location=test.wav

you get a stereo WAV file.  (This is why I'm blaming vorbisenc and not

Now, try

gst-launch \
  filesrc location=test.ac3 ! \
  a52dec ! \
  vorbisenc quality=.5 ! \
  oggmux ! \
  filesink location=test.ogg

and you get a mono Ogg/Vorbis file.

My test A52-encoded file, `dot' files from the above pipelines, and PDFs
generated from them showing the caps negotiated at the various pads, are
available at


The test.ac3 file is 1.3MB, so I thought it better to do this than
attach it.

I've set the severity to `minor' because I have a workaround, which is
to detect this situation and supply explicit caps forcing `channels = 2'
and stripping the position information.

[1] It's currently my mobile phone ringtone.  I composed, performed,
    programmed, recorded and edited the piece to create this `ringtone
    edit'.  I hereby make it available under a Creative Commons
    Attribution/Share-Alike licence:

-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux (PREEMPT)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages gstreamer0.10-plugins-good depends on:
ii  gconf2                  2.28.1-3         GNOME configuration database syste
ii  gstreamer0.10-plugins-b 0.10.29-4        GStreamer plugins from the "base" 
ii  libaa1                  1.4p5-38         ascii art library
ii  libavc1394-0            0.5.3-1+b2       control IEEE 1394 audio/video devi
ii  libbz2-1.0              1.0.5-4          high-quality block-sorting file co
ii  libc6                   2.11.1-3         Embedded GNU C Library: Shared lib
ii  libcaca0                0.99.beta17-1    colour ASCII art library
ii  libcairo2               1.8.10-4         The Cairo 2D vector graphics libra
ii  libdv4                  1.0.0-2          software library for DV format dig
ii  libflac8                1.2.1-2+b1       Free Lossless Audio Codec - runtim
ii  libgcc1                 1:4.4.4-1        GCC support library
ii  libgconf2-4             2.28.1-3         GNOME configuration database syste
ii  libglib2.0-0            2.24.1-1         The GLib library of C routines
ii  libgstreamer-plugins-ba 0.10.29-4        GStreamer libraries from the "base
ii  libgstreamer0.10-0      0.10.29-1        Core GStreamer libraries and eleme
ii  libgtk2.0-0             2.20.1-1         The GTK+ graphical user interface 
ii  libgudev-1.0-0          157-1            GObject-based wrapper library for 
ii  libiec61883-0           1.2.0-0.1        an partial implementation of IEC 6
ii  libjpeg62               6b-16.1          The Independent JPEG Group's JPEG 
ii  liboil0.3               0.3.17-1         Library of Optimized Inner Loops
ii  libpng12-0              1.2.43-1         PNG library - runtime
ii  libraw1394-11           2.0.5-1          library for direct access to IEEE 
ii  libshout3               2.2.2-5+b1       MP3/Ogg Vorbis broadcast streaming
ii  libsoup-gnome2.4-1      2.30.1-1         an HTTP library implementation in 
ii  libsoup2.4-1            2.30.1-1         an HTTP library implementation in 
ii  libspeex1               1.2~rc1-1        The Speex codec runtime library
ii  libstdc++6              4.4.4-1          The GNU Standard C++ Library v3
ii  libtag1c2a              1.6.3-1          TagLib Audio Meta-Data Library
ii  libv4l-0                0.8.0-1          Collection of video4linux support 
ii  libwavpack1             4.60.1-1         an audio codec (lossy and lossless
ii  libx11-6                2:1.3.3-3        X11 client-side library
ii  libxdamage1             1:1.1.2-1        X11 damaged region extension libra
ii  libxext6                2:1.1.1-3        X11 miscellaneous extension librar
ii  libxfixes3              1:4.0.4-2        X11 miscellaneous 'fixes' extensio
ii  libxml2                 2.7.7.dfsg-2     GNOME XML library
ii  zlib1g                  1: compression library - runtime

Versions of packages gstreamer0.10-plugins-good recommends:
ii  gstreamer0.10-x               0.10.29-4  GStreamer plugins for X11 and Pang

gstreamer0.10-plugins-good suggests no packages.

-- no debconf information

More information about the Pkg-gstreamer-maintainers mailing list