[Bug 757152] New: opus: Add proper multichannel support

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Oct 26 11:43:03 PDT 2015


https://bugzilla.gnome.org/show_bug.cgi?id=757152

            Bug ID: 757152
           Summary: opus: Add proper multichannel support
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: slomo at coaxion.net
        QA Contact: gstreamer-bugs at lists.freedesktop.org
                CC: olivier.crete at ocrete.ca, slomo at coaxion.net,
                    t.i.m at zen.co.uk
            Blocks: 756282
     GNOME version: ---

Before bug #756282 (moving Opus to good/base) we should think about how to
properly expose multichannel support, as this might need breaking caps changes
or not.

So with Opus we need a way to pass around a few values
1) number of channels
2) number of streams
3) number of coupled streams
4) channel mapping array
5) actual channel layout

With Ogg this is stored in the OpusHead header, where 5) is solved by having a
channel mapping family. 0 meaning "RTP" (1 channel => mono, 2 channels =>
stereo left/right, also no channel mapping array then and fixed numbers for 2)
and 3)) and 1 meaning "Vorbis" (channel layout like in Vorbis).

With MP4 it's basically the same, just stored in a different structure. With
Matroska/WebM it's exactly the OpusHead.

With MPEG-TS it's simpler (+ an extension mechanism) but everything maps (so
far) to the OpusHead in a trivial way.


My proposal would be that we always require a streamheader field in Opus caps,
which contain an array of the OpusHead and the comment buffer. The only
exception to this rule would be for channels=1 and channels=2, which would then
trivially map to the RTP channel mapping.
This would mean that the MP4 demuxer/muxer need to parse/generate the OpusHead
(bug #742643) and the MPEG-TS demuxer/muxer too (bug #757049 , done already).
It's not much code.

Comments?

-- 
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 mailing list