[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